import { useEffect } from "react"; import { useQuery } from "@tanstack/react-query"; import { Session, Transcription } from "@shared/schema"; import { useParams } from "wouter"; import { useLanguage } from "@/hooks/use-language"; import { useAuth } from "@/hooks/use-auth"; import { Loader2 } from "lucide-react"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Card } from "@/components/ui/card"; const LiveStreamContent = ({ session, transcriptions, t, }: { session: Session; transcriptions: Transcription[] | undefined; t: any; }) => { const embedUrl = "https://vimeo.com/event/4939402/embed/interaction"; return (

{session.sessionTitle}

{session.sessionTitleAr}

{/* Vimeo Event Stream - Using iframe */}
{embedUrl ? ( ) : (

Invalid Vimeo URL

)}
{/* Transcriptions */} {t("English Transcription", "النص الإنجليزي")} {t("Arabic Transcription", "النص العربي")} {transcriptions ?.sort( (a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(), ) .map((transcription) => (

{transcription.translatedText}

))}
{transcriptions ?.sort( (a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(), ) .map((transcription) => (

{transcription.originalText}

))}
); }; export default function LiveStreamSinglePage() { const { id } = useParams<{ id: string }>(); const { t } = useLanguage(); const { user } = useAuth(); // Query session details const { data: session, isLoading: loadingSession } = useQuery({ queryKey: ["/api/sessions", id], enabled: !!id, }); // Query approved transcriptions const { data: transcriptions } = useQuery({ queryKey: ["/api/transcriptions"], select: (transcriptions) => transcriptions?.filter( (t) => t.sessionId === Number(id) && t.status === "accepted", ), refetchInterval: 5000, // Refresh every 5 seconds for real-time updates }); if (loadingSession) { return (
); } if (!session) { return (

{t("Session Not Found", "الجلسة غير موجودة")}

); } return ( ); }