Files
Stalwart-webui/src/components/ui/toaster.tsx
T
2026-04-20 15:02:57 +02:00

31 lines
998 B
TypeScript

/*
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <hello@stalw.art>
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
import { Toast, ToastClose, ToastDescription, ToastTitle, ToastViewport } from '@/components/ui/toast';
import { useToast } from '@/hooks/use-toast';
export function Toaster() {
const { toasts } = useToast();
const visibleToasts = toasts.filter((t) => t.open !== false);
return (
<ToastViewport>
{visibleToasts.map(function ({ id, title, description, variant, open, onOpenChange, ...props }) {
return (
<Toast key={id} variant={variant} open={open} onOpenChange={onOpenChange} {...props}>
<div className="grid gap-1">
{title && <ToastTitle>{title}</ToastTitle>}
{description && <ToastDescription>{description}</ToastDescription>}
</div>
<ToastClose onClick={() => onOpenChange?.(false)} />
</Toast>
);
})}
</ToastViewport>
);
}