GeopJr / Tuba

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

[Bug]: Content of timelines / lists / etc. do not refresh when following/unfollowing/etc. #233

Open nekohayo opened 1 year ago

nekohayo commented 1 year ago

Describe the bug

Currently, to see the effects of unfollowing someone (and I suspect, adding/removing to lists, following, etc.?), you need to restart the whole app, instead of the changes being applied automatically in the timeline views.

I suspect maybe the mute and block functions may also have this limitation, but I haven't tested for that (as I don't need to use these often, and it's less easy to experiment with those "nuclear" actions).

All in all this is not a huge problem / showstopper bug, but it does create extra work (restarting the whole app) for the user, and impairs UX a little bit because the consequence of your actions (ex: unfollowing) are disconnected, vs having a direct immediate visual effect.

Steps To Reproduce

  1. Go to your "Home" timeline (and possibly lists, and other places?)
  2. See someone (an account you follow) posting a ton of posts that no longer interest you that much
  3. Click their profile, click Unfollow
  4. Go back to the "Home" (or wherever), and see no visible effect from unfollowing, as all their toots etc. are still shown in there.

Logs and/or Screenshots

No response

Instance Backend

Mastodon

Operating System

Fedora 38

Package

Flatpak

Troubleshooting information

os: GNOME 44 (Flatpak runtime) prefix: /app flatpak: true version: 0.2.0 (production) gtk: 4.10.3 (4.10.1) libadwaita: 1.3.2 (1.3.1) libsoup: 3.4.1 (3.4.0) libgtksourceview: 5.8.0 (5.8.0)

Additional Context

No response

GeopJr commented 1 year ago

It should only directly affect the timelines in the main view (the others (like lists) get fetched every time you open them)

This needs a bit more thought on what's the best way to implement it, here's our options:

  1. Mastodon web-like: "refresh" the home timeline. Pros:

    • If you accidentally unfollowed/blocked/whatever and then undo it, the post will be there with no additional action required
    • Lets the instance backend handle what posts are on the timeline Cons:
    • You completely lose timeline progress; if you've scrolled like 10 pages down, it will reset you to the start with only the first page / load batch
  2. Mastodon app-like: remove the posts from the user manually. Pros:

    • You stay in the same post (well, not exactly #126) Cons:
    • If you did this accidentally and re-follow the user, their posts wont be visible until you manually refresh the timeline

I'm leaning towards the second option at the moment

As a workaround until this is done, manually refreshing the timeline should remove the posts (CtrlR)