feat: implement AI-powered pinned city forecast dashboard with real-time METAR and market analysis integration

This commit is contained in:
2569718930@qq.com
2026-04-27 00:19:52 +08:00
parent ef8ef833b9
commit d46e0c2e81
8 changed files with 66 additions and 606 deletions
@@ -412,6 +412,17 @@ function ScanTerminalScreen() {
);
}, []);
const refreshAiPinnedCityDetail = useCallback(
async (cityName: string) => {
const key = normalizeCityKey(cityName);
if (key) {
aiFullHydrationRef.current.delete(key);
}
await store.ensureCityDetail(cityName, true, "full");
},
[store.ensureCityDetail],
);
useEffect(() => {
aiPinnedCities.forEach((item) => {
const key = normalizeCityKey(item.cityName);
@@ -527,6 +538,7 @@ function ScanTerminalScreen() {
rows={timeSortedRows}
detailsByName={store.cityDetailsByName}
locale={locale}
onRefreshCityDetail={refreshAiPinnedCityDetail}
onRemoveCity={removeAiPinnedCity}
/>
);