veza/apps/web/src/components/feedback/LazyToaster.tsx
senke 1ed6e7f07b state-ownership: delete unused optimisticStoreUpdates.ts file
- Deleted apps/web/src/utils/optimisticStoreUpdates.ts (unused file)
- File was unused - no imports found in codebase
- Mutations already use React Query's onMutate pattern
- No TypeScript errors after deletion
- Actions 4.4.1.2 and 4.4.1.3 complete
2026-01-15 19:26:53 +01:00

34 lines
1.1 KiB
TypeScript

/**
* LazyToaster - Composant lazy pour react-hot-toast
*
* CRITICAL FIX: Charge react-hot-toast de manière lazy pour éviter
* les collisions de noms de variables (ie) lors de la minification.
*
* Le problème: react-hot-toast utilise une variable 'ie' qui entre
* en conflit avec d'autres variables minifiées dans le même chunk.
* Solution: Chargement dynamique pour isoler le module.
*/
import { lazy, Suspense } from 'react';
// Import dynamique de react-hot-toast pour éviter les collisions de noms
const Toaster = lazy(() =>
import('react-hot-toast').then((mod) => ({ default: mod.Toaster }))
);
interface LazyToasterProps {
position?: 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
[key: string]: any; // Permet de passer toutes les autres props à Toaster
}
/**
* Composant wrapper qui charge Toaster de manière lazy
* Aucun fallback nécessaire car Toaster est invisible jusqu'à ce qu'un toast soit affiché
*/
export function LazyToaster(props: LazyToasterProps) {
return (
<Suspense fallback={null}>
<Toaster {...props} />
</Suspense>
);
}