diff --git a/src/components/stages/StageTrackUploader.tsx b/src/components/stages/StageTrackUploader.tsx
index afc192b..a19cb3b 100644
--- a/src/components/stages/StageTrackUploader.tsx
+++ b/src/components/stages/StageTrackUploader.tsx
@@ -91,7 +91,7 @@ export function StageTrackUploader({ stageId }: StageTrackUploaderProps) {
-
+
{pendingTrack && (
diff --git a/src/components/stages/StageTracksSection.tsx b/src/components/stages/StageTracksSection.tsx
index e2b03f1..33f2273 100644
--- a/src/components/stages/StageTracksSection.tsx
+++ b/src/components/stages/StageTracksSection.tsx
@@ -5,6 +5,7 @@ import { Button } from "@/components/ui/button";
import { StageTrackUploader } from "@/components/stages/StageTrackUploader";
import { Music, Plus, Radio, ArrowLeft } from "lucide-react";
import Link from "next/link";
+import { toast } from "sonner";
interface TrackSummary {
id: string;
@@ -12,6 +13,7 @@ interface TrackSummary {
artist: string;
duration: number | null;
bpm: number | null;
+ fileUrl: string | null;
}
interface StageData {
@@ -21,13 +23,20 @@ interface StageData {
latitude: number;
longitude: number;
radius: number;
- stageTrackLinks: { id: string; track: TrackSummary }[];
+ stageTrackLinks: { id: string; track: TrackSummary; loopMode?: string }[];
}
interface StageTracksSectionProps {
stage: StageData;
}
+function formatDuration(seconds: number | null): string {
+ if (seconds == null || isNaN(seconds)) return "--:--";
+ const m = Math.floor(seconds / 60);
+ const s = Math.floor(seconds % 60);
+ return `${m}:${s.toString().padStart(2, "0")}`;
+}
+
export function StageTracksSection({ stage }: StageTracksSectionProps) {
return (
@@ -45,7 +54,25 @@ export function StageTracksSection({ stage }: StageTracksSectionProps) {
{stage.stageTrackLinks.map((link) => (
-
+ {/* Play button or no-URL placeholder */}
+ {link.track.fileUrl ? (
+
+ ) : (
+
+ —
+
+ )}
{link.track.title}
{link.track.artist}
@@ -53,6 +80,9 @@ export function StageTracksSection({ stage }: StageTracksSectionProps) {
{link.track.bpm && (
{Math.round(link.track.bpm)} BPM
)}
+
+ {formatDuration(link.track.duration)}
+
))}