'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 ); }