import { useEffect, useRef, useState } from 'react' import { api, upload, runJob } from '../api' import { useJob, ProgressBox, ErrorBox } from '../hooks' import PromptPanel from '../components/PromptPanel' const PROVIDER_LABEL = { gemini_tts: 'Gemini (natural)', elevenlabs: 'ElevenLabs (most human)', edge_tts: 'edge-tts (free/robotic)', } export default function MediaStep({ reelData, refreshReel, reelId, projectId, setStep }) { const base = `/api/projects/${projectId}/reels/${reelId}` const [providers, setProviders] = useState([]) const [provider, setProvider] = useState(reelData?.voice?.provider || '') const [voices, setVoices] = useState([]) const [voice, setVoice] = useState(reelData?.voice?.voice || '') const [elevenUsage, setElevenUsage] = useState(null) // ElevenLabs credit usage const [busyLine, setBusyLine] = useState(null) const [measured, setMeasured] = useState({}) // {candId: real seconds, read from the