From f29b7a2f96095ca0e038b68abf581e964d0f090d Mon Sep 17 00:00:00 2001 From: lannodev <12519008+lannodev@users.noreply.github.com> Date: Sat, 26 Jul 2025 09:55:08 -0300 Subject: [PATCH] feat: collapse all submenus except the selected one fix #42 --- .../modules/layout/services/menu.service.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/app/modules/layout/services/menu.service.ts b/src/app/modules/layout/services/menu.service.ts index 0d475bd3..fd3bb8c2 100644 --- a/src/app/modules/layout/services/menu.service.ts +++ b/src/app/modules/layout/services/menu.service.ts @@ -59,9 +59,23 @@ export class MenuService implements OnDestroy { this._showSidebar.set(!this._showSidebar()); } - public toggleMenu(menu: any) { + public toggleMenu(menu: SubMenuItem) { this.showSideBar = true; - menu.expanded = !menu.expanded; + + /** collapse all submenus except the selected one. */ + const updatedMenu = this._pagesMenu().map((menuGroup) => { + return { + ...menuGroup, + items: menuGroup.items.map((item) => { + return { + ...item, + expanded: item === menu ? !item.expanded : false, + }; + }), + }; + }); + + this._pagesMenu.set(updatedMenu); } public toggleSubMenu(submenu: SubMenuItem) {