-
Notifications
You must be signed in to change notification settings - Fork 198
feat(Popover,Tooltip): add long-press trigger #9191
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
feat(Popover,Tooltip): add long-press trigger #9191
Conversation
e2e tests |
👀 Docs deployed
📦 Package ✅yarn add @vkontakte/vkui@https://development.s3.prodcloud.vk.team/pull/9191/de26ab1222f70fb7330dee6fa9b069e15e17b633/pkg/@vkontakte/vkui/_pkg.tgzCommit de26ab1 |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #9191 +/- ##
==========================================
- Coverage 95.02% 94.76% -0.27%
==========================================
Files 419 423 +4
Lines 11183 11306 +123
Branches 4210 4238 +28
==========================================
+ Hits 10627 10714 +87
- Misses 556 592 +36
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
size-limit report 📦
|
|
PR закрыт из-за отсутствия активности в течение последних 14 дней. Если это произошло по ошибке или изменения все ещё актуальны, откройте PR повторно. |
Описание
Проблема
Сейчас тултипы на мобильных устройствах работают не очень правильно. Появляются при первом клике на тултип, закрываются при втором клике. И чтобы открыть его снова нужно сначала нажать в другое место. Это происходит потому, что на мобильном устройстве тултип реагирует на фокус в таргет-элемент
Решение
Поресерчив реализации тултипов в других либах, нашел реализацию в mui, где на мобильных устройствах тултип появляется при длительном нажатии на элемент. Решил выбрать такой же подход.
Изменения
useLongpress, который реализует логику вызова колбэка при долгом нажатия.useMatchMediaиuseHoverSupportedдля того, чтобы определять, что устройство, где открыто приложение не имеет ховераPopover,Tooltipдополнительныйtrigger-"longpress", а также свойствоlongpressDelay, которое позволяет изменить время нажатия.Tooltipлогику, что при отстутсвии ховера на устройстве тригером становилсяlongpressRelease notes
Улучшения
longpress