codegouvfr / react-dsfr

🇫🇷 The Frech Government Design system React toolkit
https://react-dsfr.codegouv.studio
MIT License
403 stars 49 forks source link

Régression style fr-input #276

Closed totakoko closed 1 month ago

totakoko commented 1 month ago

:boom: Il semblerait que la PR #274 ait déclenché une régression de notre côté.

On utilise Formik qui passe automatiquement des propriétés au composant Input dont className ce qui fait que la classe fr-input et les classes de validation sautent.

Problème visible ici : il faut faire un test d'adresse pour afficher le formulaire qui pose problème.

J'ai pas le temps de regarder pour un correctif ce soir donc ça attendra la semaine prochaine au minimum. Et aussi je ne connais pas le cas d'usage pour lequel a été créé la PR... :shrug:

Un avis ? Est-ce que l'objectif de la PR était de surcharger complètement className par exemple ou juste d'ajouter des classes ?

ddecrulle commented 1 month ago

Hello, l'objectif de la PR et surtout de pouvoir surcharger aria-describedby. J'ai eu la même regression que tu mentionnes, que j'ai corrigé ici.

Deux solutions, soit tu retires le className des props passées par Formik comme j'ai fais, soit on considère qu'il n'est jamais nécessaire de changer le classname (de retirer "fr-select", "fr-input", etc), et dans ce cas là on applique le className après avoir spread les nativeProps.

totakoko commented 1 month ago

Pour les props passées par Formik, on ne passe aucune class, c'est Formik qui passe className, même si c'est undefined. Et je suis pas sûr de vouloir modifier Formik là... :upside_down_face: Je serais d'avis de déplacer le className après les nativeInputProps pour conserver la gestion des classes par le formulaire (à moins que ça gène des personnes...)

ddecrulle commented 1 month ago

Il ne s'agit pas de modifier Formik ... simplement enlever le className des props générées par Formik avant de spread ça au composant. J'ai tout de même revert la PR.