From 9c9924cc5a85e0bd92bfa649287879c362dd07cd Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Mon, 25 May 2026 20:16:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=AB=E6=8F=8F=E7=BC=93=E5=AD=98=E9=94=AE?= =?UTF-8?q?=E6=8C=89=E5=8C=BA=E5=9F=9F=E9=9A=94=E7=A6=BB=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=88=87=E6=8D=A2=E5=8C=BA=E5=9F=9F=E6=97=B6=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=97=A7=E5=8C=BA=E5=9F=9F=E6=95=B0=E6=8D=AE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scan-terminal/use-scan-terminal-query.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/frontend/components/dashboard/scan-terminal/use-scan-terminal-query.ts b/frontend/components/dashboard/scan-terminal/use-scan-terminal-query.ts index 369aa605..22ba9793 100644 --- a/frontend/components/dashboard/scan-terminal/use-scan-terminal-query.ts +++ b/frontend/components/dashboard/scan-terminal/use-scan-terminal-query.ts @@ -10,12 +10,16 @@ import { import { useRemoteDataQuery } from "@/components/dashboard/scan-terminal/use-remote-data-query"; import type { ScanTerminalResponse } from "@/lib/dashboard-types"; -const SCAN_CACHE_KEY = "polyweather_scan_v1"; +const SCAN_CACHE_PREFIX = "polyweather_scan_v2"; const SCAN_CACHE_TTL_MS = 2 * 60 * 1000; // 2 min — cities list instant on revisit -function readScanCache(): ScanTerminalResponse | null { +function scanCacheKey(tradingRegion: string): string { + return `${SCAN_CACHE_PREFIX}:${tradingRegion || "all"}`; +} + +function readScanCache(tradingRegion: string): ScanTerminalResponse | null { try { - const raw = localStorage.getItem(SCAN_CACHE_KEY); + const raw = localStorage.getItem(scanCacheKey(tradingRegion)); if (!raw) return null; const cached = JSON.parse(raw); if (cached.ts && Date.now() - cached.ts < SCAN_CACHE_TTL_MS && cached.data?.rows) { @@ -25,8 +29,8 @@ function readScanCache(): ScanTerminalResponse | null { return null; } -function writeScanCache(data: ScanTerminalResponse) { - try { localStorage.setItem(SCAN_CACHE_KEY, JSON.stringify({ ts: Date.now(), data })); } catch { /* ignore */ } +function writeScanCache(data: ScanTerminalResponse, tradingRegion: string) { + try { localStorage.setItem(scanCacheKey(tradingRegion), JSON.stringify({ ts: Date.now(), data })); } catch { /* ignore */ } } export function useScanTerminalQuery({ @@ -52,7 +56,7 @@ export function useScanTerminalQuery({ const lastForcedScanRefreshAtRef = useRef(0); const [cachedRows, setCachedRows] = useState(() => { - if (typeof window !== "undefined") return readScanCache(); + if (typeof window !== "undefined") return readScanCache(tradingRegion || ""); return null; }); @@ -80,7 +84,7 @@ export function useScanTerminalQuery({ tradingRegion, }), showLoading, - onSuccess: (data) => { writeScanCache(data); setCachedRows(data); }, + onSuccess: (data) => { writeScanCache(data, tradingRegion || ""); setCachedRows(data); }, }); }, [isPro, proAccessLoading, run, timezoneOffsetSeconds, tradingRegion],