Spaces:
Sleeping
Sleeping
File size: 1,297 Bytes
98b952a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | "use client";
import { Pause, Play } from "lucide-react";
import { Button } from "@/components/ui/button";
interface Props {
playing: boolean;
episode: number;
maxEpisode: number;
speed: 1 | 2;
onPlay: () => void;
onPause: () => void;
onSeek: (ep: number) => void;
onSpeedToggle: () => void;
}
export function EpisodeControls({
playing,
episode,
maxEpisode,
speed,
onPlay,
onPause,
onSeek,
onSpeedToggle,
}: Props) {
return (
<div className="flex flex-wrap items-center gap-3">
<Button
size="sm"
onClick={playing ? onPause : onPlay}
className="gap-1.5"
>
{playing ? <Pause className="h-4 w-4" /> : <Play className="h-4 w-4" />}
{playing ? "Pause" : "Play"}
</Button>
<input
type="range"
min={1}
max={maxEpisode}
value={episode}
onChange={(e) => onSeek(Number(e.target.value))}
className="h-1.5 w-40 cursor-pointer accent-primary"
/>
<span className="text-xs text-purple-300/70 tabular-nums">
Episode {episode}/{maxEpisode}
</span>
<Button
size="sm"
variant="outline"
onClick={onSpeedToggle}
className="ml-auto text-xs"
>
{speed}x
</Button>
</div>
);
}
|