cozy / cozy-client

Document store and React components for the Cozy platform
MIT License
13 stars 13 forks source link

OfflineLink #408

Open gregorylegarec opened 5 years ago

gregorylegarec commented 5 years ago

Après discussion avec @kosssi, je pense qu'on pourrait coder un OfflineLink chargé de stocker nos documents "métiers" que sont les apps, konnectors (En général tous récupéres en un appel) et nos triggers et jobs (gestion un peu plus fine), et ce en attendant que PouchDB puisse synchorniser également ces documents (ce qui me semble être un peu plus de travail).

Garder les apps et les konnectors en offline nous aiderait bien à améliorer la gestion du offline de la bar (elle pourrait se reposer sur CozyClient), et la faire avancer dans la Home (toujours rien à l'heure actuelle).

En regardant rapidement il me semble assez trivial de coder un Link qui se repose sur l'était online du navigateur et sur le localStorage.

Il y a-t-il des points que je peux oublier ou bien ce OfflineLink ne vous semble-t-il pas approprié ?

y-lohse commented 5 years ago

Ce link aurait une liste en dur de doctypes qu'il gère? Ce me semble ok comme approche, mais je ne le nommerais pas OfflineLink, pour ne pas porter à confusion avec PouchLink qui est aussi pour du offline. LocalStorageLink par exemple me semble plus approprié.

edas commented 5 years ago

Pour les konnectors, quelle est la difficulté du pouch répliqué ?

ptbrowne commented 5 years ago

Qu'est ce que ca apporte par rapport au "cache" redux ? Le fait d'être sauvegardé dans localStorage ? Est ce que la sauvegarde dans le localStorage ne pourrait pas être fait via un middleware redux ? J'aimerais éviter d'avoir un nouveau cache (on a déjà redux, et pouch en mobile).

kosssi commented 5 years ago

Pour l'instant tous les doctypes qui passe par la route standard /data permettent de faire du offline facilement avec PouchDB. Les autres routes (comme /jobs, /apps ...) ne peuvent pas utiliser la synchronisation Pouch/Couch.

Rien n'a été fait coté dev et nous y avons passé 10 minutes à en discuter.

Nous proposions d'utiliser le Link offline qui s'occuperai de PouchLink pour les doctypes /data et du localStorage pour les autres routes mais que cette complexité soit cachée.

gregorylegarec commented 5 years ago

Our two options are: