25 lines
562 B
TypeScript
25 lines
562 B
TypeScript
|
|
'use client';
|
||
|
|
|
||
|
|
import { useToastStore } from '@/store/toast-store';
|
||
|
|
import { Toast } from '@/components/ui/toast';
|
||
|
|
|
||
|
|
export function ToastProvider() {
|
||
|
|
const { toasts } = useToastStore();
|
||
|
|
|
||
|
|
if (toasts.length === 0) return null;
|
||
|
|
|
||
|
|
return (
|
||
|
|
<div
|
||
|
|
className="fixed top-4 right-4 z-[9999] flex flex-col gap-2 pointer-events-none"
|
||
|
|
aria-live="polite"
|
||
|
|
aria-atomic="true"
|
||
|
|
>
|
||
|
|
{toasts.map((toast) => (
|
||
|
|
<div key={toast.id} className="pointer-events-auto">
|
||
|
|
<Toast toast={toast} />
|
||
|
|
</div>
|
||
|
|
))}
|
||
|
|
</div>
|
||
|
|
);
|
||
|
|
}
|