Skip to content

feat: fix close floating elements and modals when esc keydown#9670

Open
EldarMuhamethanov wants to merge 6 commits intomasterfrom
e.muhamethanov/fix-close-overlay-by-escr
Open

feat: fix close floating elements and modals when esc keydown#9670
EldarMuhamethanov wants to merge 6 commits intomasterfrom
e.muhamethanov/fix-close-overlay-by-escr

Conversation

@EldarMuhamethanov
Copy link
Copy Markdown
Contributor

@EldarMuhamethanov EldarMuhamethanov commented Apr 3, 2026

  • Unit-тесты
  • Release notes

Описание

Раньше несколько слоёв (модальные окна, выпадающие списки, поповеры и т.п.) могли одновременно подписываться на закрытие по Escape, из-за чего одно нажатие закрывало сразу несколько уровней UI. В этой доработке вводится единый диспетчер на уровне документа: все активные обработчики Escape регистрируются в общий стек, и на одно нажатие обрабатывается только верхний (последний зарегистрированный) слой.

Закрытие модальных карточек/страниц по Escape переведено на тот же механизм, что и у остальных компонентов, чтобы поведение было согласованным. Для селектов и связанных контролов закрытие по Escape вынесено в глобальный слой (чтобы оно участвовало в общем порядке «снаружи внутрь»), убраны точечные stopPropagation/local обходы, которые маскировали проблему.

В общем теперь логика закрытия такая: кто последний открылся, то первый закроется при нажатии ESC

Release notes

Исправления

  • Модальные окна и вложенные выпадающие/оверлей-компоненты: одно нажатие Escape закрывает только верхний активный слой вместо каскадного закрытия нескольких уровней сразу.

@EldarMuhamethanov EldarMuhamethanov force-pushed the e.muhamethanov/fix-close-overlay-by-escr branch from fa405b7 to 3aff587 Compare April 3, 2026 11:23
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

size-limit report 📦

Path Size
JS 409.01 KB (-0.01% 🔽)
JS (gzip) 125.37 KB (+0.03% 🔺)
JS (brotli) 103.33 KB (+0.04% 🔺)
JS import Div (tree shaking) 811 B (0%)
CSS 375.11 KB (0%)
CSS (gzip) 46.28 KB (0%)
CSS (brotli) 36.64 KB (0%)

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

e2e tests

Playwright Report

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

👀 Docs deployed

📦 Package ✅

yarn add @vkontakte/vkui@https://development.s3.prodcloud.vk.team/pull/9670/32a3953e0343e48a4b733d80545b66e64e24ac6c/pkg/@vkontakte/vkui/_pkg.tgz

Commit 32a3953

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

📊 Найдены изменения в собранных файлах: Отчет

Commit 32a3953

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.35%. Comparing base (07c915f) to head (32a3953).
⚠️ Report is 8 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #9670   +/-   ##
=======================================
  Coverage   95.35%   95.35%           
=======================================
  Files         439      439           
  Lines       12052    12053    +1     
  Branches     4374     4372    -2     
=======================================
+ Hits        11492    11493    +1     
  Misses        560      560           
Flag Coverage Δ
unittests 95.35% <100.00%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@inomdzhon inomdzhon moved this to 🗃 Backlog in VKUI Apr 6, 2026
@inomdzhon inomdzhon modified the milestones: v8.1.0, v8.2.0 Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: 🗃 Backlog

Development

Successfully merging this pull request may close these issues.

2 participants