'use client'; import { ControlsRow } from '../Controls'; import { Cover, ReactivePulse } from '../Cover'; import { ErrorState } from '../ErrorState'; import { Artist, Title } from '../Meta'; import { Waveform } from '../Waveform'; import type { ReactiveCoverMode, WaveformConfig } from '../../types'; import { usePlayerMeta } from '../../context/selectors'; type Props = { waveform?: WaveformConfig; reactiveCover?: ReactiveCoverMode; onPrev?: () => void; onNext?: () => void; seekStartsPlayback?: boolean; }; export function DefaultLayout({ waveform, reactiveCover, onPrev, onNext, seekStartsPlayback }: Props) { const meta = usePlayerMeta(); const cover = ( ); return (
{/* Header: cover ↔ meta, vertically centered. No timer here — timer lives in ControlsRow next to playback. */}
{reactiveCover === 'subtle' ? ( {cover} ) : ( cover )}
<Artist /> </div> </div> <Waveform config={waveform} height={waveform?.height ?? 40} seekStartsPlayback={seekStartsPlayback} /> <ErrorState /> <ControlsRow onPrev={onPrev} onNext={onNext} showTime /> </div> ); }