* initial client-side only sort for all playlists
* allow reordering jellyfin (assume it works properly) and navidrome
* on playlist page, add to queue by sort order
* Add play button to song table album cover, like it is in grid
* Fix: play button caused error for albums and artists tables
* Fix: play button caused error for some other tables
* [scuffed bugfix]: Update table rating/favorite when updated anywhere else
Modify player store to have temporary state for favorite/rating update
Add effect handler for `virtual-table` to update rating/favorite for players
Note that this does not handle song grid view.
Using a similar handler for gird view did not work, as it appeared to result in inconsistent state.
Finally, this is probably not the optimal solution.
Performance appears fine for ~20k items, but no guarantees.
* restore should update song
* update song rating/favorite/played everywhere except playlist
* special rule for playlists
* use iterator instead
* [enhancement]: Support toggling Album/Track view for gneres
The _primary_ purpose of this PR is to enable viewing tracks OR albums for genres.
This has a few requirements:
1. Ability to set default route for genres, **except** when already on song/album page
2. Ability to toggle between album and genre view
3. Fixed refresh for genre ID
Additionally, there was some refactoring:
- Since the *-list-headers had very similar functions for search, export that as a hook instead
* also use hook for album artist
* support switching albumartist tracks/albums
* remove toggle on song/album list, simplify logic
The prior code used `form.addToPlaylist`, not `.success`. Also fixes English pluralization and
uses the correct `entity.track` as opposed to `entity.song` for other languages (I am not sure
if the en syntax could be applied to other languages, so I will just leave pluralization as-is
for now).