-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(CustomSelect): Fix input focus on arrow click on touch device #7816
fix(CustomSelect): Fix input focus on arrow click on touch device #7816
Conversation
On touch device delayed focus implementation was not working. Turned out delayed focus is not neeaded anymore, it works well on pointer and touch devices without delay.
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. |
size-limit report 📦
|
e2e tests |
👀 Docs deployed
Commit 9e77da5 |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #7816 +/- ##
==========================================
+ Coverage 95.12% 95.14% +0.01%
==========================================
Files 376 376
Lines 11086 11092 +6
Branches 3682 3692 +10
==========================================
+ Hits 10546 10553 +7
+ Misses 540 539 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✨✨✨
Добавил лейблы |
❌ PatchНе удалось автоматически применить исправление на ветке 7.0-stable.
Чтобы изменение попало в ветку 7.0-stable, выполните следующие действия:
git stash # опционально
git fetch origin 7.0-stable
git checkout -b patch/pr7816 origin/7.0-stable
git cherry-pick --no-commit bc35b0a4d9b2d9bfb564c28196eafc25dba9f838
git checkout HEAD **/__image_snapshots__/*.png
git diff --quiet HEAD || git commit --no-verify --no-edit
git push --set-upstream origin patch/pr7816
gh pr create --base 7.0-stable --title "patch: pr7816" --body "- patch #7816" |
) На touch устройстве не работает фокус на input при клике в зоне инпута ближе к стрелочке. Фокус есть на обертке, но сам инпут фокуса не имеет и клавиатура не появляется, как при клике на сам инпут, ближе к левому краю. Воспроизводится в симуляторе Iphone и на реальном устройстве. Дело в том, что не во всей видимой области инпута событие клика принимает input, и чтобы это победить мы программно вызываем фокус на инпуте. Изначально, в #6087, а конкретно в 0f45bb9 это было реализовано с помощью отложенного вызова фокуса для кнопки очистки, а потом функция с отложенным фокусом перекочевала и на остальной новый код. Объяснялось это тем, что без таймаута фокус просто не работал при клике на clear button. Финальный код был сложнее, чем тот, когда этот отложенный фокус был добавлен, и он уже мог работать без отложенного вызова фокуса. Протестировал в браузере и в симуляторе Iphone.
В 7.0-stable вроде как нету смысла вливать патч, так как v7 ещё нет. |
…7816) На touch устройстве не работает фокус на input при клике в зоне инпута ближе к стрелочке. Фокус есть на обертке, но сам инпут фокуса не имеет и клавиатура не появляется, как при клике на сам инпут, ближе к левому краю. Воспроизводится в симуляторе Iphone и на реальном устройстве. Дело в том, что не во всей видимой области инпута событие клика принимает input, и чтобы это победить мы программно вызываем фокус на инпуте. Изначально, в #6087, а конкретно в 0f45bb9 это было реализовано с помощью отложенного вызова фокуса для кнопки очистки, а потом функция с отложенным фокусом перекочевала и на остальной новый код. Объяснялось это тем, что без таймаута фокус просто не работал при клике на clear button. Финальный код был сложнее, чем тот, когда этот отложенный фокус был добавлен, и он уже мог работать без отложенного вызова фокуса. Протестировал в браузере и в симуляторе Iphone.
…7816) (#7825) На touch устройстве не работает фокус на input при клике в зоне инпута ближе к стрелочке. Фокус есть на обертке, но сам инпут фокуса не имеет и клавиатура не появляется, как при клике на сам инпут, ближе к левому краю. Воспроизводится в симуляторе Iphone и на реальном устройстве. Дело в том, что не во всей видимой области инпута событие клика принимает input, и чтобы это победить мы программно вызываем фокус на инпуте. Изначально, в #6087, а конкретно в 0f45bb9 это было реализовано с помощью отложенного вызова фокуса для кнопки очистки, а потом функция с отложенным фокусом перекочевала и на остальной новый код. Объяснялось это тем, что без таймаута фокус просто не работал при клике на clear button. Финальный код был сложнее, чем тот, когда этот отложенный фокус был добавлен, и он уже мог работать без отложенного вызова фокуса. Протестировал в браузере и в симуляторе Iphone.
✅ v6.7.3 🎉 |
Описание
На touch устройстве не работает фокус на input при клике в зоне инпута ближе к стрелочке. Фокус есть на обертке, но сам инпут фокуса не имеет и клавиатура не появляется, как при клике на сам инпут, ближе к левому краю.
Воспроизводится в симуляторе Iphone и на реальном устройстве.
Дело в том, что не во всей видимой области инпута событие клика принимает input, и чтобы это победить мы программно вызываем фокус на инпуте.
Изначально, в #6087, а конкретно в 0f45bb9 это было реализовано с помощью отложенного вызова фокуса для кнопки очистки, а потом функция с отложенным фокусом перекочевала и на остальной новый код.
Объяснялось это тем, что без таймаута фокус просто не работал при клике на clear button.
Финальный код был сложнее, чем тот, когда этот отложенный фокус был добавлен, и он уже мог работать без отложенного вызова фокуса.
Протестировал в браузере и в симуляторе Iphone.
Изменения
Убран отложенный вызов фокуса на инпуте с помощью setTimeout.
Это исправляет фокус как при клике на стрелочку, так и при клике на clearButton.
Release notes
Исправления