toaster.tsx 786 B

1234567891011121314151617181920212223242526272829303132333435
  1. "use client"
  2. import { useToast } from "@/hooks/use-toast"
  3. import {
  4. Toast,
  5. ToastClose,
  6. ToastDescription,
  7. ToastProvider,
  8. ToastTitle,
  9. ToastViewport,
  10. } from "@/components/ui/toast"
  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. }