fix(tradein/ui): не называть неподтверждённый город в плашке неопределённости (#2576)
All checks were successful
CI / changes (pull_request) Successful in 14s
CI Trade-In / changes (pull_request) Successful in 14s
CI / backend-tests (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m33s

Deep-review R3: плашка city_ambiguous всегда подставляла {city} — внутреннее
состояние с дефолтом "Екатеринбург" (initCityLabel), а не то, что реально
определил бэкенд (в ответе только булев target_city_ambiguous, угаданного
города там нет). Ровно в целевом сценарии фикса — нетронутая форма, «Ленина
1», cityConfirmed=false — текст утверждал «если это не Екатеринбург»
независимо от реального результата (там мог быть Нижний Тагил) — та же
нечестность, которую предыдущий коммит убирал из запроса, только в тексте.

Текст плашки теперь ветвится по cityConfirmed:
- cityConfirmed=true (город реально был подтверждён и отправлен) — прежний
  текст с конкретным {city} уместен, не меняю.
- cityConfirmed=false (это и есть путь, где cityAmbiguous обычно и
  срабатывает после предыдущего коммита) — нейтральная формулировка без
  упоминания конкретного города: «Если это неверно, выберите город выше и
  повторите оценку.»

tsc --noEmit / next lint / next build — чисто (те же 2 pre-existing warning в
несвязанных файлах).
This commit is contained in:
bot-backend 2026-07-31 18:42:40 +03:00
parent a8d29fa031
commit 49ee85aae2

View file

@ -1653,12 +1653,29 @@ export default function ParamsPanel({
)}
{/* #2576 честная, не блокирующая подсказка: последняя оценка
вернулась с target_city_ambiguous, город определил геокодер
сам. role="status" (не alert) это информация, не ошибка. */}
сам. role="status" (не alert) это информация, не ошибка.
Deep-review R3: текст различает cityConfirmed если бэкенд
не получил city_hint (`cityConfirmed === false`), `city` в
этот момент внутренний best-guess ("Екатеринбург"), а НЕ то,
что реально нашёл геокодер (в ответе вообще нет угаданного
города, только сам булев признак) называть конкретный город
в этом случае было бы той же нечестностью, которую фикс
убирал из запроса, только в тексте плашки. */}
{cityAmbiguous && !fieldErrors.address && (
<div style={cityAmbiguousText} role="status">
Город определён автоматически результат может относиться к
другому населённому пункту области. Если это не {city},
выберите верный город выше и повторите оценку.
{cityConfirmed ? (
<>
Город определён автоматически результат может
относиться к другому населённому пункту области. Если это
не {city}, выберите верный город выше и повторите оценку.
</>
) : (
<>
Город определён автоматически результат может
относиться к другому населённому пункту области. Если это
неверно, выберите город выше и повторите оценку.
</>
)}
</div>
)}
</div>