GeopJr / Tuba

Browse the Fediverse
https://tuba.geopjr.dev/
GNU General Public License v3.0
504 stars 55 forks source link

[Request]: Lock timeline scroll in Federated view when not at top #1045

Open atirut-w opened 3 days ago

atirut-w commented 3 days ago

Describe the request

From what I see, Tuba currently does not "lock" the scroll when you scroll down the Federated timeline and instead just stop showing new posts. This gets a little annoying when you're near the top enough that the app doesn't stop the flow of posts. See attached video for example.

https://github.com/GeopJr/Tuba/assets/25323231/fa15b610-8e88-494a-bd47-d58a0a1b761a

Implementation Details

GeopJr commented 3 days ago

Thanks for raising this issue!

From what I see, Tuba currently does not "lock" the scroll when you scroll down the Federated timeline and instead just stop showing new posts.

There's no such thing as 'locking' the scroll view. When new items get appended, the scroll position stays the same but the content 'moves down'. To overcome that, Tuba has a queue. When you are not near the top, new posts get added to the queue and when u go near the top again, those posts get added to the view. That also matches the mastodon-web behavior somewhat, where if you are at the top, new posts get shown/prepended.

This gets a little annoying when you're near the top enough that the app doesn't stop the flow of posts. See attached video for example.

I understand that the federated timeline gets updated constantly and the 'near the top' behavior is not good enough, maybe limiting it to only prepend the posts when you are at the absolute top then?

atirut-w commented 3 days ago

When new items get appended, the scroll position stays the same but the content 'moves down'.

Would it be possible to keep the content in place as new contents are added instead?

I understand that the federated timeline gets updated constantly and the 'near the top' behavior is not good enough, maybe limiting it to only prepend the posts when you are at the absolute top then?

This could work better than the current implementation, but I'm not a UI nor UX designer by any means.