mirror of
https://github.com/Jellify-Music/App.git
synced 2026-03-17 18:51:24 -05:00
fix: Reset player state and hide miniplayer when queue becomes empty after track removal or refresh. (#880)
Co-authored-by: Violet Caulfield <42452695+anultravioletaurora@users.noreply.github.com>
This commit is contained in:
@@ -225,12 +225,19 @@ export const useRemoveFromQueue = () => {
|
||||
|
||||
return async (index: number) => {
|
||||
trigger('impactMedium')
|
||||
TrackPlayer.remove([index])
|
||||
await TrackPlayer.remove([index])
|
||||
|
||||
const prevQueue = usePlayerQueueStore.getState().queue
|
||||
const newQueue = prevQueue.filter((_, i) => i !== index)
|
||||
|
||||
usePlayerQueueStore.getState().setQueue(newQueue)
|
||||
|
||||
// If queue is now empty, reset player state to hide miniplayer
|
||||
if (newQueue.length === 0) {
|
||||
usePlayerQueueStore.getState().setCurrentTrack(undefined)
|
||||
usePlayerQueueStore.getState().setCurrentIndex(undefined)
|
||||
await TrackPlayer.reset()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,6 +247,13 @@ export const useRemoveUpcomingTracks = () => {
|
||||
const newQueue = await TrackPlayer.getQueue()
|
||||
|
||||
usePlayerQueueStore.getState().setQueue(newQueue as JellifyTrack[])
|
||||
|
||||
// If queue is now empty, reset player state to hide miniplayer
|
||||
if (newQueue.length === 0) {
|
||||
usePlayerQueueStore.getState().setCurrentTrack(undefined)
|
||||
usePlayerQueueStore.getState().setCurrentIndex(undefined)
|
||||
await TrackPlayer.reset()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user