v11.16
Cette release adresse essentiellement l'issue #191.
errorDisplay
La nouvelle propriété errorDisplay
, disponible dans les options de champ (fieldFor
/selectFor
/autocompleteFor
), le <Form>
et les actions de formulaires (a.errorDisplay()
dans useFormActions
), permet de renseigner le mode d'affichage des erreurs des champs. Elle remplace forceErrorDisplay
(sur actions
et <Form>
) et noError
sur les champs. Elle peut avoir 3 valeurs :
always
=> les erreurs sont toujours affichéesafter-focus
=> les erreurs sont affichées après avoir focus le champ en question au moins une foisnever
=> les erreurs ne sont jamais affichées
(Les erreurs ne sont quand même jamais affichées sur un champ quand il a le focus)
Dans les actions de formulaires :
after-focus
passera le mode àalways
après l'appel desave()
, et reviendra àafter-focus
une fois la sauvegarde effectuée (ou un cancel)- Si le mode n'est pas renseigné, il sera égal à
after-focus
si le formulaire est initialement en édition, etalways
sinon
Ce fonctionnement correspond presque exactement au fonctionnement précédent, mais implémenté de manière plus simple, claire, et flexible (en particulier parce qu'on peut surcharger l'affichage champ par champ).
breaking change: forceErrorDisplay
n'existe plus, vous pouvez remplacer vos éventuelles assignations manuelles à false
par errorDisplay: "after-focus"
et à true
par errorDisplay: "always"
.
a.successMessage()
Vous pouvez désormais surcharger le message de succès d'un formulaire directement via successMessage()
, au lieu de passer i18nPrefix()
pour que le message pointe sur {i18nPrefix}.detail.saved
. Cela implique aussi que vous pouvez appeler successMessage("")
pour désactiver le message. C'est un breaking change évidemment... que vous pouvez résoudre soit en changeant i18nPrefix(prefix)
par successMessage(prefix + ".detail.saved")
, ou en simplifiant.
Réécriture useLoad
/useFormActions
Les deux hooks ont été réécrits pour qu'ils soient effectivement conçus de la même façon. Cela a permis de :
- Autoriser le changement de
node
suruseLoad
etuseFormActions
- Autoriser un array de dépendances sur
useFormActions
Toute modification de node
ou des dépendances va mettre à jour toutes les fonctions définies dans useLoad
et useFormActions
(params
, load
, save
, on
...), et relancer la fonction de chargement. Si c'est probablement toujours souhaitable pour useLoad
(et c'était déjà le cas de toute façon), ça l'est peut être moins pour useFormActions
si les dépendances sont utilisées dans le save
ou un on
, mais pas dans le load
. Dans ce cas, il vaut mieux séparer le load
dans un useLoad
sans dépendances. Il y a un exemple dans la doc.
De plus, useFormActions
ne supportent plus d'avoir plusieurs services de sauvagarde, une fonctionnalité qui n'a jamais été utilisée... (théoriquement un breaking change aussi mais bon...)
Réécriture Input
(gestion des masques)
Le composant Input
a été réécrit, en internalisant la gestion des masques de saisie (au lieu de dépendre d'une librairie externe inchangée depuis 7 ans et difficile à utiliser). S'il est fonctionnellement identique au composant précédent, certains bugs ont été corrigés (en particulier liés aux couper/copier/coller), et il est entièrement documenté dans la doc Focus 😉.