diff --git a/apps/desktop/public/assets/tab-switching.gif b/apps/desktop/public/assets/tab-switching.gif new file mode 100644 index 0000000000..35d1d6194a Binary files /dev/null and b/apps/desktop/public/assets/tab-switching.gif differ diff --git a/apps/desktop/src/components/editor-area/index.tsx b/apps/desktop/src/components/editor-area/index.tsx index d08304aa7d..b6dcf81afe 100644 --- a/apps/desktop/src/components/editor-area/index.tsx +++ b/apps/desktop/src/components/editor-area/index.tsx @@ -30,6 +30,7 @@ import { AnnotationBox } from "./annotation-box"; import { LocalSearchBar } from "./local-search-bar"; import { NoteHeader, TabHeader, type TabHeaderRef } from "./note-header"; import { EnhancedNoteSubHeader } from "./note-header/sub-headers/enhanced-note-sub-header"; +import { TranscriptSubHeader } from "./note-header/sub-headers/transcript-sub-header"; import { TextSelectionPopover } from "./text-selection-popover"; import { TranscriptViewer } from "./transcript-viewer"; import { prepareContextText } from "./utils/summary-prepare"; @@ -211,6 +212,7 @@ export default function EditorArea({ setTimeout(async () => { try { const shouldShow = await shouldShowTipsModal(userId, onboardingSessionId, thankYouSessionId); + if (shouldShow) { localStorage.setItem(TIPS_MODAL_SHOWN_KEY, "true"); showTipsModal(userId); @@ -362,6 +364,17 @@ export default function EditorArea({ /> )} + {activeTab === "transcript" && ( +
e.stopPropagation()} + onClick={(e) => e.stopPropagation()} + > + +
+ )}
; } -export function TranscriptSubHeader({ sessionId, editorRef }: TranscriptSubHeaderProps) { +export function TranscriptSubHeader({ sessionId }: TranscriptSubHeaderProps) { + const ongoingSessionStatus = useOngoingSession((s) => s.status); + const ongoingSessionId = useOngoingSession((s) => s.sessionId); + + // Check if this session is currently recording + const isCurrentlyRecording = ongoingSessionStatus === "running_active" && ongoingSessionId === sessionId; + // Check if audio file exists for this session const audioExist = useQuery({ refetchInterval: 2500, @@ -24,61 +29,22 @@ export function TranscriptSubHeader({ sessionId, editorRef }: TranscriptSubHeade miscCommands.audioOpen(sessionId); }, [sessionId]); - // Removed handleSearch function as it's no longer needed - return ( -
- {/* Full-width rounded box containing chips and buttons */} -
- { - /* -
- - -
- */ - } - - {/* Right side - Action buttons */} -
- {/* Audio file button - only show if audio exists */} - {audioExist.data && ( - - )} - - {/* Copy button */} - { - /* - - */ - } -
+
+ {/* Action buttons */} +
+ {/* Audio file button - only show if audio exists and not currently recording */} + {audioExist.data && !isCurrentlyRecording && ( + + )}
); diff --git a/apps/desktop/src/components/tips-modal/index.tsx b/apps/desktop/src/components/tips-modal/index.tsx index e524a17e40..08ff15d855 100644 --- a/apps/desktop/src/components/tips-modal/index.tsx +++ b/apps/desktop/src/components/tips-modal/index.tsx @@ -12,9 +12,9 @@ const tips: TipSlide[] = [ description: "We prepared some pro tips for you! Interested?", }, { - title: "Edit Transcript", + title: "Tabs & Edit Transcript", description: - "If you are not satisfied with the transcript quality, you can freely edit it and replace identified speakers to improve accuracy.", + "Switch between tabs to view summary, memos, and transcript. You can edit the transcript and update speaker names to improve accuracy.", }, { title: "Transcript Settings", @@ -135,7 +135,7 @@ export function TipsModal({ isOpen, onClose, userId }: TipsModalProps) { : currentSlide === 1 ? (