fix(queue): marquee long track names + dedupe now-playing bars
Docker Build & Publish / build (push) Has been cancelled
Docker Build & Publish / push (push) Has been cancelled
Docker Build & Publish / Prune old image versions (push) Has been cancelled

Queue sidebar no longer scrolls horizontally on long titles/artists:
text now ping-pong scrolls (news-ticker style) only when it overflows,
via a new Marquee component; .qd-scroll also clips overflow-x.

The current track previously showed the playing-bars indicator both in
place of the drag grip and over the cover. Keep only the cover overlay
and restore the drag grip on the current row.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Senko-san
2026-06-14 02:28:27 +03:00
parent b966ad8be5
commit cdcacc56d1
3 changed files with 81 additions and 21 deletions
+6 -9
View File
@@ -26,6 +26,7 @@ import {
import { CSS } from '@dnd-kit/utilities';
import { Icon } from '../common/Icon';
import { ArtTile } from '../common/ArtTile';
import { Marquee } from '../common/Marquee';
import { PlayingIndicator } from '../common/PlayingIndicator';
import { useAppDispatch, useAppSelector } from '../../hooks/useAppDispatch';
import {
@@ -259,13 +260,9 @@ function QueueRow({
onDoubleClick={onPlay}
title={t('queue.doubleClickPlay')}
>
{isCurrent ? (
<PlayingIndicator animate={isPlaying} />
) : (
<span className="grip" {...attributes} {...listeners}>
<Icon name="dots-six-vertical" />
</span>
)}
<span className="grip" {...attributes} {...listeners}>
<Icon name="dots-six-vertical" />
</span>
<div className="qart">
<ArtTile seed={albumTitle} size={36} label={albumTitle} src={artUrl} />
{isCurrent && (
@@ -275,8 +272,8 @@ function QueueRow({
)}
</div>
<div className="qt">
<div className="t">{resolved?.title ?? entry.title}</div>
<div className="r">{resolved?.artistName ?? entry.artistName}</div>
<Marquee className="t" text={resolved?.title ?? entry.title} />
<Marquee className="r" text={resolved?.artistName ?? entry.artistName} />
</div>
<Menu>
<MenuTrigger asChild>