fix(tradein/v2): вернуть адресную карточку поверх карты и координаты при restore-by-id
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 9s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m10s

Две регрессии, найденные проверкой на проде после #2528/#2529.

1. Адрес и показатель локации исчезли из шапки. .leaflet-container имеет
   position:relative и z-index:auto, то есть НЕ создаёт контекст наложения —
   его внутренние панели (tiles 200 ... popup 700) конкурируют напрямую с
   соседями, и карточка с z-index:auto оказалась ПОД картой. Проставлен явный
   z-index: 750 карточке и 500 градиенту. Атрибуция Leaflet (800) стоит справа
   внизу и с левой карточкой не пересекается, ссылка остаётся кликабельной.

2. Карта в блоке 01 показывала заглушку «выберите адрес» на КАЖДОЙ оценке,
   восстановленной по ссылке, хотя поле адреса заполнено: карта работает от
   координат, а initialValues их не прокидывал — они приходили только через
   выбор подсказки геокодера. Добавлены lat/lon из estimate.target_lat/lon.
   Затрагивало все шаренные ссылки, историю и переход из PDF.
This commit is contained in:
bot-backend 2026-07-26 23:22:49 +03:00
parent 06bf8dfada
commit ceaafa2d69
2 changed files with 19 additions and 0 deletions

View file

@ -681,6 +681,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],

View file

@ -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}`,