feat: implement AI-powered pinned city forecast dashboard with real-time METAR and market analysis integration
This commit is contained in:
@@ -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}
|
||||
/>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user