import Alert from "@mui/material/Alert"; import Snackbar from "@mui/material/Snackbar"; import { createContext, useCallback, useContext, useMemo, useState } from "react"; const ToastContext = createContext(null); export function ToastProvider({ children }) { const [toast, setToast] = useState(null); const showToast = useCallback((message, severity = "info") => { setToast({ message, severity }); }, []); const value = useMemo(() => ({ showToast }), [showToast]); return ( {children} setToast(null)} open={Boolean(toast)} > {toast ? ( setToast(null)} severity={toast.severity} variant="filled"> {toast.message} ) : null} ); } export function useToast() { const context = useContext(ToastContext); if (!context) { throw new Error("useToast must be used inside ToastProvider"); } return context; }