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 (
);
}