Adds more purple colors to the library and settings tabs
update animations for the a-z selector in the library
make refresh indicators
consistly colored across the app
fixes some styling around gesture handling
update tamagui to 1.136.6
* Slimify JellifyTrack type
Reduces the overall size of a JellifyTrack object in memory with the goal of lowing the overhead on serialization both to native and to zustand
* simplify addToQueue
fix issue where using the swipeable row would cause a crash
* Add swipe-to-queue functionality and related tests for track management
* Refactor imports to use runOnJS from react-native-worklets for consistency across components
* Implement SwipeableRow component for track management with swipe actions
* Add haptic feedback and improve swipe action handling in SwipeableRow component
* Enhance SwipeableRow component with quick action support for right swipe and refactor left swipe actions in ItemRow and Track components
* Update publish-beta.yml
* Add SwipeToSkip component for track navigation gestures in PlayerScreen
* Implement swipe gesture handling in SongInfo and PlayerScreen for track navigation
* Add swipe action settings and enhance SwipeableRow functionality
- Introduced left and right swipe action settings in the swipe settings store.
- Updated SwipeableRow to support quick action menus for left and right swipes.
- Enhanced ItemRow and Track components to utilize new swipe settings.
- Added GesturesTab for configuring swipe actions in settings.
- Improved PreferencesTab to allow users to select swipe actions.
* Enhance SwipeableRow and Track components with improved action handling and UI updates
* Refactor SwipeableRow integration and enhance swipe action configuration
* Refactor Track component to include prependElement prop for drag icon display in editing mode
* fix build
git blame violet
* Implement swipeable row management with close handlers and integrate into various components
* goddammit violet
* Add tests for SwipeableRow and swipeable row registry behavior
* fix maestro settings tab tests
---------
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
Fixes issue where capabilities weren't posted to the server when the streaming quality changed
update post capabilities hook to be cleaner and more self contained
Remove `JellifyContext` provider in favor of a persisted Zustand store
This should address issues where the user would open the app and be randomly signed out and have to sign back in
* some improvements to the addto playlist modal in terms of performance
leveraging tanstack query cache for storing the tracks in a playlist
eagerly fetching playlists on the home screen since we may want to display those someday anyways
* fix playback reporting bug
* update filter condition for user playlists to support windows filesystems
fixes issue where playlists weren't showing up in the library for Windows Jellyfin users
Reworks the "Patreon Wall of Fame" to be a generic "Wall of Fame", since GitHub sponsors of the project are now being retrieved
Names are now organized alphabetically and refresh more often to pick up paid supporters
Thank you all so much for the support, we are absolutely overjoyed
* axios timeout configuration. Timeout requests that take longer than 15 seconds. This should help app performance in poor network conditions.
* add some genres so that we fill up the screens better and make everything uniform
you were 100% right on that erik, it needs something there
adds a util that will parse the first ever genre in a list of genres, including within substrings concatenated with a ';'
adjust axios timeout config to 15 seconds from 10
* update dark mode background color per eriks mockups
What is the change
Implement persistent player queue state with a dedicated Zustand store (MMKV-backed): queue, currentTrack, currentIndex, shuffled, unShuffledQueue, and queueRef.
Restore the queue on app start: new initialization reads persisted state and rebuilds the TrackPlayer queue and active index.
Unify queue mutations to keep React Native Track Player and the persisted store in sync:
Loading a new queue sets queueRef, honors shuffle, computes start index, and writes to both RNTP and store.
"Play Next" and "Add to Queue" update RNTP, the live queue, and unShuffledQueue consistently.
Active track/index changes now propagate to the store and query cache.
Tighten/refine player query/invalidations so UI reflects the latest RNTP state.
Minor housekeeping in config/scripts to support the above (ESLint flat config, metro/jest/script updates).
What does this address
Fixes queue not restoring after relaunch or crash; playback position and the current track persist correctly.
Preserves shuffle state and the original unshuffled ordering for reliable shuffle toggle behavior.
Ensures "Play Next"/"Add to Queue" behave consistently with what the user sees, avoiding duplication or desyncs.
Reduces UI state drift by syncing RNTP events to both React Query and persistent store.
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
- Implemented `addManyToPlaylist` function to handle multiple track additions.
- Updated `AddToPlaylist` component to accept multiple tracks and source.
- Modified `AddToPlaylistRow` to support track and album selections.
- Adjusted type definitions to accommodate new parameters for tracks and source.
Adds internal over-the-air update support
Powered by `react-native-nitro-modules`, this OTA functionality is faster than the previous implementation, and won't slow down the UI when updates are being applied since updates occur off the main thread
* fixes to query gctime
ios project updates
dependency updates
fix issue where long pressing on an item row wouldn't show the correct item
* 1 -> 2 column patreon member list
* make player buttons and scrubber bar snappier by removing unnecessary state subscriptions caused by the useMutation hook
* fix similar artists from being cutoff on the artist page
detect when we are running in the background to pause UI updates, dramatically reducing CPU load and therefore conserving battery life
update dependency packages, Pods