feat(useSnackbar): add snackbar manager#8839
Merged
EldarMuhamethanov merged 82 commits intomasterfrom Dec 18, 2025
Merged
Conversation
# Conflicts: # packages/vkui/src/components/Snackbar/Snackbar.stories.tsx
…. Add prop Snackbar `open`
# Conflicts: # packages/vkui/src/components/Snackbar/Snackbar.tsx
# Conflicts: # packages/vkui/src/components/ModalCardBase/ModalCardBase.tsx
inomdzhon
reviewed
Dec 12, 2025
inomdzhon
reviewed
Dec 12, 2025
packages/vkui/src/hooks/useSnackbarManager/components/SnackbarHolder.tsx
Outdated
Show resolved
Hide resolved
inomdzhon
reviewed
Dec 12, 2025
packages/codemods/src/transforms/v8/__tests__/__snapshots__/snackbar.ts.snap
Outdated
Show resolved
Hide resolved
inomdzhon
reviewed
Dec 12, 2025
inomdzhon
reviewed
Dec 12, 2025
inomdzhon
reviewed
Dec 12, 2025
inomdzhon
reviewed
Dec 12, 2025
inomdzhon
reviewed
Dec 12, 2025
packages/vkui/src/hooks/useSnackbarManager/helpers/createSnackbarStore.ts
Show resolved
Hide resolved
inomdzhon
reviewed
Dec 16, 2025
packages/vkui/src/hooks/useSnackbarManager/components/SnackbarsContainer.module.css
Outdated
Show resolved
Hide resolved
inomdzhon
reviewed
Dec 16, 2025
inomdzhon
reviewed
Dec 16, 2025
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Описание
Добавлен новый хук
useSnackbarManagerдля централизованного управления снекбарами в приложении. Хук предоставляет удобный API для открытия, закрытия и обновления снекбаров, поддерживает очередь снекбаров с настраиваемым лимитом и стратегией переполнения, а также позволяет создавать кастомные снекбары.В рамках этой работы также переименовано свойство
onCloseвonClosedв компонентеSnackbarдля улучшения семантики (обработчик теперь вызывается после окончания анимации закрытия, а не в момент начала закрытия). Для автоматической миграции добавлен codemod.Изменения
Новый хук
useSnackbarManagerДобавлен хук
useSnackbarManagerс полным API для управления снекбарами:open(config)- открытие снекбара с конфигурациейopenCustom(payload)- открытие кастомного снекбара с произвольным компонентомupdate(id, config)- обновление свойств существующего снекбараclose(id)- закрытие снекбара по IDcloseAll()- закрытие всех снекбаровsetLimit,setQueueStrategy,setVerticalOffsetYStart,setVerticalOffsetYEnd,setZIndexРеализована система управления состоянием снекбаров через store с подписками
Добавлена поддержка очереди снекбаров с двумя стратегиями:
queue(ожидание места) иshift(закрытие старых)Реализована поддержка кастомных снекбаров через
openCustomДобавлены компоненты
SnackbarsContainerиSnackbarAnimatedWrapperдля отображения снекбаровДобавлен контекст
SnackbarsContainerContextдля интеграции снекбаров с менеджеромИзменения в компоненте
SnackbaronCloseвonClosed(breaking change)onClosedтеперь вызывается после окончания анимации закрытия (ранееonCloseвызывался в момент начала закрытия)SnackbarsContainerчерез контекстCodemod для миграции
snackbarдля автоматического переименованияonCloseвonClosedво всех использованиях компонентаSnackbarДокументация
useSnackbarManagerс примерами использованияSnackbarс упоминанием нового хукаВспомогательные изменения
useCSSKeyframesAnimationControllerдля поддержкиstopPropagationuuidдля генерации уникальных ID снекбаровSnackbarв кодовой базе для использования нового APIRelease notes
Новые компоненты
useSnackbarManager: хук для централизованного управления снекбарами в приложении
Хук предоставляет удобный API для работы со снекбарами: открытие, закрытие, обновление, поддержка очереди с настраиваемым лимитом и стратегией переполнения. Также поддерживает создание кастомных снекбаров с произвольным компонентом.
BREAKING CHANGE
Snackbar: переименовано свойство
onCloseвonClosedСвойство
onCloseпереименовано вonClosedдля улучшения семантики. ОбработчикonClosedвызывается после окончания анимации закрытия снекбара, а не в момент начала закрытия.Пример миграции: