import { createContext, useCallback, useContext, useState, type ReactNode } from 'react'; interface ToastContextValue { show: (message: string) => void; } const ToastContext = createContext(null); export function ToastProvider({ children }: { children: ReactNode }): JSX.Element { const [message, setMessage] = useState(null); const show = useCallback((msg: string) => { setMessage(msg); window.setTimeout(() => setMessage(null), 3000); }, []); return ( {children} {message &&
{message}
}
); } // eslint-disable-next-line react-refresh/only-export-components export function useToast(): ToastContextValue { const ctx = useContext(ToastContext); if (!ctx) throw new Error('useToast must be used within ToastProvider'); return ctx; }