Skip to content

Date adapter : différentier les valeurs invalides et null - #303

Open
sambaptista wants to merge 1 commit into
masterfrom
invalid-date
Open

Date adapter : différentier les valeurs invalides et null#303
sambaptista wants to merge 1 commit into
masterfrom
invalid-date

Conversation

@sambaptista

@sambaptista sambaptista commented Sep 4, 2026

Copy link
Copy Markdown
Member

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 :

  • date valide
  • null (vide)

à :

  • date valide
  • date invalide
  • null

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)..

…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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant