gendesign/tradein-mvp/frontend
lekss361 271b5daeea fix(tradein-ui): #488 BLOCK — scraper-settings response wrapper + PUT source field
deep-code-reviewer caught 2 critical bugs in both yandex/page.tsx (#488)
and cian/page.tsx (#486 already merged):

1. useScraperSettings types response as ScraperSetting[] but backend returns
   {settings: [...]} -> .find is not a function -> settings panel never renders,
   slider input never auto-populates from DB. Fix: unwrap .settings in queryFn.

2. PUT body missing required `source` field -- backend Pydantic
   ScraperSettingPayload validates source==path source. Result: 422 on every
   save. Fix: include {source, ...payload} in PUT body.

Plus M (non-blocking): useEffect race -- refetch every 30s clobbered user input
mid-edit. Guarded with initializedRef first-load-only flag.

Refs PR #488 review (deep-code-reviewer, 2026-05-23).
2026-05-23 23:01:50 +03:00
..
public fix(tradein): commit empty frontend/public via .gitkeep 2026-05-21 00:59:13 +03:00
src fix(tradein-ui): #488 BLOCK — scraper-settings response wrapper + PUT source field 2026-05-23 23:01:50 +03:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile fix(tradein): HOSTNAME=0.0.0.0 + NEXT_PUBLIC_API_BASE_URL build-arg 2026-05-21 10:21:32 +03:00
next.config.ts fix(tradein): убрать basePath redirect-loop 2026-05-21 01:05:49 +03:00
package.json feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
tsconfig.json feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00