From 5c8f89675d1290c258ce0502e039606b072dfe51 Mon Sep 17 00:00:00 2001 From: Senko-san Date: Sat, 13 Jun 2026 17:18:38 +0300 Subject: [PATCH] feat(queue): unified persistent queue list with playing indicator Show all queue entries (played and upcoming) in one list instead of splitting into a "Now playing" card + "Next up" tail, so previously played tracks don't disappear and reappear when navigating back/forward. The current track is outlined and shows a reusable "hopping bars" PlayingIndicator (modern-sk style equalizer animation) for future reuse across track lists. --- src/components/common/PlayingIndicator.tsx | 22 +++++ src/components/player/QueuePanel.tsx | 99 +++++++++------------- src/i18n/locales/en.ts | 2 - src/i18n/locales/ru.ts | 2 - src/styles/shell.css | 83 +++++++++++------- 5 files changed, 115 insertions(+), 93 deletions(-) create mode 100644 src/components/common/PlayingIndicator.tsx diff --git a/src/components/common/PlayingIndicator.tsx b/src/components/common/PlayingIndicator.tsx new file mode 100644 index 0000000..d3dddfe --- /dev/null +++ b/src/components/common/PlayingIndicator.tsx @@ -0,0 +1,22 @@ +/* + * "Hopping bars" equalizer indicator (YTM-style) shown next to the currently + * playing track. `animate` controls whether the bars bounce (playback active) + * or sit frozen at full height (paused). Reusable across track lists. + */ +interface Props { + animate?: boolean; + className?: string; +} + +export function PlayingIndicator({ animate = true, className }: Props) { + return ( +