From 3f2efbf8522c16945e8b0708a5ea0bf15228f401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Mon, 27 Jul 2026 12:55:53 +0000 Subject: [PATCH] music (web): click the dock track info to open its album in /music MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The bottom player dock's cover + title/artist is now a button — clicking it sets the music:cwd channel to the playing album and navigates to /music, landing on that album's tracklist (current track highlighted). Uses the global panel channel + react-router navigate. Co-Authored-By: Claude Opus 4.8 --- .../src/MusicPlayer/MusicPlayerHost.tsx | 50 +++++++++++++------ 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/src/workspaces/officerdev/src/MusicPlayer/MusicPlayerHost.tsx b/src/workspaces/officerdev/src/MusicPlayer/MusicPlayerHost.tsx index a507360e..f1a1f25b 100644 --- a/src/workspaces/officerdev/src/MusicPlayer/MusicPlayerHost.tsx +++ b/src/workspaces/officerdev/src/MusicPlayer/MusicPlayerHost.tsx @@ -1,9 +1,11 @@ import { useEffect, useRef, useState } from 'react'; +import { useNavigate } from 'react-router'; import { useClient } from 'hooks/useClient'; +import { usePanelChannel } from 'hooks/usePanelChannel'; import { Play, Pause, SkipBack, SkipForward, X, Volume2, VolumeX } from 'lucide-react'; import { useSeekBar, SeekBar } from '../apps/FileViewer/renderers/SeekBar'; import { MusicHeart } from '../apps/Music/MusicHeart'; -import { sortTracks, trackHomePath, type AlbumMeta, type NowPlaying } from '../apps/Music/shared'; +import { MUSIC_ROOT, MUSIC_CWD_CHANNEL, sortTracks, trackHomePath, type AlbumMeta, type NowPlaying } from '../apps/Music/shared'; import { useMusicPlayer, type PlayerTrack } from './useMusicPlayer'; // Mounted once in the persistent DashboardLayout (outside ), so it owns the single