// lib/ui/showToast.ts import { toast } from "sonner"; // Generic toast function export function showToast(message: string, type: 'success' | 'error' | 'info' | 'warning' = 'info') { const options = { dismissible: true, closeButton: true, }; switch (type) { case 'success': toast.success(message, options); break; case 'error': toast.error(message, options); break; case 'info': toast.info(message, options); break; case 'warning': toast.warning(message, options); break; default: toast(message, options); } } // Specific toast functions with appropriate error handling export function showErrorToast(error: unknown, fallback = "Ein unbekannter Fehler ist aufgetreten") { let message: string; if (error instanceof Error) { message = error.message; } else if (typeof error === "string") { message = error; } else { message = fallback; } toast.error(message, { dismissible: true, closeButton: true, }); } export function showSuccessToast(message: string) { toast.success(message, { dismissible: true, closeButton: true, }); } export function showInfoToast(message: string) { toast.info(message, { dismissible: true, closeButton: true, }); } export function showWarningToast(message: string) { toast.warning(message, { dismissible: true, closeButton: true, }); } // Backward compatibility - keep the original showError function export function showError(error: unknown, fallback = "Ein unbekannter Fehler ist aufgetreten") { showErrorToast(error, fallback); }