VKUI icon indicating copy to clipboard operation
VKUI copied to clipboard

feat: add close popper-elements when modal opened

Open EldarMuhamethanov opened this issue 1 year ago • 8 comments

  • close #5429

  • [x] Unit-тесты

Описание

Нужно придумать механизм закрытия Popper-элементов(Popover, Tooltip, Popper) при открытии модалок

Изменения

  • Реализовал механизм сигналов - механизм подписки и оповещения подписчиков
  • Добавил в AppRootContext прокидывание сигнала openModalsSignal
  • Добавил срабатывание сигнала при смене активной модалки
  • Добавил хук useHandleOpenModals, который подписывается на сигнал открытия модалки и вызывает переданный колбэк
  • Добавил использование useHandleOpenModals в useFloatingWithInteraction для вызова закрытия поповера
  • Экспортнул useHandleOpenModals, чтобы его могли использовать в связке с компонентом Popper(так как он всегда контролируемый пользователем)
  • Покрыл новый функционал тестами

EldarMuhamethanov avatar Jul 18 '24 07:07 EldarMuhamethanov

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%)

github-actions[bot] avatar Jul 18 '24 07:07 github-actions[bot]

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.

codesandbox-ci[bot] avatar Jul 18 '24 07:07 codesandbox-ci[bot]

e2e tests

Playwright Report

github-actions[bot] avatar Jul 18 '24 07:07 github-actions[bot]

👀 Docs deployed

Commit 8f660b88204aa400ea7b94a92cd6c3019b00f425

github-actions[bot] avatar Jul 18 '24 07:07 github-actions[bot]

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.

codecov[bot] avatar Jul 18 '24 07:07 codecov[bot]

@BlackySoul или все сложнее и чем кажется? 🤔

Кажется, что эта issue создавалась до переписывания всех всплывашек на новый механизм, поэтому вызывать сейчас onClose звучит как возможное решение х)

BlackySoul avatar Jul 22 '24 07:07 BlackySoul

Но сам issue, гляжу, решается через ручное закрытие всплывающего окна перед или после открытия модалки

То, что это решается ручным закрытие это конечно хорошо. Но разве должен пользователь задумываться над тем, что еще надо что-то закрывать самому? Как будто данный функционал должен работать "из коробки"

EldarMuhamethanov avatar Jul 22 '24 12:07 EldarMuhamethanov

Но сам issue, гляжу, решается через ручное закрытие всплывающего окна перед или после открытия модалки

То, что это решается ручным закрытие это конечно хорошо. Но разве должен пользователь задумываться над тем, что еще надо что-то закрывать самому? Как будто данный функционал должен работать "из коробки"

Хороший поинт 👍

Конкретно в этой ситуации пользователю стоит самому об этом задумываться, он использует 2 отдельных компонента: если он открывает один компонент, но сам должен решить закрывать ли второй, а не мы за него.

С нашей стороны вижу есть проблема в z-index, что элемент, находящийся на уровне основной страницы, залезает на модальное окно.

inomdzhon avatar Jul 30 '24 14:07 inomdzhon