klee-contrib/focus4

Passer (automatiquement) le type du champ aux inputs pour le conserver au `onChange`

Closed this issue · 1 comments

JabX commented

L'évènement onChange des inputs HTML renvoie toujours un string, même si on a passé un nombre en entrée. Ca pose un bon nombre de problèmes un peu partout, bien visibles (et trompeurs) en Typescript puisque le type est number alors qu'on à un string.

Une solution pourrait être d'utiliser la propriété fieldType des champs pour y renseigner explicitement les chaînes "string", "boolean" ou "number" (au lieu des {} as number), ce qui pourrait être passé aux inputs pour qu'ils puissent faire des conversions dans le bon type dans leur onChange. Cet usage de chaînes dans fieldType doit être optionnel et doit être une capacité strictement supplémentaire. Renseigner dans ce champ autre chose que "number" ou "boolean" doit impliquer "string", et cela conservera le comportement actuel.

La conversion doit être faite dans les inputs (au lieu du champ qui serait plus évident ?) parce que pour les nombres l'état de l'input sera différent de l'état du champ (ex : "12." dans l'input sera "12" dans le champ mais le point doit rester dans l'input).

(j'ai envie de mettre 9.8.x pour la milestone mais je suis pas sûr du tout que ça soit tenable/raisonnable)

Effectivement ça a déjà posé plusieurs problèmes, ce serait plus logique ^^