Skip to content
12 changes: 7 additions & 5 deletions js/subsites-menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@

const { mobileBreakpointJS } = drupalSettings.localgov_base;

const subsitesMenuToggle = document.querySelector(
'.subsite-extra__header-toggle-button',
);
const subsitesMenu = document.querySelector('.subsite-extra-menu');
const [subsitesMenuToggle] = once('allSubsitesMenuToggles', '.subsite-extra__header-toggle-button', context);
const [subsitesMenu] = once('allSubsitesMenuToggles', '.subsite-extra-menu', context);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const [subsitesMenu] = once('allSubsitesMenuToggles', '.subsite-extra-menu', context);
const [subsitesMenu] = once('allSubsitesMenuToggles', '.subsite-extra-menu', context);
if (!subsitesMenuToggle || !subsitesMenu) {
return;
}

This is untested, but it's the usual defensive companion to .once().

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @ctorgalson, I've added in the extra defensive clause now. Let me know if you think we're missing any thinbg.


if (!subsitesMenuToggle || !subsitesMenu) {
return;
}

subsitesMenuToggle.addEventListener('click', () => {
subsitesMenuToggle.setAttribute(
Expand Down Expand Up @@ -54,7 +56,7 @@
});

// Close the menu when a click is made outside of it.
document.addEventListener('click', (e) => {
context.addEventListener('click', (e) => {
if (!e.target.closest('#lgd-header__nav--subsites-menu')) {
handleReset();
}
Expand Down
Loading