Skip to content

Commit

Permalink
fix(DateInput): Clear DateInput focus when click Done button (#6312) (#…
Browse files Browse the repository at this point in the history
…6401)

Немного поменял логику сброса программного фокуса.
Функция для сброса вызывается при клике снаружи или при выборе даты, если используется свойство `closeOnChange`.
Но функция сброса внутри проверяет состояние календаря`open` и только если оно true, то фокус сбрасывается.
В #6244 как раз ситуация, когда по клику на кнопку "Готово", мы закрываем попап календаря, но фокус не убираем. Потом кликаем по другой кнопке, это как раз "click outside", но фокус не сбрасывается, потому что `open` ужe `false`.

Переделал проверку с `open` на `focusedElement`.
Работать будет аналогично, но и фокус сбрасываться будет более предсказуемо и всегда при вызове `resetFocusFormField` если фокус установлен.
  • Loading branch information
mendrew authored and actions-user committed Jan 18, 2024
1 parent a10ce32 commit fa716aa
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions packages/vkui/src/hooks/useDateInput.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,13 @@ export function useDateInput<T extends HTMLElement, D>({
const { window } = useDOM();

const removeFocusFromField = React.useCallback(() => {
if (open) {
if (focusedElement !== null) {
setFocusedElement(null);
closeCalendar();
window!.getSelection()?.removeAllRanges();
setInternalValue(getInternalValue(value));
}
}, [closeCalendar, getInternalValue, open, value, window]);
}, [focusedElement, closeCalendar, getInternalValue, value, window]);

const handleClickOutside = React.useCallback(
(e: MouseEvent) => {
Expand Down

0 comments on commit fa716aa

Please sign in to comment.