toaster.tsx 772 B

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