import { toast as sonnerToast } from 'sonner' import { Toaster } from '@/components/ui/sonner' export interface ToastAction { label: string onClick: () => void } /** Shim that preserves the legacy `(title, message?, action?)` call * shape used throughout the codebase while delegating to sonner for * actual rendering. Call sites don't need to change. Actions auto- * extend the toast duration to 8s so users have time to hit Undo. */ const build = (message?: string, action?: ToastAction, duration = 5000) => ({ description: message, action: action && { label: action.label, onClick: action.onClick }, duration: action ? Math.max(duration, 8000) : duration, }) export const toast = { success: (title: string, message?: string, action?: ToastAction) => sonnerToast.success(title, build(message, action)), error: (title: string, message?: string, action?: ToastAction) => sonnerToast.error(title, build(message, action)), info: (title: string, message?: string, action?: ToastAction) => sonnerToast.info(title, build(message, action)), warning: (title: string, message?: string, action?: ToastAction) => sonnerToast.warning(title, build(message, action)), } /** Mounted once near the App root. Delegates to sonner's `` * with palette-matched class overrides (see `@/components/ui/sonner`). */ export function ToastContainer() { return }