import * as ToastPrimitive from '@radix-ui/react-toast';
import clsx from 'clsx';
import { useToasts } from '~/hooks/useToasts';
export default () => {
const { toasts, removeToast } = useToasts();
return (
<>
{toasts.map((toast) => (
removeToast(toast)}
duration={toast.duration || 3000}
className={clsx(
'm-4 w-80 rounded-lg',
'bg-app-box/20 backdrop-blur',
'radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right',
'radix-state-closed:animate-toast-hide',
'radix-swipe-end:animate-toast-swipe-out',
'translate-x-radix-toast-swipe-move-x',
'radix-swipe-cancel:ease-[ease] radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200',
'border-2 border-white/10 shadow-2xl focus:outline-none focus-visible:ring focus-visible:ring-accent/75'
)}
>
{toast.title}
{toast.subtitle && (
{toast.subtitle}
)}
{toast.actionButton && (
{
e.preventDefault();
toast.actionButton?.onClick();
removeToast(toast);
}}
>
{toast.actionButton.text || 'Open'}
)}
Dismiss
))}
>
);
};