* stop buffering if a skip has been requested
* clean up eventing in player provider
fixes#833
* please refresh homescreen more often
* clean up context provider a bit
* smol optimizations
deduplicate player logic for previous and skip
* update CONTRIBUTING documentation
* add react-freeze to prevent unfocused screens from rerendering
* freeze similar until the albums have loaded
* remove unneeded hooks in a variety of played
* display a spinner when loading albums by an artist
* make add to playlist a bit faster and lazier
* move player hooks from provider folder since they aren't dependent on a context provider
* add ability to refresh an artist's page
* add ability to refresh albums too
* make adding a track to a playlist faster
* set query client data when a track is added to a playlist
* do the same trick for removing and reordering tracks from a playlist
* hide miniplayer if the big player is focused for reduced overhead
* fix some styling in the miniplayer
Remove Home and Library Context Providers, move their data fetching functionality to reusable Tanstack Query hooks
Fix an issue playlists not showing up after creating
fix issue where the home screen didn't fully load on sign in
Moves the network status state to a Zustand Store for better reusability and to reduce the complexity of the network context
No new user facing changes
Refactors the client.ts file and moves it's functionality into the JellifyContext for use in other componentry. Lots of touching in the api folder to refactor this. I also found an issue when adding items to a playlist, so I bumped the axios package - which fixed the issue.
Adds "Most Played" and "On Repeat" sections to CarPlay. Most Played will allow users to view their most played artists, while On Repeat will give users access to their top tracks, of which they can select and start playback
Fixes an issue where on startup, if the user was logged in and had a persisted queue, it wouldn't playback. Users should be able to directly start up the queue upon relaunching the app if they are authenticated