diff --git a/apps/web/src/app/[locale]/page.tsx b/apps/web/src/app/[locale]/page.tsx index 9a69f1c8..928edefc 100644 --- a/apps/web/src/app/[locale]/page.tsx +++ b/apps/web/src/app/[locale]/page.tsx @@ -733,9 +733,20 @@ export default function Home({ params }: { params: { locale: string } }) { { id: 'disposition', label: '處置統計', content: }, ] - // 判斷目前 Tab - const searchParams = typeof window !== 'undefined' ? new URLSearchParams(window.location.search) : null - const currentTab = searchParams?.get('tab') || 'overview' + // Sprint 5: 從 URL 讀取當前 Tab + const [activeTabId, setActiveTabId] = useState('overview') + + // 每 100ms 檢查 URL query 變化(PageTabs 用 router.push 更新) + useEffect(() => { + const check = () => { + const params = new URLSearchParams(window.location.search) + const tab = params.get('tab') || 'overview' + setActiveTabId(prev => prev !== tab ? tab : prev) + } + check() + const interval = setInterval(check, 100) + return () => clearInterval(interval) + }, []) return ( @@ -746,8 +757,8 @@ export default function Home({ params }: { params: { locale: string } }) { syncWithUrl={true} /> - {/* Tab 1 戰情總覽: 顯示現有首頁完整內容 (不動任何東西) */} - {(currentTab === 'overview' || !currentTab) && ( + {/* Tab 1 戰情總覽: 顯示現有首頁完整內容 */} + {activeTabId === 'overview' && (