Retour à la leçon
Mission

Mission : éliminer le trio dupliqué de SignupForm

Migrer un formulaire du trio useState (pending/erreur/succès) vers useActionState, puis exposer son statut à un enfant sans prop-drilling.

Contexte

SignupForm.jsx répète, comme neuf autres formulaires de l'application, le même trio const [enEnvoi, setEnEnvoi] = useState(false) / const [erreur, setErreur] = useState(null) / gestion manuelle du finally. Un audit récent a même trouvé un formulaire où l'appel à setEnEnvoi(false) avait été oublié dans le finally, laissant le bouton bloqué sur "Envoi..." indéfiniment après une erreur réseau. Il faut migrer SignupForm vers useActionState, et faire lire son statut par un composant enfant BoutonSoumettre sans lui transmettre pending en prop.