diff --git a/frontend/components/layout/AppLayout.tsx b/frontend/components/layout/AppLayout.tsx index e8732639..0ceb247b 100644 --- a/frontend/components/layout/AppLayout.tsx +++ b/frontend/components/layout/AppLayout.tsx @@ -902,6 +902,22 @@ function AppLayoutInner({ children }: AppLayoutProps) { } }, [activeTab, uiMenus, isMenuActive]); + // URL 직접 진입 / sessionStorage 복원 시 admin 탭의 영어 path-segment title 을 + // menu_name_kor (uiMenus 의 tabTitle/label/name) 로 한 번만 갱신. + useEffect(() => { + if (uiMenus.length === 0) return; + const store = useTabStore.getState(); + for (const tab of store.admin.tabs) { + if (tab.type !== "admin" || !tab.admin_url) continue; + const matched = uiMenus.find((m: any) => m.url === tab.admin_url); + const koreanTitle: string | undefined = + matched?.tabTitle || matched?.label || matched?.name; + if (koreanTitle && tab.title !== koreanTitle) { + store.updateTabTitle(tab.id, koreanTitle); + } + } + }, [uiMenus]); + if (!user) { return (