diff --git a/tradein-mvp/frontend/src/app/v2/page.tsx b/tradein-mvp/frontend/src/app/v2/page.tsx index 2aad1fc1..83b465ca 100644 --- a/tradein-mvp/frontend/src/app/v2/page.tsx +++ b/tradein-mvp/frontend/src/app/v2/page.tsx @@ -682,6 +682,13 @@ export default function TradeInV2Page() { house_type: estimate.house_type ?? undefined, repair_state: estimate.repair_state ?? undefined, has_balcony: estimate.has_balcony ?? undefined, + // Without these the 01 map falls back to its "pick an address" + // placeholder on every restored estimate (shared link, history, + // PDF flow) even though the address field is populated — the map + // keys off coords, not the address string, and only the geocode + // suggestion path used to supply them. + lat: estimate.target_lat ?? undefined, + lon: estimate.target_lon ?? undefined, } : undefined, [estimate], diff --git a/tradein-mvp/frontend/src/components/trade-in/v2/HeroBar.tsx b/tradein-mvp/frontend/src/components/trade-in/v2/HeroBar.tsx index 6cc50b63..0e90e627 100644 --- a/tradein-mvp/frontend/src/components/trade-in/v2/HeroBar.tsx +++ b/tradein-mvp/frontend/src/components/trade-in/v2/HeroBar.tsx @@ -476,6 +476,9 @@ export default function HeroBar({ background: "linear-gradient(90deg,rgba(238,244,250,.96) 0%,rgba(238,244,250,.5) 22%,transparent 40%)", pointerEvents: "none", + // Above Leaflet's tile pane (200) / overlay pane (400); below the + // marker (600) so the subject pin still reads through the fade. + zIndex: 500, }} /> @@ -487,6 +490,15 @@ export default function HeroBar({ top: "50%", transform: "translateY(-50%)", width: 182, + // MUST be set explicitly. .leaflet-container is position:relative + // with z-index:auto, so it does NOT open a stacking context — its + // internal panes (tiles 200 … popup 700) compete directly with + // these siblings, and an auto/0 card is painted UNDER the map. + // Shipped without this in #2529 and the address + location figure + // vanished from the hero on prod. 750 clears every pane; the + // attribution control (800) sits bottom-right and never overlaps + // this left-anchored card, so its link stays clickable. + zIndex: 750, background: tokens.surface.w72, backdropFilter: "blur(5px)", border: `1px solid ${tokens.line}`,