diff --git a/frontend/components/dashboard/ScanTerminalDashboard.tsx b/frontend/components/dashboard/ScanTerminalDashboard.tsx index 0eb13690..14734939 100644 --- a/frontend/components/dashboard/ScanTerminalDashboard.tsx +++ b/frontend/components/dashboard/ScanTerminalDashboard.tsx @@ -16,6 +16,7 @@ import type { ScanOpportunityRow } from "@/lib/dashboard-types"; import { AiPinnedForecastView } from "@/components/dashboard/scan-terminal/AiPinnedForecastView"; import { MobileCityPicker } from "@/components/dashboard/scan-terminal/MobileCityPicker"; import { WelcomeOverlay } from "@/components/dashboard/scan-terminal/WelcomeOverlay"; +import { ProFeaturePaywall } from "@/components/dashboard/ProFeaturePaywall"; import { ScanPaywallModal, ScanTerminalLoadingScreen, @@ -331,12 +332,11 @@ function ScanTerminalScreen() { void store.ensureCityDetail(cityName, false, "panel").catch(() => {}); setSelectedRowId(null); } - if (isPro) { - addAiPinnedCity(cityName); - setActiveView("analysis"); - } + void store.selectCity(cityName); + addAiPinnedCity(cityName); + setActiveView("analysis"); }, - [store, timeSortedRows, isPro, addAiPinnedCity], + [store, timeSortedRows, addAiPinnedCity], ); useEffect(() => { @@ -400,7 +400,7 @@ function ScanTerminalScreen() { ); } @@ -420,15 +420,21 @@ function ScanTerminalScreen() { /> - {resolvedView === "analysis" && isPro ? ( - + {resolvedView === "analysis" ? ( + isPro ? ( + + ) : ( +
+ +
+ ) ) : null} ); @@ -545,19 +551,22 @@ function ScanTerminalScreen() { {isEn ? "Distribution View" : "分布视图"} )} - {isPro ? ( - - ) : null} +
{terminalData?.generated_at ? (