import { createContext, useContext, useState, useCallback, ReactNode } from 'react'; import { X } from 'lucide-react'; type ToastType = 'success' | 'error' | 'info' | 'like'; interface ToastItem { id: number; message: string; type: ToastType; } interface ToastContextType { toast: (message: string, type?: ToastType) => void; } const ToastContext = createContext(null!); let nextId = 0; export function ToastProvider({ children }: { children: ReactNode }) { const [toasts, setToasts] = useState([]); const addToast = useCallback((message: string, type: ToastType = 'info') => { const id = nextId++; setToasts((prev) => [...prev, { id, message, type }]); setTimeout(() => setToasts((prev) => prev.filter((t) => t.id !== id)), 2500); }, []); const remove = (id: number) => setToasts((prev) => prev.filter((t) => t.id !== id)); return ( {children}
{toasts.map((t) => (
{t.message}
))}
); } export function useToast() { return useContext(ToastContext); }