diff --git a/frontend/components/dashboard/MapCanvas.tsx b/frontend/components/dashboard/MapCanvas.tsx index f791875f..3f626264 100644 --- a/frontend/components/dashboard/MapCanvas.tsx +++ b/frontend/components/dashboard/MapCanvas.tsx @@ -7,8 +7,10 @@ import { useLeafletMap } from "@/hooks/useLeafletMap"; export function MapCanvas({ onCitySelect, + selectionMode = "focus", }: { onCitySelect?: (cityName: string) => void; + selectionMode?: "focus" | "select"; } = {}) { const store = useDashboardStore(); const { containerRef } = useLeafletMap({ @@ -21,6 +23,10 @@ export function MapCanvas({ onRegisterStopMotion: store.registerMapStopMotion, onSelectCity: (cityName) => { onCitySelect?.(cityName); + if (selectionMode === "select") { + void store.selectCity(cityName); + return; + } void store.focusCity(cityName); }, selectedCity: store.selectedCity, diff --git a/frontend/components/dashboard/ScanTerminalDashboard.tsx b/frontend/components/dashboard/ScanTerminalDashboard.tsx index c145c302..e8bded36 100644 --- a/frontend/components/dashboard/ScanTerminalDashboard.tsx +++ b/frontend/components/dashboard/ScanTerminalDashboard.tsx @@ -24,6 +24,7 @@ import { FilterState, ScanFilterPanel, } from "@/components/dashboard/ScanFilterPanel"; +import { DetailPanel as CityDetailPanel } from "@/components/dashboard/DetailPanel"; import { FutureForecastModal } from "@/components/dashboard/FutureForecastModal"; import { MapCanvas } from "@/components/dashboard/MapCanvas"; import { getWindowPhaseMeta } from "@/components/dashboard/OpportunityTable"; @@ -464,7 +465,7 @@ function buildAssistantContext(params: { }; } -function DetailPanel({ +function ScanOpportunityDetailPanel({ row, marketScan, loading, @@ -1437,14 +1438,18 @@ function ScanTerminalScreen() { const handleSelectRow = useCallback((row: ScanOpportunityRow) => { setSelectedRowId(row.id); - }, []); + void store.selectCity(row.city); + }, [store]); const renderMainView = () => { if (resolvedView === "map") { return (
- +
{locale === "en-US" @@ -1613,11 +1618,12 @@ function ScanTerminalScreen() { - +