import { type ExternalToast, toast as sonnerToast, Toaster } from "sonner" import { MaterialIcon, type MaterialIconSetIconProps, } from "@scandic-hotels/design-system/Icons/MaterialIcon" import Button from "../Button" import Body from "../Text/Body" import { toastVariants } from "./variants" import styles from "./toasts.module.css" import type { ToastsProps } from "./toasts" export function ToastHandler() { return } interface AlertIconProps { variant: ToastsProps["variant"] } function AlertIcon({ variant, ...props }: AlertIconProps & MaterialIconSetIconProps) { switch (variant) { case "error": return case "info": return case "success": return case "warning": return } } export function Toast({ children, message, onClose, variant }: ToastsProps) { const className = toastVariants({ variant }) const Icon = return (
{Icon && Icon}
{message ? ( {message} ) : (
{children}
)} {onClose ? ( ) : null}
) } export const toast = { success: (message: React.ReactNode, options?: ExternalToast) => sonnerToast.custom( (t) => ( sonnerToast.dismiss(t)} /> ), options ), info: (message: React.ReactNode, options?: ExternalToast) => sonnerToast.custom( (t) => ( sonnerToast.dismiss(t)} /> ), options ), error: (message: React.ReactNode, options?: ExternalToast) => sonnerToast.custom( (t) => ( sonnerToast.dismiss(t)} /> ), options ), warning: (message: React.ReactNode, options?: ExternalToast) => sonnerToast.custom( (t) => ( sonnerToast.dismiss(t)} /> ), options ), }