From 4de009b40131bfe60ceb10c5939c90fe321e58d1 Mon Sep 17 00:00:00 2001
From: "2569718930@qq.com" <2569718930@qq.com>
Date: Wed, 20 May 2026 09:41:44 +0800
Subject: [PATCH] feat: unified map click selection & switch to decision cards
with paywall overlay for non-Pro users
---
.../dashboard/ScanTerminalDashboard.tsx | 65 +++++++++++--------
1 file changed, 37 insertions(+), 28 deletions(-)
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() {