import { toast } from "sonner"; import "./OperationStatusToast.css"; export type OperationStatusToastVariant = "saving" | "deleting"; export type OperationStatusToastId = string | number; interface OperationStatusToastProps { variant: OperationStatusToastVariant; message?: string; } const defaultMessages: Record = { saving: "Saving", deleting: "Deleting", }; export const OperationStatusToast = ({ variant, message, }: OperationStatusToastProps) => (
); const showOperationStatusToast = ( variant: OperationStatusToastVariant, message?: string, ): OperationStatusToastId => toast.custom( () => , { duration: Infinity, position: "bottom-right", }, ); export const operationStatusToast = { saving: (message?: string): OperationStatusToastId => showOperationStatusToast("saving", message), deleting: (message?: string): OperationStatusToastId => showOperationStatusToast("deleting", message), dismiss: (toastId: OperationStatusToastId): void => { toast.dismiss(toastId); }, };