Skip to content

bugfix: Valeur du input n'était pas prise en compte lors de la validation avec le clavier (édition cas type)

Pour la postérité, et pour comprendre dans le futur pourquoi on a un setTimeout de 1ms dans le code.

Étapes de reproduction du bug :

  1. Éditer un cas type
  2. Changer une valeur (par exemple le salaire)
  3. Appuyer sur la touche "entrée" du clavier pour valider

Description du bug (comportement inattendu) :

La valeur n'est pas modifiée.

Débogage :

La variable situation est passée du composant parent => TestCaseEdit => VariableInput (encapsulés dans cet ordre). Une modification est détectée par un on:change sur l'<input> qui propage le changement et le fait remonter au composant parent.

  1. Lorsque le bouton flottant "Valider" est cliqué => tout fonctionne
  2. Lorsque la touche "entrée" du clavier est appuyée => le bug apparaît

Pourquoi ?

  1. La modification a le temps de se propager et cela est dû à la différence de temps minime (quelques millisecondes) entre le déclenchement du on:change et le clic sur "valider".

  2. Lorsque la touche du clavier est appuyée, il n'y a pas de temps qui permet la propagation du changement avant la fermeture du panneau d'édition. De ce fait, les parents se détachent directement et la changement n'a pas lieu.

Bug fix :

  1. click down sur "valider" déclenche le on:change, et click up déclenche la fermeture du panneau d'édition.
  2. Pour compenser cela, nous ajoutons un délai de 1ms avant la fermeture du panneau d'édition.
Edited by Toufic Batache

Merge request reports