diff --git a/assets/js/theme/body.js b/assets/js/theme/body.js index 657d633363a356498890f33ef3757b0f269db3eb..ed5395dd8d303a3f351686ee46d0b180a7c2e4d2 100644 --- a/assets/js/theme/body.js +++ b/assets/js/theme/body.js @@ -1,6 +1,3 @@ window.addEventListener('load', () => { document.body.classList.add('is-loaded'); -}); -window.addEventListener('DOMContentLoaded', (event) => { - new PagefindUI({ element: "#search", showSubResults: true }); -}); +}); \ No newline at end of file diff --git a/assets/js/theme/design-system/search.js b/assets/js/theme/design-system/search.js index 3ffe7bd84ee8d03795b59cb17a76e7ca40492caa..ee91a88143022536a86f87fa3f32fb88ce39ff61 100644 --- a/assets/js/theme/design-system/search.js +++ b/assets/js/theme/design-system/search.js @@ -1,8 +1,10 @@ class Search { - constructor(button) { + constructor(button, pageFind) { this.button = button; this.element = document.querySelector('.search__modal'); this.closeButton = this.element.querySelector('.search__close'); + this.searchInstance = pageFind; + if (!this.element) { return; @@ -26,7 +28,7 @@ class Search { } }); this.closeButton.addEventListener('click', () => { - this.element.querySelector('form').reset(); + this.searchInstance.triggerSearch(' '); this.toggle(false); }); @@ -78,7 +80,17 @@ class Search { } // Selectors -(function () { - const searchButton = document.querySelector(".pagefind-ui__toggle"); - new Search(searchButton); -})(); +window.addEventListener('DOMContentLoaded', (event) => { + const pageFindSearch = document.querySelector("#search"); + + if (pageFindSearch) { + let pageFind = new PagefindUI({ element: pageFindSearch, showSubResults: true }); + (function () { + const searchButton = document.querySelector(".pagefind-ui__toggle"); + new Search(searchButton, pageFind); + })(); + } + else { + return; + } +});