diff --git a/www/app/[domain]/transcripts/finalSummary.tsx b/www/app/[domain]/transcripts/finalSummary.tsx
index 9f8e4f82..b60a42cd 100644
--- a/www/app/[domain]/transcripts/finalSummary.tsx
+++ b/www/app/[domain]/transcripts/finalSummary.tsx
@@ -16,12 +16,12 @@ export default function FinalSummary(props: FinalSummaryProps) {
const [isCopiedSummary, setIsCopiedSummary] = useState(false);
const [isCopiedTranscript, setIsCopiedTranscript] = useState(false);
const [isEditMode, setIsEditMode] = useState(false);
+ const [preEditSummary, setPreEditSummary] = useState(props.summary);
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: {
@@ -34,7 +34,7 @@ export default function FinalSummary(props: FinalSummaryProps) {
}
};
- const handleCopySummaryClick = () => {
+ const onCopySummaryClick = () => {
let text_to_copy = finalSummaryRef.current?.innerText;
text_to_copy &&
@@ -45,7 +45,7 @@ export default function FinalSummary(props: FinalSummaryProps) {
});
};
- const handleCopyTranscriptClick = () => {
+ const onCopyTranscriptClick = () => {
let text_to_copy = props.fullTranscript;
text_to_copy &&
@@ -56,58 +56,113 @@ export default function FinalSummary(props: FinalSummaryProps) {
});
};
- const handleEditMode = () => {
- setIsEditMode(!isEditMode);
+ const onEditClick = () => {
+ setPreEditSummary(editedSummary);
+ setIsEditMode(true);
+ };
+
+ const onDiscardClick = () => {
+ setEditedSummary(preEditSummary);
+ setIsEditMode(false);
+ };
+
+ const onSaveClick = () => {
+ updateSummary(editedSummary, props.transcriptId);
+ setIsEditMode(false);
+ };
+
+ const handleTextAreaKeyDown = (e: React.KeyboardEvent) => {
+ if (e.key === "Escape") {
+ onDiscardClick();
+ }
+
+ if (e.key === "Enter" && e.shiftKey) {
+ onSaveClick();
+ e.preventDefault(); // prevent the default action of adding a new line
+ }
};
return (
-
+
Final Summary
+
-
-
-
+ {isEditMode && (
+ <>
+
+
+ >
+ )}
+
+ {!isEditMode && (
+ <>
+
+
+
+ >
+ )}
+
{isEditMode ? (
-
);
}
diff --git a/www/app/[domain]/transcripts/transcriptTitle.tsx b/www/app/[domain]/transcripts/transcriptTitle.tsx
index 0f9b2eeb..d2f901fa 100644
--- a/www/app/[domain]/transcripts/transcriptTitle.tsx
+++ b/www/app/[domain]/transcripts/transcriptTitle.tsx
@@ -8,10 +8,13 @@ type TranscriptTitle = {
};
const TranscriptTitle = (props: TranscriptTitle) => {
- const [currentTitle, setCurrentTitle] = useState(props.title);
+ const [displayedTitle, setDisplayedTitle] = useState(props.title);
+ const [preEditTitle, setPreEditTitle] = useState(props.title);
+ const [isEditing, setIsEditing] = useState(false);
const api = getApi(props.protectedPath);
const updateTitle = async (newTitle: string, transcriptId: string) => {
+ if (!api) return;
try {
const updatedTranscript = await api.v1TranscriptUpdate({
transcriptId,
@@ -24,21 +27,57 @@ const TranscriptTitle = (props: TranscriptTitle) => {
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);
+
+ const handleTitleClick = () => {
+ const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
+
+ if (isMobile) {
+ // Use prompt
+ const newTitle = prompt("Please enter the new title:", displayedTitle);
+ if (newTitle !== null) {
+ setDisplayedTitle(newTitle);
+ updateTitle(newTitle, props.transcriptId);
+ }
+ } else {
+ setPreEditTitle(displayedTitle);
+ setIsEditing(true);
+ }
+ };
+
+ const handleChange = (e) => {
+ setDisplayedTitle(e.target.value);
+ };
+
+ const handleKeyDown = (e) => {
+ if (e.key === "Enter") {
+ updateTitle(displayedTitle, props.transcriptId);
+ setIsEditing(false);
+ } else if (e.key === "Escape") {
+ setDisplayedTitle(preEditTitle);
+ setIsEditing(false);
}
};
return (
-
- {currentTitle}
-
+ <>
+ {isEditing ? (
+
+ ) : (
+
+ {displayedTitle}
+
+ )}
+ >
);
};