import { create } from 'zustand'; export interface InAppNotification { id: string; title: string; body: string; avatar: string | null; userId?: string; channelId?: string; spaceId?: string; } interface State { items: InAppNotification[]; push: (n: Omit) => void; dismiss: (id: string) => void; } /** Poucas de cada vez: uma pilha longa cobre a conversa em vez de avisar. */ const MAX_VISIBLE = 3; export const useInAppNotificationStore = create((set) => ({ items: [], push: (n) => set((s) => ({ items: [...s.items, { ...n, id: `${Date.now()}-${Math.random().toString(36).slice(2, 8)}` }] .slice(-MAX_VISIBLE), })), dismiss: (id) => set((s) => ({ items: s.items.filter((i) => i.id !== id) })), }));