Files
moreminimore-vibe/src/lib/toast.ts
2025-04-11 09:38:16 -07:00

54 lines
1.3 KiB
TypeScript

import { toast } from "sonner";
/**
* Toast utility functions for consistent notifications across the app
*/
/**
* Show a success toast
* @param message The message to display
*/
export const showSuccess = (message: string) => {
toast.success(message);
};
/**
* Show an error toast
* @param message The error message to display
*/
export const showError = (message: any) => {
toast.error(message.toString());
console.error(message);
};
/**
* Show an info toast
* @param message The info message to display
*/
export const showInfo = (message: string) => {
toast.info(message);
};
/**
* Show a loading toast that can be updated with success/error
* @param loadingMessage The message to show while loading
* @param promise The promise to track
* @param successMessage Optional success message
* @param errorMessage Optional error message
*/
export const showLoading = <T>(
loadingMessage: string,
promise: Promise<T>,
successMessage?: string,
errorMessage?: string
) => {
return toast.promise(promise, {
loading: loadingMessage,
success: (data) => successMessage || "Operation completed successfully",
error: (err) => errorMessage || `Error: ${err.message || "Unknown error"}`,
});
};
// Re-export for direct use
export { toast };