From 4fc30443e3f722f59f5b88e98e7c95d08cca0d0b Mon Sep 17 00:00:00 2001 From: Dede Fuji Abdul Date: Fri, 27 Oct 2023 09:47:02 +0700 Subject: [PATCH] auto expand menu when menu open by search/recent --- src/components/Navigation/Aside/Aside.vue | 16 ++--------- src/stores/command.ts | 3 ++ src/stores/menu.ts | 35 ++++++++++++----------- 3 files changed, 24 insertions(+), 30 deletions(-) diff --git a/src/components/Navigation/Aside/Aside.vue b/src/components/Navigation/Aside/Aside.vue index 284124c..739b333 100644 --- a/src/components/Navigation/Aside/Aside.vue +++ b/src/components/Navigation/Aside/Aside.vue @@ -24,19 +24,9 @@ watch(route, (to, _) => { closeSideBar() }) -// onMounted(() => { -// menu.menuSelected = router.currentRoute.value.fullPath - -// if (menu.menuSelected !== '/' && menu.menuSelected !== '/home' && menu.menuSelected.includes('/home')) { -// const result = splitRoutePath(menu.menuSelected) - -// for (const route of result) { -// if (route !== '/home') { -// menu.toggleSidebarMenu(route, true) -// } -// } -// } -// }) +onMounted(() => { + menu.expandCurrentActiveMenu() +}) const isMenu = (name: string) => { return menu.menuSelected === name diff --git a/src/stores/command.ts b/src/stores/command.ts index 6e18518..144fc08 100644 --- a/src/stores/command.ts +++ b/src/stores/command.ts @@ -88,6 +88,9 @@ export const useCommandPalattesStore = defineStore('command_palettes', () => { addRecent(routeTarget) route.push(routeTarget.path) closeCommand() + setTimeout(() => { + menu.expandCurrentActiveMenu() + }, 200); } const closeCommand = () => { diff --git a/src/stores/menu.ts b/src/stores/menu.ts index 5ea0647..02c0210 100644 --- a/src/stores/menu.ts +++ b/src/stores/menu.ts @@ -17,7 +17,7 @@ export const useMenuStore = defineStore('menu', () => { const menuSelected = ref(route.fullPath) const toggleSidebar = () => (sidebarOpen.value = !sidebarOpen.value) const toggleSidebarMenu = (path: string, newExpanded: boolean): void => { - // console.log('expanded', path); + console.log('expanded', path); const toggleItemExpanded = (items: MenuItemModel[]): void => { for (const item of items) { @@ -40,22 +40,6 @@ export const useMenuStore = defineStore('menu', () => { } const toggleSidebarDesktop = () => (sidebarShowed.value = !sidebarShowed.value) - onMounted(() => { - const menuData = convertRouteToMenu(routes.at(0)?.children || []) - navigation.value = menuData - menuSelected.value = router.currentRoute.value.fullPath - - if (menuSelected.value !== '/' && menuSelected.value !== '/home' && menuSelected.value.includes('/home')) { - const result = splitRoutePath(menuSelected.value) - - for (const route of result) { - if (route !== '/home') { - toggleSidebarMenu(route, true) - } - } - } - }) - watch(router, (value) => { if (value.currentRoute.value.fullPath === '/' || value.currentRoute.value.fullPath === '/home') { for (const item of navigation.value) { @@ -79,7 +63,24 @@ export const useMenuStore = defineStore('menu', () => { } }) + const expandCurrentActiveMenu = (): void => { + const menuData = convertRouteToMenu(routes.at(0)?.children || []) + navigation.value = menuData + menuSelected.value = router.currentRoute.value.fullPath + + if (menuSelected.value !== '/' && menuSelected.value !== '/home' && menuSelected.value.includes('/home')) { + const result = splitRoutePath(menuSelected.value) + + for (const route of result) { + if (route !== '/home') { + toggleSidebarMenu(route, true) + } + } + } + } + return { + expandCurrentActiveMenu, navigation, toggleSidebar, sidebarOpen,