import React, { useState } from 'react'; import { X, Play, Square, Download, Clock, Loader2 } from 'lucide-react'; import { generateAudio } from '../api'; const AudioPlayerModal = ({ isOpen, onClose, script }) => { const [generating, setGenerating] = useState(false); const [audioUrl, setAudioUrl] = useState(null); const [error, setError] = useState(null); // Backend URL might be needed if audioUrl is relative const BACKEND_URL = import.meta.env.VITE_BACKEND_URL || 'http://localhost:8000'; if (!isOpen) return null; const handleGenerate = async () => { setGenerating(true); setError(null); try { const result = await generateAudio(script); // Result.audio_url should be relative like /static/audio/... // We prepend backend URL if it's not absolute (or use it directly if simple img tag, but audio src needs full path often if cross-origin or proxy issues, though simple string concat is safest for localhost) setAudioUrl(`${BACKEND_URL}${result.audio_url}`); } catch (err) { console.error(err); setError("Failed to generate audio. Please try again."); } finally { setGenerating(false); } }; return (
Listen to an AI-generated summary