"use client"; import Modal from "../modal"; import useTranscript from "../useTranscript"; import useTopics from "../useTopics"; import useWaveform from "../useWaveform"; import useMp3 from "../useMp3"; import { TopicList } from "../topicList"; import { Topic } from "../webSocketTypes"; import React, { useEffect, useState } from "react"; import "../../../styles/button.css"; import FinalSummary from "./finalSummary"; import TranscriptTitle from "../transcriptTitle"; import Player from "../player"; import { useRouter } from "next/navigation"; import { Flex, Grid, GridItem, Skeleton, Text } from "@chakra-ui/react"; type TranscriptDetails = { params: { transcriptId: string; }; }; export default function TranscriptDetails(details: TranscriptDetails) { const transcriptId = details.params.transcriptId; const router = useRouter(); const statusToRedirect = ["idle", "recording", "processing"]; const transcript = useTranscript(transcriptId); const transcriptStatus = transcript.response?.status; const waiting = statusToRedirect.includes(transcriptStatus || ""); const topics = useTopics(transcriptId); const waveform = useWaveform(transcriptId, waiting); const useActiveTopic = useState(null); const mp3 = useMp3(transcriptId, waiting); useEffect(() => { if (waiting) { const newUrl = "/transcripts/" + details.params.transcriptId + "/record"; // Shallow redirection does not work on NextJS 13 // https://github.com/vercel/next.js/discussions/48110 // https://github.com/vercel/next.js/discussions/49540 router.replace(newUrl); // history.replaceState({}, "", newUrl); } }, [waiting]); if (transcript.error || topics?.error) { return ( ); } if (transcript?.loading || topics?.loading) { return ; } return ( <> {waveform.waveform && mp3.media && topics.topics ? ( ) : waveform.error ? (
"error loading this recording"
) : ( )} { transcript.reload(); }} /> {transcript.response && topics.topics ? ( <> { transcript.reload(); }} /> ) : (
{transcript.response.status == "processing" ? ( Loading Transcript ) : ( There was an error generating the final summary, please come back later )}
)}
); }