import { createContext, useContext, useState, useCallback, type ReactNode } from "react"; import { Toast } from "../components/Toast"; interface ToastContextValue { showToast: (message: string) => void; } const ToastContext = createContext(null); export function useToast(): ToastContextValue { const ctx = useContext(ToastContext); if (!ctx) throw new Error("useToast must be used within ToastProvider"); return ctx; } interface ToastProviderProps { children: ReactNode; } export function ToastProvider({ children }: ToastProviderProps) { const [message, setMessage] = useState(""); const [visible, setVisible] = useState(false); const showToast = useCallback((msg: string) => { setMessage(msg); setVisible(true); }, []); const onDismiss = useCallback(() => setVisible(false), []); return ( {children} ); }