toaster.tsx 791 B

1234567891011121314151617181920212223242526272829303132333435
  1. "use client";
  2. import {
  3. Toast,
  4. ToastClose,
  5. ToastDescription,
  6. ToastProvider,
  7. ToastTitle,
  8. ToastViewport,
  9. } from "@/components/ui/toast";
  10. import { useToast } from "@/hooks/useToast";
  11. export function Toaster() {
  12. const { toasts } = useToast();
  13. return (
  14. <ToastProvider>
  15. {toasts.map(function ({ id, title, description, action, ...props }) {
  16. return (
  17. <Toast key={id} {...props}>
  18. <div className="grid gap-1">
  19. {title && <ToastTitle>{title}</ToastTitle>}
  20. {description && (
  21. <ToastDescription>{description}</ToastDescription>
  22. )}
  23. </div>
  24. {action}
  25. <ToastClose />
  26. </Toast>
  27. );
  28. })}
  29. <ToastViewport />
  30. </ToastProvider>
  31. );
  32. }