diff --git a/src/frontend/src/features/recording/components/RecordingStateToast.tsx b/src/frontend/src/features/recording/components/RecordingStateToast.tsx index f2c9766e..7bded694 100644 --- a/src/frontend/src/features/recording/components/RecordingStateToast.tsx +++ b/src/frontend/src/features/recording/components/RecordingStateToast.tsx @@ -12,6 +12,7 @@ import { Button as RACButton } from 'react-aria-components' import { useSidePanel } from '@/features/rooms/livekit/hooks/useSidePanel' import { useRoomMetadata } from '../hooks/useRoomMetadata' import { RecordingStatusIcon } from './RecordingStatusIcon' +import { useIsRecording } from '@livekit/components-react' export const RecordingStateToast = () => { const { t } = useTranslation('rooms', { @@ -46,6 +47,7 @@ export const RecordingStateToast = () => { const isStarting = isTranscriptStarting || isScreenRecordingStarting const metadata = useRoomMetadata() + const isRecording = useIsRecording() const key = useMemo(() => { if (!metadata?.recording_status || !metadata?.recording_mode) { @@ -56,8 +58,14 @@ export const RecordingStateToast = () => { return undefined } - return `${metadata.recording_mode}.${metadata.recording_status}` - }, [metadata, isStarted, isStarting]) + let status = metadata.recording_status + + if (isStarted && !isRecording) { + status = 'starting' + } + + return `${metadata.recording_mode}.${status}` + }, [metadata, isStarted, isStarting, isRecording]) if (!key) return null diff --git a/src/frontend/src/features/recording/hooks/useRecordingStatuses.ts b/src/frontend/src/features/recording/hooks/useRecordingStatuses.ts index 38ab40fa..aca027d7 100644 --- a/src/frontend/src/features/recording/hooks/useRecordingStatuses.ts +++ b/src/frontend/src/features/recording/hooks/useRecordingStatuses.ts @@ -1,6 +1,7 @@ import { RecordingMode } from '@/features/recording' import { useRoomMetadata } from './useRoomMetadata' import { useMemo } from 'react' +import { useIsRecording } from '@livekit/components-react' export enum RecordingStatus { Starting = 'starting', @@ -26,13 +27,18 @@ export const useRecordingStatuses = ( mode: RecordingMode ): RecordingStatuses => { const metadata = useRoomMetadata() + const isRecording = useIsRecording() return useMemo(() => { if (metadata && metadata?.recording_mode === mode) { return { isAnotherModeStarted: false, - isStarting: metadata.recording_status === RecordingStatus.Starting, - isStarted: metadata.recording_status === RecordingStatus.Started, + isStarting: + metadata.recording_status === RecordingStatus.Starting || + (metadata.recording_status === RecordingStatus.Started && + !isRecording), + isStarted: + metadata.recording_status === RecordingStatus.Started && isRecording, isSaving: metadata.recording_status === RecordingStatus.Saving, isActive: ACTIVE_STATUSES.includes( metadata.recording_status as RecordingStatus @@ -52,5 +58,5 @@ export const useRecordingStatuses = ( isSaving: false, isActive: false, } - }, [mode, metadata]) + }, [mode, metadata, isRecording]) }