Skip to content

Эмиттер событий

ToastQueue — класс, стоящий за каждым ToastContext — предоставляет подписываемые события для интеграции с аналитикой (Sentry, Amplitude и т. д.). Все слушатели возвращают функцию отписки.

ts
import { getOrCreateGlobalContext } from 'vue-toast-kit'

const queue = getOrCreateGlobalContext().queue

Методы

onAdd(fn)

(fn: (item: ToastItem) => void) => () => void

Подписаться на события добавления тоста.

onDismiss(fn)

(fn: (id: string) => void) => () => void

Подписаться на события закрытия тоста.

onUpdate(fn)

(fn: (id: string, partial: Partial<ToastOptions>) => void) => () => void

Подписаться на события обновления тоста.

Пример

ts
import { getOrCreateGlobalContext } from 'vue-toast-kit'

const queue = getOrCreateGlobalContext().queue

const off = queue.onAdd((item) => {
  analytics.track('toast_shown', { type: item.options.type, message: item.message })
})

queue.onDismiss((id) => {
  analytics.track('toast_dismissed', { id })
})

queue.onUpdate((id, partial) => {
  analytics.track('toast_updated', { id, ...partial })
})

// Отписка, когда закончили:
off()

ToastQueue экспортируется из корня пакета именно для таких случаев — полный набор её методов см. в Справочнике API (add/remove/update/dismiss/dismissAll/isActive/pauseAll/resumeAll/ setMaxVisible/toggleGroupExpand/isGroupExpanded/destroy, плюс реактивные массивы active и pending) — onAdd/onDismiss/onUpdate являются единственными её событиями.