From 50f40f81915caee1fe01e22338f5c446771d19dc Mon Sep 17 00:00:00 2001 From: Diego Smania Date: Fri, 1 Aug 2025 19:54:36 -0300 Subject: [PATCH] Rework the entire fix by avoiding treeview instances on link items --- src/ts/treeview.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ts/treeview.ts b/src/ts/treeview.ts index e2e0028b6..db9c8d8ba 100644 --- a/src/ts/treeview.ts +++ b/src/ts/treeview.ts @@ -73,24 +73,28 @@ class Treeview { }) } + this._element.classList.add(CLASS_NAME_MENU_OPEN) + const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU) as HTMLElement | undefined if (childElement) { - this._element.classList.add(CLASS_NAME_MENU_OPEN) slideDown(childElement, this._config.animationSpeed) - this._element.dispatchEvent(event) } + + this._element.dispatchEvent(event) } close(): void { const event = new Event(EVENT_COLLAPSED) const childElement = this._element?.querySelector(SELECTOR_TREEVIEW_MENU) as HTMLElement | undefined + this._element.classList.remove(CLASS_NAME_MENU_OPEN) + if (childElement) { - this._element.classList.remove(CLASS_NAME_MENU_OPEN) slideUp(childElement, this._config.animationSpeed) - this._element.dispatchEvent(event) } + + this._element.dispatchEvent(event) } toggle(): void { @@ -116,8 +120,14 @@ onDOMContentLoaded(() => { const target = event.target as HTMLElement const targetItem = target.closest(SELECTOR_NAV_ITEM) as HTMLElement | undefined const targetLink = target.closest(SELECTOR_NAV_LINK) as HTMLAnchorElement | undefined + const targetTreeviewMenu = targetItem?.querySelector(SELECTOR_TREEVIEW_MENU) as HTMLElement | undefined const lteToggleElement = event.currentTarget as HTMLElement + // Avoid creating Treeview instances on non menu elements + if (!targetTreeviewMenu) { + return + } + if (target?.getAttribute('href') === '#' || targetLink?.getAttribute('href') === '#') { event.preventDefault() }