From 81fafd20d31667b7c38a532491bd778b5d283d63 Mon Sep 17 00:00:00 2001 From: jeffvli Date: Sat, 12 Nov 2022 18:45:25 -0800 Subject: [PATCH] Web player fixes --- .../components/audio-player/index.tsx | 8 +++---- .../player/hooks/use-center-controls.ts | 21 +++++-------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/renderer/components/audio-player/index.tsx b/src/renderer/components/audio-player/index.tsx index 1c20b842a..d1a5ac3d8 100644 --- a/src/renderer/components/audio-player/index.tsx +++ b/src/renderer/components/audio-player/index.tsx @@ -78,13 +78,13 @@ export const AudioPlayer = forwardRef( useEffect(() => { if (status === PlayerStatus.PLAYING) { if (currentPlayer === 1) { - player1Ref.current.getInternalPlayer().play(); + player1Ref.current?.getInternalPlayer()?.play(); } else { - player2Ref.current.getInternalPlayer().play(); + player2Ref.current?.getInternalPlayer()?.play(); } } else { - player1Ref.current.getInternalPlayer().pause(); - player2Ref.current.getInternalPlayer().pause(); + player1Ref.current?.getInternalPlayer()?.pause(); + player2Ref.current?.getInternalPlayer()?.pause(); } }, [currentPlayer, status]); diff --git a/src/renderer/features/player/hooks/use-center-controls.ts b/src/renderer/features/player/hooks/use-center-controls.ts index 24897d5a4..f72f585b0 100644 --- a/src/renderer/features/player/hooks/use-center-controls.ts +++ b/src/renderer/features/player/hooks/use-center-controls.ts @@ -113,24 +113,12 @@ export const useCenterControls = (args: { playersRef: any }) => { }, [repeat, setRepeat]); const checkIsLastTrack = useCallback(() => { - const currentIndex = - shuffle === PlayerShuffle.NONE - ? usePlayerStore.getState().current.index - : usePlayerStore.getState().current.shuffledIndex; - - const queueLength = queue.length; - - return currentIndex >= queueLength - 1; - }, [queue.length, shuffle]); + return usePlayerStore.getState().checkIsLastTrack(); + }, []); const checkIsFirstTrack = useCallback(() => { - const currentIndex = - shuffle === PlayerShuffle.NONE - ? usePlayerStore.getState().current.index - : usePlayerStore.getState().current.shuffledIndex; - - return currentIndex === 0; - }, [shuffle]); + return usePlayerStore.getState().checkIsFirstTrack(); + }, []); const handleAutoNext = useCallback(() => { const isLastTrack = checkIsLastTrack(); @@ -162,6 +150,7 @@ export const useCenterControls = (args: { playersRef: any }) => { web: () => { if (isLastTrack) { resetPlayers(); + pause(); } else { autoNext(); resetPlayers();