fix(mera/v2): debounce-таймер адреса не чистился при размонтировании панели
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
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
CI Trade-In / frontend-checks (pull_request) Successful in 59s
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
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
CI Trade-In / frontend-checks (pull_request) Successful in 59s
Таймер из onAddressChange (200 мс) переживал unmount и дёргал setState уже мёртвого компонента. В CI это валило frontend-checks у PR #3226 как unhandled `ReferenceError: window is not defined` — новый тест ParamsPanel.floors печатает адрес и завершается раньше, чем таймер срабатывает, и тот стрелял после teardown jsdom. Ассерты при этом были зелёные, падал сам прогон.
This commit is contained in:
parent
ac5f16abfd
commit
57531c9f21
1 changed files with 11 additions and 0 deletions
|
|
@ -758,6 +758,17 @@ export default function ParamsPanel({
|
|||
initialValues?.target_fias_id ?? null,
|
||||
);
|
||||
const debounceRef = useRef<ReturnType<typeof setTimeout> | 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<HTMLButtonElement>(null);
|
||||
const balYesRef = useRef<HTMLButtonElement>(null);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue