2025-12-25 10:32:53 +00:00
|
|
|
|
import { InternalAxiosRequestConfig } from 'axios';
|
2026-01-15 18:26:53 +00:00
|
|
|
|
// CRITICAL FIX: Utiliser le wrapper lazy pour éviter les collisions de noms de variables
|
|
|
|
|
|
import toast from '@/utils/toast';
|
2025-12-25 10:32:53 +00:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* FE-COMP-005: Helper utilities for API toast notifications
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Enable success toast for an API request
|
|
|
|
|
|
* @param config Axios request config
|
|
|
|
|
|
* @param message Optional custom success message
|
|
|
|
|
|
* @returns Modified config with toast enabled
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function withSuccessToast(
|
|
|
|
|
|
config: InternalAxiosRequestConfig,
|
|
|
|
|
|
message?: string,
|
|
|
|
|
|
): InternalAxiosRequestConfig {
|
|
|
|
|
|
(config as any)._showSuccessToast = true;
|
|
|
|
|
|
if (message) {
|
|
|
|
|
|
(config as any)._successMessage = message;
|
|
|
|
|
|
}
|
|
|
|
|
|
return config;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Disable automatic error toast for an API request
|
|
|
|
|
|
* Useful when you want to handle errors manually
|
|
|
|
|
|
* @param config Axios request config
|
|
|
|
|
|
* @returns Modified config with toast disabled
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function withoutErrorToast(
|
|
|
|
|
|
config: InternalAxiosRequestConfig,
|
|
|
|
|
|
): InternalAxiosRequestConfig {
|
|
|
|
|
|
(config as any)._disableToast = true;
|
|
|
|
|
|
return config;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Show a success toast manually
|
|
|
|
|
|
* @param message Success message
|
|
|
|
|
|
* @param duration Toast duration in milliseconds
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function showSuccessToast(message: string, duration?: number): void {
|
|
|
|
|
|
toast.success(message, { duration });
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Show an error toast manually
|
|
|
|
|
|
* @param message Error message
|
|
|
|
|
|
* @param duration Toast duration in milliseconds
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function showErrorToast(message: string, duration?: number): void {
|
|
|
|
|
|
toast.error(message, { duration });
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Show an info toast manually
|
|
|
|
|
|
* @param message Info message
|
|
|
|
|
|
* @param duration Toast duration in milliseconds
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function showInfoToast(message: string, duration?: number): void {
|
|
|
|
|
|
toast(message, { duration, icon: 'ℹ️' });
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Show a warning toast manually
|
|
|
|
|
|
* @param message Warning message
|
|
|
|
|
|
* @param duration Toast duration in milliseconds
|
|
|
|
|
|
*/
|
|
|
|
|
|
export function showWarningToast(message: string, duration?: number): void {
|
|
|
|
|
|
toast(message, { duration, icon: '⚠️' });
|
|
|
|
|
|
}
|