diff --git a/www/app/[domain]/transcripts/[transcriptId]/page.tsx b/www/app/[domain]/transcripts/[transcriptId]/page.tsx
index f0e2af86..9f9348c8 100644
--- a/www/app/[domain]/transcripts/[transcriptId]/page.tsx
+++ b/www/app/[domain]/transcripts/[transcriptId]/page.tsx
@@ -55,7 +55,11 @@ export default function TranscriptDetails(details: TranscriptDetails) {
<>
{transcript?.response?.title && (
-
+
)}
{waveform?.loading === false && (
{transcript?.response?.longSummary && (
)}
diff --git a/www/app/[domain]/transcripts/finalSummary.tsx b/www/app/[domain]/transcripts/finalSummary.tsx
index a2ebebbc..9f8e4f82 100644
--- a/www/app/[domain]/transcripts/finalSummary.tsx
+++ b/www/app/[domain]/transcripts/finalSummary.tsx
@@ -1,18 +1,38 @@
import { useRef, useState } from "react";
import React from "react";
-import ReactDom from "react-dom";
import Markdown from "react-markdown";
import "../../styles/markdown.css";
+import getApi from "../../lib/getApi";
type FinalSummaryProps = {
+ protectedPath: boolean;
summary: string;
fullTranscript: string;
+ transcriptId: string;
};
export default function FinalSummary(props: FinalSummaryProps) {
const finalSummaryRef = useRef(null);
const [isCopiedSummary, setIsCopiedSummary] = useState(false);
const [isCopiedTranscript, setIsCopiedTranscript] = useState(false);
+ const [isEditMode, setIsEditMode] = useState(false);
+ const [editedSummary, setEditedSummary] = useState(props.summary);
+ const api = getApi(props.protectedPath);
+
+ const updateSummary = async (newSummary: string, transcriptId: string) => {
+ try {
+ setEditedSummary(newSummary);
+ const updatedTranscript = await api.v1TranscriptUpdate({
+ transcriptId,
+ updateTranscript: {
+ longSummary: newSummary,
+ },
+ });
+ console.log("Updated long summary:", updatedTranscript);
+ } catch (err) {
+ console.error("Failed to update long summary:", err);
+ }
+ };
const handleCopySummaryClick = () => {
let text_to_copy = finalSummaryRef.current?.innerText;
@@ -36,6 +56,10 @@ export default function FinalSummary(props: FinalSummaryProps) {
});
};
+ const handleEditMode = () => {
+ setIsEditMode(!isEditMode);
+ };
+
return (
@@ -43,6 +67,14 @@ export default function FinalSummary(props: FinalSummaryProps) {
Final Summary
+
-
-
- {props.summary}
-
+ {isEditMode ? (
+
);
}
diff --git a/www/app/[domain]/transcripts/transcriptTitle.tsx b/www/app/[domain]/transcripts/transcriptTitle.tsx
index 2f747098..0f9b2eeb 100644
--- a/www/app/[domain]/transcripts/transcriptTitle.tsx
+++ b/www/app/[domain]/transcripts/transcriptTitle.tsx
@@ -1,11 +1,43 @@
+import { useState } from "react";
+import getApi from "../../lib/getApi";
+
type TranscriptTitle = {
+ protectedPath: boolean;
title: string;
+ transcriptId: string;
};
const TranscriptTitle = (props: TranscriptTitle) => {
+ const [currentTitle, setCurrentTitle] = useState(props.title);
+ const api = getApi(props.protectedPath);
+
+ const updateTitle = async (newTitle: string, transcriptId: string) => {
+ try {
+ const updatedTranscript = await api.v1TranscriptUpdate({
+ transcriptId,
+ updateTranscript: {
+ title: newTitle,
+ },
+ });
+ console.log("Updated transcript:", updatedTranscript);
+ } catch (err) {
+ console.error("Failed to update transcript:", err);
+ }
+ };
+ const handleClick = () => {
+ const newTitle = prompt("Please enter the new title:", currentTitle);
+ if (newTitle !== null) {
+ setCurrentTitle(newTitle);
+ updateTitle(newTitle, props.transcriptId);
+ }
+ };
+
return (
-
- {props.title}
+
+ {currentTitle}
);
};