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' && (