-
+ {/* ── No uploads: ambient player ── */}
+ {!hasTrack && (
+
+
+ Ein sanftes Klangteppich begleitet dich,
+ während du durch die Erinnerungen scrollst.
+
+
+
+
{ ambient.toggle(); setMiniVisible(true) }}
+ whileTap={{ scale: 0.94 }}
+ className="w-16 h-16 rounded-full bg-amber-400/10 hover:bg-amber-400/18 border border-amber-400/20 hover:border-amber-400/40 text-amber-300/70 flex items-center justify-center transition-all duration-200"
+ style={{ boxShadow: ambient.playing ? '0 0 28px rgba(196,160,74,0.14)' : undefined }}
+ >
+ {ambient.playing
+ ?
+ :
+ }
+
+
+ {ambient.playing && (
+
+
+
+ )}
+
+
+ Stille Begleitung
+
+
+
+ )}
+
+ {/* ── With uploads: track list + controls ── */}
+ {hasTrack && (
+ <>
+
+ {tracks.map((t, i) => (
+
playTrack(i)}
+ className={`w-full flex items-center gap-4 px-4 py-3.5 rounded-xl transition-all duration-200 text-left group ${
+ i === current
+ ? 'bg-amber-400/[0.07] border border-amber-400/15'
+ : 'hover:bg-white/[0.03] border border-transparent'
+ }`}
+ >
+
+ {i === current && playing
+ ?
+ :
+ {String(i + 1).padStart(2, '0')}
+
+ }
+
+
+ {trackName(i)}
+
+
+ {i === current && playing
+ ?
+ :
+ }
+
+
+ ))}
+
+
+ {/* Controls */}
+
+
+ {trackName(current)}
+
+
+
+ {formatTime(elapsed)}
+
+ {formatTime(duration)}
-
- {trackName(i)}
-
+
+
+
{ togglePlay(); setMiniVisible(true) }}
+ whileTap={{ scale: 0.93 }}
+ className="w-14 h-14 rounded-full bg-amber-400/10 hover:bg-amber-400/18 border border-amber-400/20 hover:border-amber-400/40 text-amber-300/80 flex items-center justify-center transition-all duration-200"
+ style={{ boxShadow: playing ? '0 0 24px rgba(196,160,74,0.15)' : undefined }}
+ >
+ {playing ? : }
+
+
+
-
- {i === current && playing ? (
-
- ) : (
-
- )}
-
-
- ))}
-
-
- {/* Player controls */}
-
-
- {trackName(current)}
-
-
- {/* Progress */}
-
-
- {formatTime(elapsed)}
-
-
-
- {formatTime(duration)}
-
-
-
- {/* Controls row */}
-
-
-
-
{ togglePlay(); setMiniVisible(true) }}
- whileTap={{ scale: 0.93 }}
- className="w-14 h-14 rounded-full bg-amber-400/10 hover:bg-amber-400/18 border border-amber-400/20 hover:border-amber-400/40 text-amber-300/80 flex items-center justify-center transition-all duration-200 shadow-lg"
- style={{ boxShadow: playing ? '0 0 24px rgba(196,160,74,0.15)' : undefined }}
- >
- {playing ? : }
-
-
-
-
-
- {/* Volume */}
-
-
- {
- setVolume(parseFloat(e.target.value))
- setMuted(false)
- }}
- className="w-28 accent-amber-600 cursor-pointer"
- style={{ height: '2px' }}
- />
-
-
+ >
+ )}
- {/* ── Floating mini-player ── */}
+ {/* ── Floating mini-player ─────────────────────────────────── */}