import React, { useEffect } from "react"; import { useSnackbar, SnackbarProvider as SB } from "notistack"; import { EventEmitter } from "../../utils/EventEmitter"; import Alert from "@mui/material/Alert"; import Paper from "@mui/material/Paper"; interface IProps { children: React.ReactNode | React.ReactNode[]; } export function SnackbarProvider(props: IProps): React.ReactElement { return ( {props.children} ); } export const SnackbarEvents = new EventEmitter<[string, "success" | "warning" | "error" | "info"]>(); export function Snackbar(): React.ReactElement { const { enqueueSnackbar } = useSnackbar(); useEffect(() => SnackbarEvents.subscribe((s, variant) => enqueueSnackbar({s}, { content: (k, m) => {m}, variant: variant, }), ), ); return <>; }