import MuiAlert, { AlertProps } from "@mui/material/Alert"; import React, { useState } from "react"; import { AlertColor } from "@mui/material"; import Snackbar from "@mui/material/Snackbar"; import { useContext } from "react"; const Alert = React.forwardRef(function Alert( props, ref ) { return ; }); interface context { handleOpen: (severity: AlertColor, message: string) => void; } const NirvanaToastContext = React.createContext({ handleOpen: ( severity: AlertColor = "success", message: string = "Success" ) => {}, }); export const NirvanaToastProvider: React.FC = ({ children }) => { const [open, setOpen] = useState(false); const [severity, setSeverity] = useState("success"); const [message, setMessage] = useState("Success"); const handleOpen = ( severity: AlertColor = "success", message: string = "Success" ) => { // set severity + message first setSeverity(severity); setMessage(message); // show the alert setOpen(true); }; const handleClose = () => setOpen(false); const value = { handleOpen, }; return ( {message} {children} ); }; export default function useNirvanaToast() { return useContext(NirvanaToastContext); }