music: dismiss the dock when playback ends
The in-flow music dock reserves its height whenever a track is loaded (current), even paused — so after a queue finished (onEndOfQueue set playing=false but kept the queue) the dock lingered, shifting the layout up with a faint idle bar. On natural end-of-queue, close() the queue so the dock releases its space. The saved now-playing snapshot is untouched, so reload still resumes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user