Skip to content

feature/VSN-2860 - replace sonner toast with self-contained notify utility

youssef.achkir a demandé de fusionner feature/VSN-2860 vers develop

Le problème c'est que toutes nos pages tickets utilisent un système de routing interne basé sur un état pageView ('list' | 'detail' | 'create'). Quand l'action réussit (création ou modification), on switche le pageView ce qui démonte immédiatement le composant enfant — et c'est exactement à ce moment-là que le toast essaie de s'afficher. Résultat : le composant est déjà démonté avant que le toast ait pu être rendu.

J'ai essayé :

  • Appeler le toast côté enfant avant le callback → démonté trop vite
  • Appeler le toast côté parent après le switch de vue → le <Toaster /> n'est pas dans notre layout, donc rien ne s'affiche
  • Ajouter un setTimeout des deux côtés pour retarder le switch → résultat aléatoire selon les perfs du navigateur, pas fiable

Pour que sonner ou un snackbar MUI fonctionne correctement, il faudrait soit ajouter le <Toaster /> dans le root layout (ce que je ne voulais pas toucher sans validation), soit refactoriser la navigation pour utiliser un vrai router au lieu du state local.

Du coup j'ai préféré une solution autonome qui injecte son propre portail dans le DOM directement — ça contourne complètement le problème de cycle de vie des composants et ça ne dépend d'aucune configuration globale.

Rapports de requête de fusion