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

[Request]: Hashtags list is not alphabetically sorted, not sortable nor filterable / searchable #1072

Open
1 task done
nekohayo opened this issue Jul 23, 2024 · 3 comments
Labels
enhancement New feature or request

Comments

@nekohayo
Copy link

Describe the request

When you click "Hashtags" in the sidebar, you get a list of your followed hashtags in a reverse-chronological order, which makes it pretty hard to find what you're looking for when you follow many hashtags.

Ideally it should be alphabetical to begin with, and then searchable (in a filter search kind of way). Maybe by putting a search entry widget at the top of the list, with placeholder text that says "Search hashtags" (or still just "Hashtags")?

Sorting between "date of adding that hashtag" vs alphabetical vs popularity could also be a thing, though probably less important than search and alphabetical sorting.

Implementation Details

@nekohayo nekohayo added the enhancement New feature or request label Jul 23, 2024
@GeopJr
Copy link
Owner

GeopJr commented Jul 23, 2024

Not possible. Since the hashtags view is a timeline (api-wise), it has the same properties as all other timelines:

  1. they are reverse chronological
  2. they are paginated

Being paginated, makes any sorting or search impossible. E.g. if every page has 10 items and you follow 30 hashtags, you can only search and sort on what's has been loaded. So if I add a way to sort them alphabetically, it would look like this:

1st page:

  • #Apple
  • #Orange
  • #Zebra

*you scroll so the next page loads*

Now we can either re-sort everything, making the scroll position meaningless as you'd have to go back to the start to see everything again, or sort the new page:

  • #Apple
  • #Orange
  • #Zebra
  • #Avocado
  • #Baobab

One solution would be to pre-load everything. I am against that for posts/accounts as they can be quite long and resource intense for servers, hashtag objects are very small in comparison, but at the same time, there are extreme cases like someone following 10k hashtags

@nekohayo
Copy link
Author

Hmmm, how would Tuba display 10k hashtags? It would show the first page of X amount of items only?

In any case then, shouldn't it be possible to filter-search the view's model on the client side even if it's just the current page? And then if there are no results, then Tuba can probe the server for more results, with a "Search more" button or something like that? i.e. same as if the user was moving between pages manually, and scanning the list with their eyes, but GTK would be the one doing the scanning of the list…

@GeopJr
Copy link
Owner

GeopJr commented Jul 25, 2024

Hmmm, how would Tuba display 10k hashtags? It would show the first page of X amount of items only?

Yep, like a normal timeline, but instead of posts, it's hashtags

In any case then, shouldn't it be possible to filter-search the view's model on the client side even if it's just the current page? And then if there are no results, then Tuba can probe the server for more results, with a "Search more" button or something like that? i.e. same as if the user was moving between pages manually, and scanning the list with their eyes, but GTK would be the one doing the scanning of the list…

I mean, it's possible, but thinking of extremes once again, it could take ages to look through everything.

In pseudocode, it would be a while loop that goes through all hashtag pages until it reaches the end. More likely to hit ratelimits or take awfully long to finish. It's be faster to just use the search tab instead 🤷

My issue with having a search entry at all, is that it either has to work 100% or not exist. If it only searches in alread-loaded hashtags, then users might be confused as to why it doesnt show the hashtag they were looking for. If it searches everything, it could fail or take too long.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants