mirror of
https://github.com/Rigellute/spotify-tui.git
synced 2026-04-26 08:05:57 +03:00
[PR #635] WIP: Improve results paging #943
Labels
No labels
bug
enhancement
good first issue
help wanted
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/spotify-tui#943
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Rigellute/spotify-tui/pull/635
Author: @sputnick1124
Created: 10/26/2020
Status: 🔄 Open
Base:
master← Head:improve-results-paging📝 Commits (10+)
e56b5b6stub out paging types471aa9cMerge branch 'master' into improve-results-paginga3fb7f3Merge branch 'master' into improve-results-paging9850c96WIP: paging experiment, really ugly still3f1ef60Move paging to its own module (massive commit)a9876b9Minor fixup to new paging interface896edb3wire in channel for ui updatesb93fa86make app.dispatch immutable5474521make app.dispatch immutable59182b2send more ui window info📊 Changes
16 files changed (+951 additions, -942 deletions)
View changed files
📝
src/app.rs(+85 -185)📝
src/handlers/album_list.rs(+14 -44)📝
src/handlers/album_tracks.rs(+11 -13)📝
src/handlers/artist.rs(+1 -1)📝
src/handlers/artists.rs(+8 -43)📝
src/handlers/common_key_events.rs(+32 -11)📝
src/handlers/episode_table.rs(+19 -46)📝
src/handlers/input.rs(+1 -1)📝
src/handlers/made_for_you.rs(+12 -45)📝
src/handlers/mod.rs(+3 -2)📝
src/handlers/search_results.rs(+2 -2)📝
src/handlers/track_table.rs(+167 -375)📝
src/main.rs(+1 -0)📝
src/network.rs(+189 -121)➕
src/paging.rs(+237 -0)📝
src/ui/mod.rs(+169 -53)📄 Description
I've been doing quite bit of work on trying to unify the paging interface and behavior the past couple of weekends. This is still very much a work in progress, but I would love to get some feedback from other developers if you think the current path might make things better.
Three are a few things that are a little more complicated than I would like them to be, but the functionality is shaping up to be what I envisioned.
Currently, I have only implemented paging for for the podcast episode view, but now that it is working, I should be able to implement the same for all of the library items as well pretty easily. Then I can move on to playlists and albums.It's a bit late here right now, so I will update this description with a to-do list in the coming days to track progress. Also, I'm aware of the falling CI checks, those will be fixed before this is ready for complete review.TODO:
Page all the things
TrackTable (delegate track context management to the type system via type aliases?)
Search results
Library Collections
Misc
Other
Call to action
Please review the changes at any point. This PR represents a massive change to how we are handling almost every list of items in the app; I'd like to get it right so we aren't plagued with issues in the future.
Also, let me know if there is any thing that is currently not being paged that is eligible for paging that is not captured in the to-do list above.
If anyone would like to help out, much of the work could be done in parallel from here, I think. Let me know and we can coordinate. We could either work on my fork directly, or we could target a feature branch here.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.