"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 { featRequireLogin } from "../../../app/lib/utils"; import { useFiefIsAuthenticated } from "@fief/fief/nextjs/react"; 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); useEffect(() => { if (featRequireLogin() && !isAuthenticated) return; setTranscriptId(details.params.transcriptId); }, [api]); if (transcript?.error /** || topics?.error || waveform?.error **/) { return ( ); } const fullTranscript = topics.topics ?.map((topic) => topic.transcript) .join("\n\n") .replace(/ +/g, " ") .trim() || ""; return ( <> {transcript?.loading === true || topics?.loading == true ? ( ) : ( <>
{transcript?.response?.title && ( )} {waveform?.loading == true && ( )}
{transcript?.response?.longSummary && ( )}
)} ); }