function ContentBlock({ block, onDelete }) { const getExtractionBadge = () => { if (block.extracted_text && block.extracted_text.trim()) { return { icon: '✅', label: 'Extracted', color: '#10b981', // green bg: 'rgba(16, 185, 129, 0.1)' }; } return { icon: '⭘', label: 'Not extracted', color: '#6b7280', // gray bg: 'rgba(107, 114, 128, 0.1)' }; }; const badge = getExtractionBadge(); const renderContent = () => { switch (block.content_type) { case 'text': return
{block.content_data?.text}
; case 'image': return
{block.filename}

{block.filename}

; case 'pdf': return

📄

{block.filename}

PDF Document

; case 'audio': // Build audio URL const audioUrl = `${API_URL.replace('/api', '')}/uploads/${block.file_path}`; // Defensive check: Verify AudioPlayer component is loaded if (typeof AudioPlayer === 'undefined' || !window.AudioPlayer) { return (

🎤

{block.filename || 'Audio Recording'}

Audio Player loading... Please refresh if this persists.

); } // Render AudioPlayer component return (
); case 'link': return
🔗 {block.content_data?.url}
; default: return
Unknown block type
; } }; return (
{renderContent()} {/* Extraction Status Badge */}
{badge.icon} {badge.label}
); } // Export to global scope window.ContentBlock = ContentBlock;