/**
 * 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>
  );
}
