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
),
}