"use client"; import { useEffect, useState } from "react"; import { useParams } from "next/navigation"; import SessionDetails from "../../../../components/SessionDetails"; import TranscriptViewer from "../../../../components/TranscriptViewer"; import { ChatSession } from "../../../../lib/types"; import Link from "next/link"; export default function SessionViewPage() { const params = useParams(); const id = params?.id as string; const [session, setSession] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); useEffect(() => { if (id) { const fetchSession = async () => { setLoading(true); setError(null); try { const response = await fetch(`/api/dashboard/session/${id}`); if (!response.ok) { const errorData = await response.json(); throw new Error( errorData.error || `Failed to fetch session: ${response.statusText}` ); } const data = await response.json(); setSession(data.session); } catch (err) { setError( err instanceof Error ? err.message : "An unknown error occurred" ); setSession(null); } finally { setLoading(false); } }; fetchSession(); } }, [id]); if (loading) { return (

Loading session details...

); } if (error) { return (

Error: {error}

Back to Sessions List
); } if (!session) { return (

Session not found.

Back to Sessions List
); } return (
Back to Sessions List

Session: {session.sessionId || session.id}

{session.transcriptContent && session.transcriptContent.trim() !== "" ? (
{" "} {/* Adjusted margin, TranscriptViewer has its own top margin */}
) : (

Transcript

No transcript content available for this session.

{session.fullTranscriptUrl && ( View Source Transcript URL )}
)}
); }