feat(tradein): фронт передаёт координаты выбранной подсказки в /estimate (Variant A, frontend) #1783

Merged
lekss361 merged 1 commit from feat/tradein-estimate-send-coords into main 2026-06-19 11:17:31 +00:00
Owner

Зачем

Парная фронт-часть к #1782. Автокомплит уже резолвит lat/lon выбранного адреса, но AddressInput их выбрасывал — в /estimate уходила только строка. Теперь координаты прокидываются → бэк считает по ним напрямую, минуя сломанный re-geocode.

Что

  • types/trade-in.tsTradeInEstimateInput получает опциональные lat?/lon?.
  • AddressInput.tsxаддитивно: новый опциональный проп onPickCoords; pick() после onChange(full_address) отдаёт координаты (0,0 пресетов и NaN → null); ручной ввод сбрасывает координаты (stale-guard).
  • EstimateForm.tsxcoords state, прокинут в AddressInput/MapPicker, toPayload(form, coords) кладёт lat/lon в payload когда есть.
  • MapPicker.tsxonPick(addr, coords?): отдаёт snapped/clicked координаты точки на карте. Адресная логика не тронута.

Автоподстановка НЕ сломана

Дифф AddressInput строго аддитивный: pick() по-прежнему первым делает onChange(item.full_address); ручной onChange сохранён; suggest-запрос / debounce / дропдаун / навигация клавишами — не трогались. Проп onPickCoords? опционален.

Проверка

tsc --noEmit — 0 ошибок. ESLint в tradein-mvp/frontend не сконфигурён (next lint нет) — пропущено.

Парный PR: #1782 (backend принимает lat/lon). Порядок мержа любой.

## Зачем Парная фронт-часть к #1782. Автокомплит уже резолвит `lat/lon` выбранного адреса, но `AddressInput` их выбрасывал — в `/estimate` уходила только строка. Теперь координаты прокидываются → бэк считает по ним напрямую, минуя сломанный re-geocode. ## Что - `types/trade-in.ts` — `TradeInEstimateInput` получает опциональные `lat?`/`lon?`. - `AddressInput.tsx` — **аддитивно**: новый опциональный проп `onPickCoords`; `pick()` после `onChange(full_address)` отдаёт координаты (0,0 пресетов и NaN → null); ручной ввод сбрасывает координаты (stale-guard). - `EstimateForm.tsx` — `coords` state, прокинут в `AddressInput`/`MapPicker`, `toPayload(form, coords)` кладёт `lat/lon` в payload когда есть. - `MapPicker.tsx` — `onPick(addr, coords?)`: отдаёт snapped/clicked координаты точки на карте. Адресная логика не тронута. ## Автоподстановка НЕ сломана Дифф `AddressInput` строго аддитивный: `pick()` по-прежнему первым делает `onChange(item.full_address)`; ручной `onChange` сохранён; suggest-запрос / debounce / дропдаун / навигация клавишами — **не трогались**. Проп `onPickCoords?` опционален. ## Проверка `tsc --noEmit` — 0 ошибок. ESLint в `tradein-mvp/frontend` не сконфигурён (`next lint` нет) — пропущено. Парный PR: #1782 (backend принимает `lat/lon`). Порядок мержа любой.
lekss361 added 1 commit 2026-06-19 11:17:10 +00:00
feat(tradein): send picked autocomplete coords to /estimate (Variant A)
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
ce0aaa4fb1
lekss361 merged commit 190accc4a7 into main 2026-06-19 11:17:31 +00:00
lekss361 deleted branch feat/tradein-estimate-send-coords 2026-06-19 11:17:32 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1783
No description provided.