diff --git a/apps/web/src/lib/site-initializer/index.ts b/apps/web/src/lib/site-initializer/index.ts index faf55b2a47..083286d469 100644 --- a/apps/web/src/lib/site-initializer/index.ts +++ b/apps/web/src/lib/site-initializer/index.ts @@ -92,7 +92,7 @@ const init = async () => { await ServiceConfigurator.initialize(mergedConfig); await APIClientManager.initialize(mergedConfig); initDomainSettings(); - initModeSetting(); + await initModeSetting(); await initWorkspace(userId); initRouter(domainId); // prefetchResources(); diff --git a/apps/web/src/lib/site-initializer/mode-setting.ts b/apps/web/src/lib/site-initializer/mode-setting.ts index e5fb638b1d..5ef0e21b86 100644 --- a/apps/web/src/lib/site-initializer/mode-setting.ts +++ b/apps/web/src/lib/site-initializer/mode-setting.ts @@ -1,6 +1,8 @@ import { useAppContextStore } from '@/store/app-context/app-context-store'; import { pinia } from '@/store/pinia'; +import ServiceConfigurator from '@/services/configurator'; + export const initModeSetting = () => { // NOTE: this is to use pinia store outside vue component useAppContextStore(pinia); @@ -12,4 +14,5 @@ export const initModeSetting = () => { if (modePath === 'admin') { appContextStore.enterAdminMode(); } + ServiceConfigurator.getMenuList(modePath); }; diff --git a/apps/web/src/services/configurator.ts b/apps/web/src/services/configurator.ts index 433b4d75ef..014fc5fc99 100644 --- a/apps/web/src/services/configurator.ts +++ b/apps/web/src/services/configurator.ts @@ -40,7 +40,7 @@ class ServiceConfigurator { this.featureSchema = featureSchema; } - getRoutes(mode: 'admin' | 'workspace'): RouteConfig[] { + getRoutes(mode: string): RouteConfig[] { const baseRoutes = mode === 'admin' ? [adminWorkspaceHomeRoutes, adminAdvancedRoutes, adminInfoRoutes] : [workspaceHomeRoute, infoRoutes]; @@ -61,7 +61,7 @@ class ServiceConfigurator { return baseRoutes; } - getMenuList(mode: 'admin' | 'workspace'): Menu[] { + getMenuList(mode: string): Menu[] { const menuStore = useMenuStore(); const menuList: Menu[] = mode === 'admin' ? [] : DEFAULT_MENU_LIST; diff --git a/apps/web/src/store/display/display-store.ts b/apps/web/src/store/display/display-store.ts index 39fc1d29cf..bd067dd055 100644 --- a/apps/web/src/store/display/display-store.ts +++ b/apps/web/src/store/display/display-store.ts @@ -29,6 +29,7 @@ import type { DisplayMenu, DisplayStoreState, SidebarProps, SidebarType, DisplayStoreGetters, } from '@/store/display/type'; +import { useMenuStore } from '@/store/menu/menu-store'; import { useUserStore } from '@/store/user/user-store'; import type { Menu, MenuId, MenuInfo } from '@/lib/menu/config'; @@ -37,8 +38,6 @@ import { MENU_INFO_MAP } from '@/lib/menu/menu-info'; import ErrorHandler from '@/common/composables/error/errorHandler'; -import ServiceConfigurator from '@/services/configurator'; - const verbose = false; const filterMenuByRoute = (menuList: DisplayMenu[], router: VueRouter): DisplayMenu[] => menuList.reduce((results, _menu) => { const userWorkspaceStore = useUserWorkspaceStore(); @@ -306,14 +305,15 @@ export const useDisplayStore = defineStore('display-store', () => { } }; - const getAllMenuList = (route: Route): DisplayMenu[] => { - const isMyPage = route.path.startsWith('/my-page'); + const getAllMenuList = (route?: Route): DisplayMenu[] => { + const isMyPage = route?.path.startsWith('/my-page'); const appContextStore = useAppContextStore(); + const menuStore = useMenuStore(); const appContextState = appContextStore.$state; const userWorkspaceStore = useUserWorkspaceStore(); const isAdminMode = appContextState.getters.isAdminMode; const currentWorkspaceId = userWorkspaceStore.getters.currentWorkspaceId; - const menuList = ServiceConfigurator.getMenuList(isAdminMode ? 'admin' : 'workspace'); + const menuList = menuStore.state.menuList; let _allGnbMenuList: DisplayMenu[]; _allGnbMenuList = getDisplayMenuList(menuList, isAdminMode, currentWorkspaceId);