import { CSSProperties, ReactNode, useState, createContext } from "react"; import CloseIcon from '@material-ui/icons/Close'; function ToastArea(props: { style?: CSSProperties children?: ReactNode rerender?: boolean; }) { return
{props.children}
} function Toast(props: { text?: string description?: string icon?: ReactNode children?: ReactNode type?: "normal"|"confirmation"|"error" style?: CSSProperties }) { var [visible, setVisibility] = useState(true); setTimeout(() => setVisibility(false), 10e3); return visible &&
{ props.children ||
{props.icon}

{props.text}

{props.description}

setVisibility(false)}>
}
} export type toastSettings = { message: string, description?: string, type: "confirmation"|"normal"|"error", icon?: ReactNode } export type toastType = (settings: toastSettings) => void; export var ToastContext = createContext<{ toast?: toastType }>({}); var toasts: Array = []; export function ToastContextWrapper(props: { children?: ReactNode }) { var [dummyState, rerender] = useState(false); return { toasts.push(); rerender(!dummyState); } }}> { props.children } {toasts} }