import { Volume2, VolumeX, Loader2 } from "lucide-react"; import { Button } from "./ui/button"; import type { TtsStatus } from "../hooks/usePiperTts"; interface TtsButtonProps { status: TtsStatus; progress: number; onSpeak: () => void; onStop: () => void; onPrewarm: () => void; disabled?: boolean; } export function TtsButton({ status, progress, onSpeak, onStop, onPrewarm, disabled }: TtsButtonProps) { if (status === "downloading") { return ( ); } if (status === "speaking") { return ( ); } // idle or error: clicking triggers prewarm then speak // ready: clicking triggers speak directly const handleClick = () => { if (status === "ready") { onSpeak(); } else { onPrewarm(); } }; return ( ); }