feat: add close popper-elements when modal opened
- close #5429
- [x] Unit-тесты
Описание
Нужно придумать механизм закрытия Popper-элементов(Popover, Tooltip, Popper) при открытии модалок
Изменения
- Реализовал механизм сигналов - механизм подписки и оповещения подписчиков
- Добавил в
AppRootContextпрокидывание сигналаopenModalsSignal - Добавил срабатывание сигнала при смене активной модалки
- Добавил хук
useHandleOpenModals, который подписывается на сигнал открытия модалки и вызывает переданный колбэк - Добавил использование
useHandleOpenModalsвuseFloatingWithInteractionдля вызова закрытия поповера - Экспортнул
useHandleOpenModals, чтобы его могли использовать в связке с компонентомPopper(так как он всегда контролируемый пользователем) - Покрыл новый функционал тестами
size-limit report 📦
| Path | Size |
|---|---|
| JS | 373.88 KB (+0.14% 🔺) |
| JS (gzip) | 114.5 KB (+0.18% 🔺) |
| JS (brotli) | 94.26 KB (+0.12% 🔺) |
| JS import Div (tree shaking) | 1.42 KB (0%) |
| CSS | 301.4 KB (0%) |
| CSS (gzip) | 38.42 KB (0%) |
| CSS (brotli) | 30.91 KB (0%) |
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.
Codecov Report
Attention: Patch coverage is 83.33333% with 5 lines in your changes missing coverage. Please review.
Project coverage is 84.08%. Comparing base (
ae6f039) to head (8f660b8). Report is 224 commits behind head on master.
| Files with missing lines | Patch % | Lines |
|---|---|---|
| ...kui/src/components/ModalRoot/ModalRootAdaptive.tsx | 0.00% | 5 Missing :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## master #7210 +/- ##
==========================================
- Coverage 84.08% 84.08% -0.01%
==========================================
Files 361 363 +2
Lines 10932 10962 +30
Branches 3595 3597 +2
==========================================
+ Hits 9192 9217 +25
- Misses 1740 1745 +5
| Flag | Coverage Δ | |
|---|---|---|
| unittests | 84.08% <83.33%> (-0.01%) |
:arrow_down: |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@BlackySoul или все сложнее и чем кажется? 🤔
Кажется, что эта issue создавалась до переписывания всех всплывашек на новый механизм, поэтому вызывать сейчас onClose звучит как возможное решение х)
Но сам issue, гляжу, решается через ручное закрытие всплывающего окна перед или после открытия модалки
То, что это решается ручным закрытие это конечно хорошо. Но разве должен пользователь задумываться над тем, что еще надо что-то закрывать самому? Как будто данный функционал должен работать "из коробки"
Но сам issue, гляжу, решается через ручное закрытие всплывающего окна перед или после открытия модалки
То, что это решается ручным закрытие это конечно хорошо. Но разве должен пользователь задумываться над тем, что еще надо что-то закрывать самому? Как будто данный функционал должен работать "из коробки"
Хороший поинт 👍
Конкретно в этой ситуации пользователю стоит самому об этом задумываться, он использует 2 отдельных компонента: если он открывает один компонент, но сам должен решить закрывать ли второй, а не мы за него.
С нашей стороны вижу есть проблема в z-index, что элемент, находящийся на уровне основной страницы, залезает на модальное окно.