diff --git a/stores/tab.ts b/stores/tab.ts index 2843d99..4b10d28 100644 --- a/stores/tab.ts +++ b/stores/tab.ts @@ -15,7 +15,7 @@ export const useTabsStore = defineStore("tabs", { activeTab: 1, }), actions: { - // ✅ 새 탭 추가 (기본 페이지는 "/") + // 새 탭 추가 (기본 페이지는 "/") addTab() { const { $router } = useNuxtApp(); @@ -33,7 +33,7 @@ export const useTabsStore = defineStore("tabs", { return key; }, - // ✅ 활성 탭 내용 변경 (서브메뉴 클릭) + // 활성 탭 내용 변경 (서브메뉴 클릭) updateActiveTab(sub: { label: string; to: string; componentName: string }) { const { $router } = useNuxtApp(); @@ -46,6 +46,7 @@ export const useTabsStore = defineStore("tabs", { $router.push(`/${tab?.key}${tab?.to}`); }, + // 활설 탭 제거 removeTab(key: number) { this.tabs = this.tabs.filter(t => t.key !== key); if (this.activeTab === key) { @@ -55,6 +56,7 @@ export const useTabsStore = defineStore("tabs", { } }, + // 활성 탭 변경 setActiveTab(key: number) { const { $router } = useNuxtApp(); this.activeTab = key; @@ -62,6 +64,15 @@ export const useTabsStore = defineStore("tabs", { const tab = this.tabs.find(t => t.key === this.activeTab); $router.push(`/${tab?.key}${tab?.to}`); }, + + // 탭 초기화 + resetTabs() { + const { $router } = useNuxtApp(); + + this.tabs = [defaultTab]; + this.activeTab = 1; + $router.push(defaultTab.to); + }, }, persist: true, }); diff --git a/stores/user.ts b/stores/user.ts index 859bd02..8ba6bb3 100644 --- a/stores/user.ts +++ b/stores/user.ts @@ -1,3 +1,5 @@ +import { useTabsStore } from "./tab"; + export const useUserStore = defineStore( "user", () => { @@ -11,6 +13,8 @@ export const useUserStore = defineStore( // 권한 스토어 참조 const permissionsStore = usePermissionsStore(); + // 탭 스토어 참조 + const tabsStore = useTabsStore(); interface LoginData { userId: string; @@ -29,7 +33,10 @@ export const useUserStore = defineStore( user.value = data; isLoggedIn.value = true; - // 로그인 성공 시 권한 데이터 가져오기 + // 로그인 성공 시 + // 탭 초기화 + tabsStore.resetTabs(); + // 권한 데이터 가져오기 await permissionsStore.fetchPermissions(); return { success, data }; @@ -45,8 +52,10 @@ export const useUserStore = defineStore( user.value = null; isLoggedIn.value = false; - // 권한 데이터도 초기화 + // 권한 데이터 초기화 permissionsStore.clearPermissions(); + // 탭 초기화 + tabsStore.resetTabs(); useApi("/members/logout", { method: "post" }); };