Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[amélioration] Remettre le défilement là où il était après avoir effectué une action #457

Closed
raphraph opened this issue Feb 11, 2022 · 7 comments

Comments

@raphraph
Copy link

Lorsque je retire des éléments du Journal (quelque soit l'action), la page est rechargée (il me semble) et le défilement est remis tout en haut.
Lorsque ce sont les éléments du bas du Journal que je traite (et qu'il en reste plus haut par exemple), c'est désagréable de devoir redescendre plusieurs fois d'affilé pour traiter les suivants. En plus les éléments peuvent avoir bougé (être remonté d'une ligne par exemple), donc c'est un peu moins facile de les retrouver que si le défilement n'avait pas bougé.

L'idéal serait de pouvoir remettre le défilement à son niveau précédent, mais je n'ai aucune idée de si c'est simple à faire :)

Cela est peut être dû à ma manière de lire le Journal : j'ouvre les liens que je veux lire, puis je marque les liens lu comme lu, puis je retire tout le reste du journal en une seule action. Je retire plus souvent des liens que je n'en lis, ce qui a tendance à provoquer cette situation j'imagine.

@marienfressinaud
Copy link
Member

Oui c’est un problème, et j'aimerais le corriger. Théoriquement ça aurait dû être simple, en pratique… je n'ai pas encore réussi à m’en sortir.

flusio utilise Turbo qui permet de charger les pages en JS (quand on clique sur un lien ou qu'on valide un formulaire). Ça permet d'accélérer légèrement le chargement des pages et d'éviter des glitchs visuels. C’est donc Turbo qui s’occupe manuellement de remettre le défilement de la page tout en haut.

Pendant un temps, il y avait une solution technique plutôt élégante qui permettait de maintenir le défilement suite à une action (cf. hotwired/turbo#37 (comment)), mais suite à des changements techniques, celle-ci ne fonctionne plus. Une solution simple serait d'effectuer la restauration du défilement dans un setTimeout, mais ça implique un effet de "saut" (i.e. Turbo va remettre le défilement tout en haut, puis le setTimeout le remettra au bon endroit après X millisecondes). Pas agréable du tout.

Pour l'instant j'attends que quelqu'un trouve une solution, le temps que je bosse sur d'autres trucs. Le jour où ça m'agacera trop je verrai pour trouver une solution quitte à devoir mettre les mains dans Turbo.

@marienfressinaud
Copy link
Member

Ticket similaire à #378 d'ailleurs

@marienfressinaud marienfressinaud changed the title [amélioration] Remettre le défilement là où il était après avoir retiré un lien du Journal [amélioration] Remettre le défilement là où il était après avoir effectué une action Feb 11, 2022
@marienfressinaud
Copy link
Member

Normalement le problème est résolu par #548 :) (j'ai finalement opté pour un hack un peu sale mais très simple… j’aurai dû le faire plus tôt !) C’est pas encore en prod', je te tiendrai au courant quand ça sera le cas. Je fermerai le ticket à ce moment là.

@raphraph
Copy link
Author

Super, merci pour l'info !
Ça se verra de toute façon quand ça passera en prod ;)

@marienfressinaud
Copy link
Member

Et c’est en prod ! Ça vient avec beaucoup d’améliorations autour des liens, notamment la possibilité de marquer comme lu et déplacer dans les signets en un clic, et une optimisation de la place prise sur mobile :)

@raphraph
Copy link
Author

Je viens de tester et c'est vraiment top comme ça. En 2 clics on peut ouvrir le lien dans un nouvel onglet et le marquer comme lu, et le réagencement se faisant sans que la page bouge ou se recharge améliore nettement la lisibilité de l'ensemble. C'est vraiment super, bravo ! 👍

@marienfressinaud
Copy link
Member

Merci pour le retour ! Je trouve que ça change tout, c’est effectivement beaucoup plus agréable comme ça :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants