From 5d2ebcec020f411382c55ad6e4212fda9647ecbd Mon Sep 17 00:00:00 2001 From: Daniel <50356015+danny007in@users.noreply.github.com> Date: Sun, 2 Apr 2023 11:51:52 +0530 Subject: [PATCH] Add checks for if sidebar exists (refined) --- src/html/components/_scripts.astro | 23 +++++---- src/ts/push-menu.ts | 78 +++++++++++++++--------------- 2 files changed, 50 insertions(+), 51 deletions(-) diff --git a/src/html/components/_scripts.astro b/src/html/components/_scripts.astro index 518b25dfb..2273f0b5a 100644 --- a/src/html/components/_scripts.astro +++ b/src/html/components/_scripts.astro @@ -18,24 +18,23 @@ const distPath = (path != undefined) ? path : '../../../dist' diff --git a/src/ts/push-menu.ts b/src/ts/push-menu.ts index f0425a19e..e146285e6 100644 --- a/src/ts/push-menu.ts +++ b/src/ts/push-menu.ts @@ -152,53 +152,53 @@ class PushMenu { */ domReady(() => { - const sidebar = document.querySelector(SELECTOR_APP_SIDEBAR) + const sidebar = document?.querySelector(SELECTOR_APP_SIDEBAR) as HTMLElement | undefined if (sidebar) { - const data = new PushMenu(document.body, Defaults) + const data = new PushMenu(sidebar, Defaults) data.init() window.addEventListener('resize', () => { data.init() }) - - const sidebarOverlay = document.createElement('div') - sidebarOverlay.className = CLASS_NAME_SIDEBAR_OVERLAY - document.querySelector(SELECTOR_APP_WRAPPER)?.append(sidebarOverlay) - - sidebarOverlay.addEventListener('touchstart', event => { - event.preventDefault() - const target = event.currentTarget as HTMLElement - const data = new PushMenu(target, Defaults) - data.collapse() - }) - sidebarOverlay.addEventListener('click', event => { - event.preventDefault() - const target = event.currentTarget as HTMLElement - const data = new PushMenu(target, Defaults) - data.collapse() - }) - - const fullBtn = document.querySelectorAll(SELECTOR_SIDEBAR_TOGGLE) - - fullBtn.forEach(btn => { - btn.addEventListener('click', event => { - event.preventDefault() - - let button = event.currentTarget as HTMLElement | undefined - - if (button?.dataset.lteToggle !== 'sidebar') { - button = button?.closest(SELECTOR_SIDEBAR_TOGGLE) as HTMLElement | undefined - } - - if (button) { - event?.preventDefault() - const data = new PushMenu(button, Defaults) - data.toggle() - } - }) - }) } + + const sidebarOverlay = document.createElement('div') + sidebarOverlay.className = CLASS_NAME_SIDEBAR_OVERLAY + document.querySelector(SELECTOR_APP_WRAPPER)?.append(sidebarOverlay) + + sidebarOverlay.addEventListener('touchstart', event => { + event.preventDefault() + const target = event.currentTarget as HTMLElement + const data = new PushMenu(target, Defaults) + data.collapse() + }) + sidebarOverlay.addEventListener('click', event => { + event.preventDefault() + const target = event.currentTarget as HTMLElement + const data = new PushMenu(target, Defaults) + data.collapse() + }) + + const fullBtn = document.querySelectorAll(SELECTOR_SIDEBAR_TOGGLE) + + fullBtn.forEach(btn => { + btn.addEventListener('click', event => { + event.preventDefault() + + let button = event.currentTarget as HTMLElement | undefined + + if (button?.dataset.lteToggle !== 'sidebar') { + button = button?.closest(SELECTOR_SIDEBAR_TOGGLE) as HTMLElement | undefined + } + + if (button) { + event?.preventDefault() + const data = new PushMenu(button, Defaults) + data.toggle() + } + }) + }) }) export default PushMenu