import React, { useState, useEffect } from 'react'; import { Copy, FileText, Check } from 'lucide-react'; interface RawTranscriptViewerProps { taskId: string; baseUrl: string; } export default function RawTranscriptViewer({ taskId, baseUrl }: RawTranscriptViewerProps) { const [transcript, setTranscript] = useState(null); const [loading, setLoading] = useState(true); const [copied, setCopied] = useState(false); useEffect(() => { const fetchTranscript = async () => { try { const res = await fetch(`${baseUrl}/api/stream/${taskId}/lyrics.srt`); if (res.ok) { const text = await res.text(); setTranscript(text); } else { setTranscript(null); } } catch (err) { console.error("Failed to fetch transcript", err); setTranscript(null); } finally { setLoading(false); } }; fetchTranscript(); }, [taskId, baseUrl]); const handleCopy = () => { if (transcript) { navigator.clipboard.writeText(transcript); setCopied(true); setTimeout(() => setCopied(false), 2000); } }; if (loading) return null; if (!transcript || transcript.trim() === '') return null; // Don't render if there's no transcript return (

Raw Transcript

SRT JSON
{transcript}
); }