Skip to content

feat(useSnackbarManager): imperative snackbar API#9514

Open
EldarMuhamethanov wants to merge 8 commits into
masterfrom
e.muhamethanov/globals-snackbars-api
Open

feat(useSnackbarManager): imperative snackbar API#9514
EldarMuhamethanov wants to merge 8 commits into
masterfrom
e.muhamethanov/globals-snackbars-api

Conversation

@EldarMuhamethanov
Copy link
Copy Markdown
Contributor

@EldarMuhamethanov EldarMuhamethanov commented Feb 26, 2026

  • Unit-тесты
  • e2e-тесты
  • Дизайн-ревью
  • Документация фичи
  • Release notes

Описание

Добавлен императивный API для управления снекбарами: можно вызывать показ/закрытие уведомлений через глобальный объект snackbarManager или свой экземпляр из createSnackbarManager(), без использования хука useSnackbarManager в месте вызова.

Основное:

  • snackbarManager — глобальный экземпляр; вызов snackbarManager.open({ children: '...' }) из любого места (компонент, сервис, колбэк). Контейнер для снекбаров монтируется автоматически при первом вызове open() или openCustom().
  • SnackbarManagerHolder — опциональный React-компонент для кастомной конфигурации (limit, offsetY, zIndex и т.д.). Если он уже смонтирован в дереве, авто-монтирование не создаёт второй контейнер.
  • createSnackbarManager(options?) — создание отдельного экземпляра менеджера (например, для своей зоны интерфейса).

Поведение хука useSnackbarManager сохранено без изменений. Логика действий (open, close, update и т.д.) вынесена в общую функцию createSnackbarActions, которую используют и хук, и императивный менеджер.

Release notes

Улучшения

  • useSnackbarManager: добавлен императивный API для снекбаров — глобальный snackbarManager и createSnackbarManager() позволяют показывать уведомления из любого места без хука. Контейнер монтируется автоматически при первом вызове open().

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 26, 2026

size-limit report 📦

Path Size
JS 427.03 KB (+4.27% 🔺)
JS (gzip) 130.62 KB (+4.2% 🔺)
JS (brotli) 107.58 KB (+3.67% 🔺)
JS import Div (tree shaking) 811 B (0%)
CSS 376.05 KB (0%)
CSS (gzip) 46.26 KB (0%)
CSS (brotli) 36.62 KB (0%)

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 26, 2026

e2e tests

Playwright Report

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 26, 2026

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

Commit 7bfa829

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 26, 2026

👀 Docs deployed

📦 Package ✅

yarn add @vkontakte/vkui@https://development.s3.prodcloud.vk.team/pull/9514/7bfa829ccb1a3427c01c268cacfe4d3aa8bc80e2/pkg/@vkontakte/vkui/_pkg.tgz

Commit 7bfa829

@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 26, 2026

Codecov Report

❌ Patch coverage is 85.41667% with 28 lines in your changes missing coverage. Please review.
✅ Project coverage is 95.16%. Comparing base (ef4c213) to head (7bfa829).
⚠️ Report is 35 commits behind head on master.

Files with missing lines Patch % Lines
...ui/src/hooks/useSnackbarManager/snackbarManager.ts 75.51% 24 Missing ⚠️
...ackbarManager/components/SnackbarManagerHolder.tsx 88.46% 3 Missing ⚠️
...c/hooks/useSnackbarManager/helpers/useIsDesktop.ts 85.71% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #9514      +/-   ##
==========================================
- Coverage   95.31%   95.16%   -0.16%     
==========================================
  Files         441      445       +4     
  Lines       12112    12245     +133     
  Branches     4405     4427      +22     
==========================================
+ Hits        11545    11653     +108     
- Misses        567      592      +25     
Flag Coverage Δ
unittests 95.16% <85.41%> (-0.16%) ⬇️

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.

@EldarMuhamethanov EldarMuhamethanov force-pushed the e.muhamethanov/globals-snackbars-api branch from d4cad26 to bd7d71b Compare February 26, 2026 11:17
@EldarMuhamethanov EldarMuhamethanov force-pushed the e.muhamethanov/globals-snackbars-api branch from bd7d71b to 58de6eb Compare February 26, 2026 11:23
@vkcom-publisher vkcom-publisher added the pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности label Mar 6, 2026
@EldarMuhamethanov EldarMuhamethanov marked this pull request as ready for review March 11, 2026 08:04
# Conflicts:
#	packages/vkui/src/hooks/useSnackbarManager/helpers/useSnackbarActionsWithStore.ts
#	packages/vkui/src/hooks/useSnackbarManager/helpers/useSnackbarConfig.ts
@vkcom-publisher vkcom-publisher removed the pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности label Mar 11, 2026
Comment thread packages/vkui/src/hooks/useSnackbarManager/snackbarManager.ts
@EldarMuhamethanov EldarMuhamethanov added this to the v8.1.0 milestone Mar 24, 2026
@inomdzhon inomdzhon moved this to 👀 In Review in VKUI Mar 30, 2026
# Conflicts:
#	packages/vkui/src/index.ts
@vkcom-publisher vkcom-publisher added the pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности label Apr 7, 2026
@EldarMuhamethanov EldarMuhamethanov removed the pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности label Apr 10, 2026
e.mukhametkhanov added 2 commits April 13, 2026 14:18
# Conflicts:
#	website/components/mdx/Playground/scope.ts
@inomdzhon inomdzhon modified the milestones: v8.1.0, v8.2.0 Apr 15, 2026
# Conflicts:
#	website/components/mdx/Playground/scope.ts
#	website/content/components/use-snackbar-manager.mdx
@vkcom-publisher vkcom-publisher added pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности and removed pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности labels Apr 30, 2026
@vkcom-publisher vkcom-publisher added pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности and removed pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности labels May 8, 2026
@inomdzhon inomdzhon modified the milestones: v8.2.0, v8.3.0 May 15, 2026
@vkcom-publisher vkcom-publisher added the pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности label May 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cmp:snackbar pr-needs-work Автоматизация: PR автоматически закроется через 14 дней при отсутствии активности type:feature

Projects

Status: 👀 In Review

Development

Successfully merging this pull request may close these issues.

4 participants