From 16919da12f9aeb84a34541523ae0495702bce59e Mon Sep 17 00:00:00 2001 From: andreas Date: Tue, 3 Oct 2023 22:25:26 +0200 Subject: [PATCH] Copy Full Transcript --- www/app/transcripts/[transcriptId]/page.tsx | 4 +- www/app/transcripts/finalSummary.tsx | 43 ++++++++++++++++----- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/www/app/transcripts/[transcriptId]/page.tsx b/www/app/transcripts/[transcriptId]/page.tsx index 84e1d1b8..b9f4e0a5 100644 --- a/www/app/transcripts/[transcriptId]/page.tsx +++ b/www/app/transcripts/[transcriptId]/page.tsx @@ -35,6 +35,8 @@ export default function TranscriptDetails(details: TranscriptDetails) { ); } + const fullTranscript = topics.topics?.map(topic => topic.transcript).join(' ').replace(/ +/g, ' ').trim() || ''; + return ( <> {transcript?.loading === true || @@ -59,7 +61,7 @@ export default function TranscriptDetails(details: TranscriptDetails) {
{transcript?.response?.longSummary && ( - + )}
diff --git a/www/app/transcripts/finalSummary.tsx b/www/app/transcripts/finalSummary.tsx index 68869292..4f3bc805 100644 --- a/www/app/transcripts/finalSummary.tsx +++ b/www/app/transcripts/finalSummary.tsx @@ -1,21 +1,34 @@ import { useRef, useState } from "react"; type FinalSummaryProps = { - text: string; + summary: string; + fullTranscript: string; }; export default function FinalSummary(props: FinalSummaryProps) { const finalSummaryRef = useRef(null); - const [isCopied, setIsCopied] = useState(false); + const [isCopiedSummary, setIsCopiedSummary] = useState(false); + const [isCopiedTranscript, setIsCopiedTranscript] = useState(false); - const handleCopyClick = () => { + const handleCopySummaryClick = () => { let text_to_copy = finalSummaryRef.current?.innerText; text_to_copy && navigator.clipboard.writeText(text_to_copy).then(() => { - setIsCopied(true); + setIsCopiedSummary(true); // Reset the copied state after 2 seconds - setTimeout(() => setIsCopied(false), 2000); + setTimeout(() => setIsCopiedSummary(false), 2000); + }); + }; + + const handleCopyTranscriptClick = () => { + let text_to_copy = props.fullTranscript; + + text_to_copy && + navigator.clipboard.writeText(text_to_copy).then(() => { + setIsCopiedTranscript(true); + // Reset the copied state after 2 seconds + setTimeout(() => setIsCopiedTranscript(false), 2000); }); }; @@ -23,19 +36,31 @@ export default function FinalSummary(props: FinalSummaryProps) {

Final Summary

+
+ +
-

{props.text}

+

{props.summary}

); }