"use client"; import Modal from "../modal"; import getApi from "../../../lib/getApi"; import useTranscript from "../useTranscript"; import useTopics from "../useTopics"; import useWaveform from "../useWaveform"; import { TopicList } from "../topicList"; import Recorder from "../recorder"; import { Topic } from "../webSocketTypes"; import React, { useEffect, useState } from "react"; import "../../../styles/button.css"; import FinalSummary from "../finalSummary"; import ShareLink from "../shareLink"; import QRCode from "react-qr-code"; import TranscriptTitle from "../transcriptTitle"; import { useFiefIsAuthenticated } from "@fief/fief/nextjs/react"; import { featureEnabled } from "../../domainContext"; type TranscriptDetails = { params: { transcriptId: string; }; }; export default function TranscriptDetails(details: TranscriptDetails) { const isAuthenticated = useFiefIsAuthenticated(); const api = getApi(); const [transcriptId, setTranscriptId] = useState(""); const transcript = useTranscript(api, transcriptId); const topics = useTopics(api, transcriptId); const waveform = useWaveform(api, transcriptId); const useActiveTopic = useState(null); const requireLogin = featureEnabled("requireLogin"); useEffect(() => { if (requireLogin && !isAuthenticated) return; setTranscriptId(details.params.transcriptId); }, [api, details.params.transcriptId, isAuthenticated]); if (transcript?.error /** || topics?.error || waveform?.error **/) { return ( ); } const fullTranscript = topics.topics ?.map((topic) => topic.transcript) .join("\n\n") .replace(/ +/g, " ") .trim() || ""; return ( <> {!transcriptId || transcript?.loading || topics?.loading ? ( ) : ( <>
{transcript?.response?.title && ( )} {waveform?.loading === false && ( )}
{transcript?.response?.longSummary && ( )}
)} ); }