Bug lors du déplacement de blocs de fonctionnalités

Bonjour,

je suis sous Firefox 114.0.1 Linux.

Si je crée un bloc d’appareils et que je le fais glisser, visuellement ça déconne même si ça fonctionne si je clic sur sauvegarder.


J’ai créé le bloc 1.
Je l’ai fait glisser sur le bloc 2.
et ça donne ça :

Le nom du bloc est OK mais son contenu à copié celui de son arrivé (ou du moins celui d’un autre bloc).

J’ai également eu un conflit de ce genre, même avec une fusion des 2 blocs mais sans enregistrer, de mémoire sur téléphone.
J’ai retenté sur PC (Chrome) puis c’est passé.

Merci du retour @Hizo :slight_smile:

@Lokkye je ne sais pas si tu as vu ce bug. Apparemment le nouveau widget « Appareils » n’a pas l’air de supporter ce comportement, il faudrait vérifier si la fonction « componentWillReceiveProps » est bien présente et fonctionnelle

J’ai créé une issue Github:

Ah, je regarde cela rapidement

1 « J'aime »

Désolé mais je n’arrive pas à le reproduire chez moi dans chrome et firefox :frowning:

@Lokkye tu as essayé en déplaçant une box Appareil sur une autre ? C’est uniquement la partie « React-Select » qui saute je crois

@pierre-gilles: Oui, j’ai essayé plein de chose, mettre un box par dessus une autre, en dessous, au dessus, dans une autre colonne. Je ne vois aucun problème de mon coté :frowning:

Je viens de refaire des tests, ça me le fait aussi avec le bloc « Appareils de la pièce ».

et d’ailleurs, lorsque je veux faire remonter le bloc vers le haut dans la même colonne, aucun changement visuel même si c’est OK une fois enregistré.

et lorsque je déplace le bloc dans une autre colonne, visuellement (uniquement), son contenu change…

Ça me fait la même chose avec Opera v100.0.4815.20.

Le bug se reproduit 100% des fois chez moi :

  1. Je drag and drop un widget « appareils » sur un autre widget « appareils » (titre différent, et appareils sélectionné différents)

  2. Le widget source disparait (en affichage) au niveau des appareils sélectionné:

Un message a été scindé en un nouveau sujet : Question déplacement des actions de scènes

@pierre-gilles bon je viens de comprendre que en local (dev env) j’ai pas le problème. Mais sur mon instance distante j’ai bien le problème :frowning: . Je regarde d’ou cela peux venir

@pierre-gilles : Bon tu avais raison pour la function « componentWillReceiveProps »
La PR avec le fix :

1 « J'aime »

@Lokkye ta solution est un peu violente :stuck_out_tongue: ça fait un appel API pour le moindre petit changement de props, même si c’est un simple changement de caractères dans le titre.

est-ce que tu peux rajouter un test pour ne rafraichir que si nécessaire ?

@pierre-gilles: My bad :frowning: C’est vrai que c’était un peu violent. J’ai fait la modif en conséquence

C’est mieux, mais le problème est le même !

Fais le test, ajoute un console.log dans le componentWillReceiveProps, et modifie par exemple le nom du widget, tu verras que la fonction est appelée à chaque caractère tapé, ce qui appelera la fonction « refreshSelectedOptions » à chaque lettre

Il faut rajouter un if dans le componentWillReceiveProps pour ne rafraichir la sélection que lorsque la sélection change :slight_smile:

@pierre-gilles : J’ai rajouté le test qui va bien :slight_smile:

@Lokkye Tu es sûr de toi ? Je ne vois rien de plus dans la PR

Le but du test c’est de ne re-créer le tableau dans les states uniquement si le tableau passé en props à changé

@pierre-gilles : Oui :frowning: J’avais oublier de push :frowning:
Normalement tu devrais voir les modifications maintenant.

1 « J'aime »

Merci ! Je viens de te faire une review, désolé un peu tard j’ai beaucoup de choses en ce moment de mon côté :slight_smile:

Le check ne va pas fonctionner si jamais tu supprimes un widget et que le widget d’a côté a exactement le même nombre de deviceFeatures, ça ne rafraichira pas la liste (on revient au bug initial):