feat: implement FutureForecastModal and PanelSections for advanced weather visualization and dashboard data display

This commit is contained in:
2569718930@qq.com
2026-04-22 02:30:49 +08:00
parent df1ce01625
commit 00eed52545
2 changed files with 45 additions and 18 deletions
@@ -736,24 +736,39 @@ export function FutureForecastModal() {
if (!cityName || !dateStr) return;
let cancelled = false;
dashboardClient
.getCityMarketScan(cityName, {
force: false,
marketSlug: detail.market_scan?.primary_market?.slug || null,
targetDate: dateStr,
})
.then((payload) => {
if (cancelled) return;
setFreshMarketScan(payload.market_scan || null);
})
.catch(() => {
if (!cancelled) {
setFreshMarketScan(null);
}
});
let intervalId: ReturnType<typeof setInterval> | null = null;
const refreshMarketScan = () => {
dashboardClient
.getCityMarketScan(cityName, {
force: false,
marketSlug: detail.market_scan?.primary_market?.slug || null,
targetDate: dateStr,
})
.then((payload) => {
if (cancelled) return;
setFreshMarketScan(payload.market_scan || null);
})
.catch(() => {
if (!cancelled) {
setFreshMarketScan(null);
}
});
};
refreshMarketScan();
intervalId = setInterval(() => {
if (typeof document !== "undefined" && document.visibilityState === "hidden") {
return;
}
refreshMarketScan();
}, 3000);
return () => {
cancelled = true;
if (intervalId != null) {
clearInterval(intervalId);
}
};
}, [
dateStr,