Skip to content

v11.19

Compare
Choose a tag to compare
@JabX JabX released this 30 Aug 15:04
· 84 commits to master since this release

(Pour une fois, cette release n'apporte aucun breaking change 😄)

Compositions isRequired: false

Les compositions ("object", "list", et "recursive-list") peuvent désormais renseigner leur caractère obligatoire via isRequired, comme les champs. Si une composition est marquée comme étant non obligatoire, alors tous ses champs seront également non obligatoires si la composition est entièrement vide (tous les champs à undefined et toutes les listes vides). toFlatValues retirera la composition de son résultat (au lieu de mettre {}) dans ce cas.

isRequired reste facultatif dans les définitions d'entité et il sera true pour coller à l'existant sinon. Si vous utilisez TopModel, vous pouvez le générer avec l'option extendedCompositions du générateur JS.

required()

Vous pouvez désormais utiliser la fonction required() sur un builder de noeud de formulaire, qui fonctionne de la même manière que edit() :

  • required(false) rendra le noeud non obligatoire (comme décrit dans le paragraphe précédent)
  • required(() => /* truc calculé */, "champ1", "champ2") patchera les deux champs pour modifier leur isRequired (cela appelera metadata()).

Cette évolution a nécessité une petite refonte interne de la gestion des surcharges de metadata dans Focus, qui permet en plus de pouvoir spécifier plusieurs patch sur le même champ sans perdre leur caractère calculé (un second patch après un metadata calculé sortait d'ailleurs une erreur, ce qui n'est plus le cas).

Champs retirés sur Patch

Vous pouvez maintenant spécifier les champs retirés dans un formulaire avec Patch via son nouveau troisième paramètre optionnel : Patch<MyEntity, {}, "champRetiré1" | "champRetiré2">.