diff --git a/tradein-mvp/frontend/src/components/trade-in/v2/ParamsPanel.tsx b/tradein-mvp/frontend/src/components/trade-in/v2/ParamsPanel.tsx index 754a3688..aef80107 100644 --- a/tradein-mvp/frontend/src/components/trade-in/v2/ParamsPanel.tsx +++ b/tradein-mvp/frontend/src/components/trade-in/v2/ParamsPanel.tsx @@ -758,6 +758,17 @@ export default function ParamsPanel({ initialValues?.target_fias_id ?? null, ); const debounceRef = useRef | null>(null); + + // Debounce-таймер адреса переживал размонтирование панели: набранный текст + // ставит таймер на 200 мс, и если панель закрыть раньше, он дёргает setState + // уже мёртвого компонента. В тестах это падает как unhandled + // `ReferenceError: window is not defined` после teardown окружения (#3226). + useEffect( + () => () => { + if (debounceRef.current) clearTimeout(debounceRef.current); + }, + [], + ); // БАЛКОН radiogroup focus targets (roving tabindex). const balNoRef = useRef(null); const balYesRef = useRef(null);