diff --git a/frontend/components/dashboard/ScanTerminalDashboard.tsx b/frontend/components/dashboard/ScanTerminalDashboard.tsx index 12d5e76f..d58bad61 100644 --- a/frontend/components/dashboard/ScanTerminalDashboard.tsx +++ b/frontend/components/dashboard/ScanTerminalDashboard.tsx @@ -7,6 +7,7 @@ import { BarChart3, Bell, ChevronDown, + ChevronLeft, ChevronRight, CloudSun, CreditCard, @@ -354,6 +355,18 @@ function PolyWeatherTerminal({ .slice(0, 8); const selectedSignal = selectedRow ? getSignalState(selectedRow) : "data" as const; const selectedLabel = selectedRow ? getSignalLabel(selectedSignal, isEn) : ""; + const [navExpanded, setNavExpanded] = useState(false); + const [activeNavKey, setActiveNavKey] = useState("contracts"); + + const NAV_ITEMS = [ + { key: "contracts", Icon: Table2, labelEn: "Contracts", labelZh: "天气合约" }, + { key: "signals", Icon: LineChart, labelEn: "Signals", labelZh: "交易信号" }, + { key: "analytics", Icon: BarChart3, labelEn: "Analytics", labelZh: "分析图表" }, + { key: "watchlist", Icon: Gauge, labelEn: "Watchlist", labelZh: "自选监控" }, + { key: "alerts", Icon: Bell, labelEn: "Alerts", labelZh: "实时预警" }, + { key: "markets", Icon: Activity, labelEn: "Markets", labelZh: "市场概览" }, + ]; + const continentGroups = useMemo( () => buildContinentGroups(rows, isEn), [rows, isEn] @@ -379,29 +392,86 @@ function PolyWeatherTerminal({ return (
-
+ + {/* Toggle button */} + + + {/* Nav items */} + {NAV_ITEMS.map(({ key, Icon, labelEn, labelZh }) => { + const isActive = activeNavKey === key; + return ( + + ); + })}