import { useState } from 'react';
import { Alert, Button, Toast } from 'react-daisyui';
let gSetToasts;
let successTimeoutId;
type ToastItem = {
text: string;
status: 'success' | 'error';
};
export const Toaster = () => {
const [toasts, setToasts] = useState({} as { success?: ToastItem; error?: ToastItem });
gSetToasts = setToasts;
return (
{[toasts.success, toasts.error].map((toast: ToastItem | undefined, index) => {
if (!toast) return null;
return (
{toast.text}
);
})}
);
};
export const successToast = (text: string) => {
if (gSetToasts) {
gSetToasts({ success: { text, status: 'success' } });
clearTimeout(successTimeoutId);
successTimeoutId = setTimeout(() => {
clearTimeout(successTimeoutId);
gSetToasts((prevToasts) => ({ success: undefined, error: prevToasts.error }));
}, 10000);
}
};
export const errorToast = (text: string) => {
if (gSetToasts) {
gSetToasts((prevToasts) => ({ success: prevToasts.success, error: { text, status: 'error' } }));
}
};