diff --git a/src/workspaces/officerdev/src/MusicPlayer/MusicPlayerHost.tsx b/src/workspaces/officerdev/src/MusicPlayer/MusicPlayerHost.tsx index d58922b3..7ebb5eb2 100644 --- a/src/workspaces/officerdev/src/MusicPlayer/MusicPlayerHost.tsx +++ b/src/workspaces/officerdev/src/MusicPlayer/MusicPlayerHost.tsx @@ -67,6 +67,8 @@ export const MusicPlayerHost = () => { syncIndexRef.current = syncIndex; const setPlayingRef = useRef(setPlaying); setPlayingRef.current = setPlaying; + const closeRef = useRef(close); + closeRef.current = close; const withToken = (u: string) => (token ? `${u}${u.includes('?') ? '&' : '?'}token=${encodeURIComponent(token)}` : u); const streamUrl = (t: PlayerTrack) => @@ -101,7 +103,9 @@ export const MusicPlayerHost = () => { engineIndexRef.current = i; // engine advanced on its own → mirror to UI without restarting syncIndexRef.current(i); }, - onEndOfQueue: () => setPlayingRef.current(false), + // Queue finished on its own → clear it so the in-flow dock releases its space (no idle bar lingering + // after playback). The saved snapshot is left intact, so a reload still resumes where you left off. + onEndOfQueue: () => closeRef.current(), onLoadingChange: setLoading, }); engineRef.current = engine;