From a7e3400effde038d627cbd519d11c4dd732bf733 Mon Sep 17 00:00:00 2001 From: Pelle de Greeuw Date: Thu, 31 Oct 2024 17:11:51 +0100 Subject: [PATCH 1/2] Change DOMNodeInserted to MutationObserver --- .../django_flatpickr/js/django-flatpickr.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/django_flatpickr/static/django_flatpickr/js/django-flatpickr.js b/src/django_flatpickr/static/django_flatpickr/js/django-flatpickr.js index 87f6bfc..f58fe54 100644 --- a/src/django_flatpickr/static/django_flatpickr/js/django-flatpickr.js +++ b/src/django_flatpickr/static/django_flatpickr/js/django-flatpickr.js @@ -50,15 +50,20 @@ throw err; } - document.addEventListener('DOMContentLoaded', function (event) { - findAndProcessFlatpickrInputs(document); - document.addEventListener('DOMNodeInserted', function (event) { - setTimeout(() => { - if (event.target.querySelectorAll) findAndProcessFlatpickrInputs(event.target); + const observer = new MutationObserver((records, _observer) => { + records.forEach(record => { + record.addedNodes.forEach(node => { + if (node.nodeType === Node.ELEMENT_NODE) findAndProcessFlatpickrInputs(node) }); }); }); + observer.observe(document.body, {childList: true}) + + document.addEventListener('DOMContentLoaded', function (event) { + findAndProcessFlatpickrInputs(document.body); + }); + /** * @param {HTMLElement} htmlElement */ From 576d73648411ea4f9ce4e916e08ab8b84e4127fa Mon Sep 17 00:00:00 2001 From: Pelle de Greeuw Date: Thu, 31 Oct 2024 17:23:19 +0100 Subject: [PATCH 2/2] Change if to check for queryselectorall --- .../static/django_flatpickr/js/django-flatpickr.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/django_flatpickr/static/django_flatpickr/js/django-flatpickr.js b/src/django_flatpickr/static/django_flatpickr/js/django-flatpickr.js index f58fe54..c664313 100644 --- a/src/django_flatpickr/static/django_flatpickr/js/django-flatpickr.js +++ b/src/django_flatpickr/static/django_flatpickr/js/django-flatpickr.js @@ -53,7 +53,7 @@ const observer = new MutationObserver((records, _observer) => { records.forEach(record => { record.addedNodes.forEach(node => { - if (node.nodeType === Node.ELEMENT_NODE) findAndProcessFlatpickrInputs(node) + if (node.querySelectorAll) findAndProcessFlatpickrInputs(node); }); }); });