import { createContext, CSSProperties, ReactNode, useState } 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}
;
}