'use client';
import { LoaderCircle, Pause, Play, RotateCcw } from 'lucide-react';
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from '@djangocfg/ui-core/components';
import { usePlayerControls, usePlayerState } from '../../context/selectors';
type Props = { size?: 'default' | 'compact' };
export function PlayButton({ size = 'default' }: Props) {
const state = usePlayerState();
const { toggle, play } = usePlayerControls();
const dim = size === 'compact' ? 28 : 36;
const icon = size === 'compact' ? 14 : 16;
let label = 'Play';
let Icon: React.ComponentType<{ size?: number; strokeWidth?: number; className?: string }> = Play;
let onClick: () => void = () => void toggle();
let disabled = false;
switch (state.kind) {
case 'idle':
Icon = Play;
disabled = true;
break;
case 'loading':
case 'decoding':
Icon = LoaderCircle;
label = 'Loading';
disabled = true;
break;
case 'playing':
Icon = Pause;
label = 'Pause';
break;
case 'paused':
Icon = Play;
label = 'Play';
break;
case 'ended':
Icon = RotateCcw;
label = 'Replay';
onClick = () => void play();
break;
case 'error':
Icon = Play;
label = 'Retry';
onClick = () => void play();
break;
}
const button = (
);
return (
{button}
{label}
Space
);
}