diff --git a/web/src/lib/components/PlayerBar.svelte b/web/src/lib/components/PlayerBar.svelte
index a3c90121..748b755d 100644
--- a/web/src/lib/components/PlayerBar.svelte
+++ b/web/src/lib/components/PlayerBar.svelte
@@ -15,7 +15,6 @@
import { FALLBACK_COVER, coverUrl } from '$lib/media/covers';
import LikeButton from './LikeButton.svelte';
import TrackMenu from './TrackMenu.svelte';
- import PlayerOverflowMenu from './PlayerOverflowMenu.svelte';
const current = $derived(player.current);
@@ -29,7 +28,6 @@
player.repeat === 'all' ? 'Repeat all' : 'Repeat one'
);
- // Volume icon tracks level so the right-edge anchor reads at a glance.
const VolumeIcon = $derived(
player.volume === 0 ? VolumeX :
player.volume < 0.5 ? Volume1 : Volume2
@@ -49,9 +47,181 @@
{#if current}
-
+
+
+ {#if player.state === 'error'}
+
+ {player.error ?? 'Playback failed.'}
+
+
+ {:else}
+
+
+
+
+
+
+
{current.title}
+
{current.artist_name}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {formatDuration(player.position)}
+
+
+
+ {formatDuration(player.duration)}
+
+
+ {/if}
+
+
+
+
-
+
@@ -74,14 +244,13 @@
{#if player.queue.length > player.index + 1}
{@const nextTrack = player.queue[player.index + 1]}
-
+
Next · {nextTrack.title} — {nextTrack.artist_name}
{/if}
-
@@ -98,7 +267,7 @@
{:else}
{/if}
-
-
+
+