import { create } from 'zustand' export type ToastTone = 'error' | 'info' export interface Toast { id: number message: string tone: ToastTone } let nextId = 1 interface ToastState { toasts: Toast[] push: (message: string, tone?: ToastTone) => void dismiss: (id: number) => void } export const useToastStore = create((set) => ({ toasts: [], push: (message, tone = 'info') => { const id = nextId++ set((s) => ({ toasts: [...s.toasts, { id, message, tone }] })) setTimeout(() => set((s) => ({ toasts: s.toasts.filter((t) => t.id !== id) })), 5000) }, dismiss: (id) => set((s) => ({ toasts: s.toasts.filter((t) => t.id !== id) })), }))