cozy / cozy-flagship-app

GNU Affero General Public License v3.0
9 stars 1 forks source link

fix: persist candidateApps in osreceive state (VO-463) #1190

Closed acezard closed 6 months ago

acezard commented 7 months ago

🐛 Bug Fixes

Crash-- commented 7 months ago

Je comprends pas comment ça corrige le bug du cancel ? C'est le re-render qui posait problème ? Si oui, pourquoi ?

acezard commented 7 months ago

Je comprends pas comment ça corrige le bug du cancel ? C'est le re-render qui posait problème ? Si oui, pourquoi ?

non c'était à cause du reset initial state qui enlevait les candidateApps, et ces dernières n'étaient pas refetch à cause du flag useRef() (didCall.current). J'ai enlevé ce flag et j'utilise le state dans ce commit. Je ne refetch jamais les candidateApps dans le cycle de vie de l'application. A priori il n'y a pas de risque de cache obsolète car les candidateApps ne bougent pas fréquemment (voire jamais), et elles sont refetch au lancement de l'app (après kill).

ça enlève donc le bouton cancel et également l'erreur "no candidate apps available" qu'on avait vu

Crash-- commented 7 months ago

Et pourquoi on passe par un hook custom et pas par un useQuery ? Pourquoi on dispatch des type: OsReceiveActionType.SetCandidateApps, ? un useQuery résout aussi les problèmes ? Ou un useDocument. Ça résoudrait les problèmes et ça permettrait d'avoir le temps réel de branché et la mise à jour des datas. Non ?

acezard commented 7 months ago

Et pourquoi on passe par un hook custom et pas par un useQuery ? Pourquoi on dispatch des type: OsReceiveActionType.SetCandidateApps, ? un useQuery résout aussi les problèmes ? Ou un useDocument. Ça résoudrait les problèmes et ça permettrait d'avoir le temps réel de branché et la mise à jour des datas. Non ?

Parce qu'on veut faire cette query uniquement si l'utilisateur a ouvert/wake l'application avec des fichiers (c'est une requête assez longue). On peut réorganiser avec <Query /> ou autre composant conditionnel cela dit

Crash-- commented 7 months ago

On ne veut plus utiliser <Query. Si on peut pas mettre un hook car conditionnel, ça montrer un manque de "composabilité" de nos composants et donc un problème d'archi.

acezard commented 7 months ago

On ne veut plus utiliser <Query. Si on peut pas mettre un hook car conditionnel, ça montrer un manque de "composabilité" de nos composants et donc un problème d'archi.

on peut mettre le useQuery dans la vue en question (avec le bouton next), elle est déjà conditionné à apparaitre s'il y a des fichiers, elle peut gérer elle même la query