From f5767ff55eb08f32d59bc1e779132b20f73fdd1c Mon Sep 17 00:00:00 2001 From: Senko-san Date: Sat, 13 Jun 2026 17:49:06 +0300 Subject: [PATCH] feat(track): show now-playing bars overlay on cover art Overlay the accent-coloured "hopping bars" PlayingIndicator on a track's cover art wherever TrackRow appears when it's the active player track, and reuse the same component/overlay for the current entry's cover in the queue panel. --- src/components/player/QueuePanel.tsx | 9 +++++++- src/components/track/TrackRow.tsx | 11 ++++++---- src/styles/shell.css | 32 ++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/src/components/player/QueuePanel.tsx b/src/components/player/QueuePanel.tsx index 98606ff..c2382ba 100644 --- a/src/components/player/QueuePanel.tsx +++ b/src/components/player/QueuePanel.tsx @@ -248,7 +248,14 @@ function QueueRow({ )} - +
+ + {isCurrent && ( +
+ +
+ )} +
{resolved?.title ?? entry.title}
{resolved?.artistName ?? entry.artistName}
diff --git a/src/components/track/TrackRow.tsx b/src/components/track/TrackRow.tsx index 9b58fff..fe5b154 100644 --- a/src/components/track/TrackRow.tsx +++ b/src/components/track/TrackRow.tsx @@ -4,6 +4,7 @@ import { TrackContextMenu } from './TrackContextMenu'; import { AvailabilityBadge } from './AvailabilityBadge'; import { MetadataStatusBadge } from './MetadataStatusBadge'; import { Icon } from '../common/Icon'; +import { PlayingIndicator } from '../common/PlayingIndicator'; import { formatDuration } from '../../lib/format'; import { useAppDispatch, useAppSelector } from '../../hooks/useAppDispatch'; import { playNow } from '../../store/slices/queue'; @@ -73,10 +74,7 @@ export function TrackRow({ > {isActive && isPlaying ? '▶' : index !== undefined ? index + 1 : ''} -
+
{artUrl ? ( )} + {isActive && ( +
+ +
+ )}