'use client'; import * as React from 'react'; import { Play, Pause, Square, SkipBack, Volume2, VolumeX, Circle } from 'lucide-react'; import { Button } from '@/components/ui/Button'; import { Slider } from '@/components/ui/Slider'; import { cn } from '@/lib/utils/cn'; export interface PlaybackControlsProps { isPlaying: boolean; isPaused: boolean; currentTime: number; duration: number; volume: number; onPlay: () => void; onPause: () => void; onStop: () => void; onSeek: (time: number, autoPlay?: boolean) => void; onVolumeChange: (volume: number) => void; disabled?: boolean; className?: string; currentTimeFormatted?: string; durationFormatted?: string; isRecording?: boolean; onStartRecording?: () => void; onStopRecording?: () => void; } export function PlaybackControls({ isPlaying, isPaused, currentTime, duration, volume, onPlay, onPause, onStop, onSeek, onVolumeChange, disabled = false, className, currentTimeFormatted, durationFormatted, isRecording = false, onStartRecording, onStopRecording, }: PlaybackControlsProps) { const [isMuted, setIsMuted] = React.useState(false); const [previousVolume, setPreviousVolume] = React.useState(volume); const handlePlayPause = () => { if (isPlaying) { onPause(); } else { onPlay(); } }; const handleMuteToggle = () => { if (isMuted) { onVolumeChange(previousVolume); setIsMuted(false); } else { setPreviousVolume(volume); onVolumeChange(0); setIsMuted(true); } }; const handleVolumeChange = (newVolume: number) => { onVolumeChange(newVolume); if (newVolume === 0) { setIsMuted(true); } else { setIsMuted(false); } }; const progress = duration > 0 ? (currentTime / duration) * 100 : 0; return (