Date adapter : différentier les valeurs invalides et null - #303
Open
sambaptista wants to merge 1 commit into
Open
Date adapter : différentier les valeurs invalides et null#303sambaptista wants to merge 1 commit into
sambaptista wants to merge 1 commit into
Conversation
…es the day exists Date adapter only has two states : valid date, or anything else. But empty and invalid date are two different usecases that must be handled differently. This allows validators to notify invalid value.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Actuellement, le dater adapter retourne deux valeurs : soit c'est valide et retourne la date, soit c'est autre chose et ca retourne un null.
Le problème c'est que vide et invalide c'est 2 choses bien différentes, et on ne les différentie pas. Vide est souvent valide, alors qu'invalide c'est souvent pas valide :)
Et ca fait que les validateurs des formulaires pensent que le champ est toujours vide, et donc valide, jusqu'à ce qu'il soit vraiment valide mais pas vide.
C'est ce que corrige cette PR.
On passe de deux valeurs :
à :
Concrêtement dans le GUI, ca va changer plusieurs choses :
Dès le début de la frappe, on va avoir un message d'erreur "Date invalide". Ca peut paraître cocasse, mais la saisie d'un email fonctionne déjà comme ça. Ca ne change pas grand chose, le GUI est juste plus communicatif, mais pas trop non plus car la plupart de nos inputs de date n'ont pas de message d'erreur sous le form field. Le champ vire juste au rouge.
Le formulaire n'est plus considéré comme valide et vide à chaque frappe. Les traitements qui attendent un formulaire valide, comme le rapport des indicateurs qui envoyaient une requête à chaque caractère, ne se déclenchent plus qu'une fois la date complète. Ce genre de pipe était donc sans effet : filter(() => this.form.valid) et le subscribe était injustement appelé avec une valeur vide à chaque frape.
Aujourd'hui, une date invalide passe pour un champ valide vide, et le formulaire peut partir sans la date. J'ai testé avec 66.66.6666, ça passe crème (la date est vide en BD). Avec cette PR, même le 29.02.2026 ne passe pas car n'est pas bisextile.
La version 4.5 telle qu'elle est là dépend de ce merge, sinon il doit prendre ses propres mesures correctives locales (idem pour les 3 projets en faite)..