From 94e71ba15de7db6475f6dfab3b318c79f382fdd9 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Thu, 10 Apr 2025 18:39:36 +0200 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F(frontend)=20extract=20record?= =?UTF-8?q?ing=20api=20into=20a=20dedicated=20folder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Extract code elements related to recording into a dedicated folder. --- src/frontend/src/api/useConfig.ts | 2 +- .../{rooms => recording}/api/startRecording.ts | 8 ++------ .../{rooms => recording}/api/stopRecording.ts | 2 +- .../recording/hooks/useHasRecordingAccess.ts | 2 +- .../recording/hooks/useIsRecordingModeEnabled.ts | 2 +- src/frontend/src/features/recording/index.ts | 3 +++ src/frontend/src/features/recording/types.ts | 4 ++++ .../rooms/livekit/components/ScreenRecording.tsx | 4 ++-- .../features/rooms/livekit/components/Tools.tsx | 3 +-- .../rooms/livekit/components/Transcript.tsx | 14 ++++++-------- 10 files changed, 22 insertions(+), 22 deletions(-) rename src/frontend/src/features/{rooms => recording}/api/startRecording.ts (84%) rename src/frontend/src/features/{rooms => recording}/api/stopRecording.ts (91%) create mode 100644 src/frontend/src/features/recording/types.ts diff --git a/src/frontend/src/api/useConfig.ts b/src/frontend/src/api/useConfig.ts index ed5deda3..03a43126 100644 --- a/src/frontend/src/api/useConfig.ts +++ b/src/frontend/src/api/useConfig.ts @@ -1,7 +1,7 @@ import { fetchApi } from './fetchApi' import { keys } from './queryKeys' import { useQuery } from '@tanstack/react-query' -import { RecordingMode } from '@/features/rooms/api/startRecording' +import { RecordingMode } from '@/features/recording' export interface ApiConfig { analytics?: { diff --git a/src/frontend/src/features/rooms/api/startRecording.ts b/src/frontend/src/features/recording/api/startRecording.ts similarity index 84% rename from src/frontend/src/features/rooms/api/startRecording.ts rename to src/frontend/src/features/recording/api/startRecording.ts index fca43f35..f0ad5464 100644 --- a/src/frontend/src/features/rooms/api/startRecording.ts +++ b/src/frontend/src/features/recording/api/startRecording.ts @@ -1,12 +1,8 @@ import { useMutation, UseMutationOptions } from '@tanstack/react-query' import { fetchApi } from '@/api/fetchApi' import { ApiError } from '@/api/ApiError' -import { ApiRoom } from './ApiRoom' - -export enum RecordingMode { - Transcript = 'transcript', - ScreenRecording = 'screen_recording', -} +import { ApiRoom } from '@/features/rooms/api/ApiRoom' +import { RecordingMode } from '../types' export interface StartRecordingParams { id: string diff --git a/src/frontend/src/features/rooms/api/stopRecording.ts b/src/frontend/src/features/recording/api/stopRecording.ts similarity index 91% rename from src/frontend/src/features/rooms/api/stopRecording.ts rename to src/frontend/src/features/recording/api/stopRecording.ts index 38581fb4..8a8727a8 100644 --- a/src/frontend/src/features/rooms/api/stopRecording.ts +++ b/src/frontend/src/features/recording/api/stopRecording.ts @@ -1,7 +1,7 @@ import { useMutation, UseMutationOptions } from '@tanstack/react-query' import { fetchApi } from '@/api/fetchApi' import { ApiError } from '@/api/ApiError' -import { ApiRoom } from './ApiRoom' +import { ApiRoom } from '@/features/rooms/api/ApiRoom' export interface StopRecordingParams { id: string diff --git a/src/frontend/src/features/recording/hooks/useHasRecordingAccess.ts b/src/frontend/src/features/recording/hooks/useHasRecordingAccess.ts index 50db91c9..18f96747 100644 --- a/src/frontend/src/features/recording/hooks/useHasRecordingAccess.ts +++ b/src/frontend/src/features/recording/hooks/useHasRecordingAccess.ts @@ -1,6 +1,6 @@ import { useFeatureFlagEnabled } from 'posthog-js/react' import { useIsAnalyticsEnabled } from '@/features/analytics/hooks/useIsAnalyticsEnabled' -import { RecordingMode } from '@/features/rooms/api/startRecording' +import { RecordingMode } from '../types' import { useIsRecordingModeEnabled } from './useIsRecordingModeEnabled' import { useIsAdminOrOwner } from '@/features/rooms/livekit/hooks/useIsAdminOrOwner' diff --git a/src/frontend/src/features/recording/hooks/useIsRecordingModeEnabled.ts b/src/frontend/src/features/recording/hooks/useIsRecordingModeEnabled.ts index d94772c0..3652dcc8 100644 --- a/src/frontend/src/features/recording/hooks/useIsRecordingModeEnabled.ts +++ b/src/frontend/src/features/recording/hooks/useIsRecordingModeEnabled.ts @@ -1,4 +1,4 @@ -import { RecordingMode } from '@/features/rooms/api/startRecording' +import { RecordingMode } from '../types' import { useConfig } from '@/api/useConfig' export const useIsRecordingModeEnabled = (mode: RecordingMode) => { diff --git a/src/frontend/src/features/recording/index.ts b/src/frontend/src/features/recording/index.ts index 6a78d900..85661da8 100644 --- a/src/frontend/src/features/recording/index.ts +++ b/src/frontend/src/features/recording/index.ts @@ -6,3 +6,6 @@ export { export { useIsRecordingTransitioning } from './hooks/useIsRecordingTransitioning' export { useHasRecordingAccess } from './hooks/useHasRecordingAccess' export { RecordingStateToast } from './components/RecordingStateToast' +export { useStartRecording } from './api/startRecording' +export { useStopRecording } from './api/stopRecording' +export { RecordingMode } from './types' diff --git a/src/frontend/src/features/recording/types.ts b/src/frontend/src/features/recording/types.ts new file mode 100644 index 00000000..78cc5e97 --- /dev/null +++ b/src/frontend/src/features/recording/types.ts @@ -0,0 +1,4 @@ +export enum RecordingMode { + Transcript = 'transcript', + ScreenRecording = 'screen_recording', +} diff --git a/src/frontend/src/features/rooms/livekit/components/ScreenRecording.tsx b/src/frontend/src/features/rooms/livekit/components/ScreenRecording.tsx index 1ea2fb6b..3310279e 100644 --- a/src/frontend/src/features/rooms/livekit/components/ScreenRecording.tsx +++ b/src/frontend/src/features/rooms/livekit/components/ScreenRecording.tsx @@ -7,8 +7,8 @@ import { useRoomContext } from '@livekit/components-react' import { RecordingMode, useStartRecording, -} from '@/features/rooms/api/startRecording' -import { useStopRecording } from '@/features/rooms/api/stopRecording' + useStopRecording, +} from '@/features/recording' import { useEffect, useMemo, useState } from 'react' import { RoomEvent } from 'livekit-client' import { useTranslation } from 'react-i18next' diff --git a/src/frontend/src/features/rooms/livekit/components/Tools.tsx b/src/frontend/src/features/rooms/livekit/components/Tools.tsx index d162397e..8761adce 100644 --- a/src/frontend/src/features/rooms/livekit/components/Tools.tsx +++ b/src/frontend/src/features/rooms/livekit/components/Tools.tsx @@ -8,8 +8,7 @@ import { Transcript } from './Transcript' import { RiFileTextFill, RiLiveFill } from '@remixicon/react' import { SubPanelId, useSidePanel } from '../hooks/useSidePanel' import { ScreenRecording } from './ScreenRecording' -import { RecordingMode } from '@/features/rooms/api/startRecording' -import { useIsRecordingModeEnabled } from '@/features/recording' +import { useIsRecordingModeEnabled, RecordingMode } from '@/features/recording' export interface ToolsButtonProps { icon: ReactNode diff --git a/src/frontend/src/features/rooms/livekit/components/Transcript.tsx b/src/frontend/src/features/rooms/livekit/components/Transcript.tsx index 26252a0f..f98a67ba 100644 --- a/src/frontend/src/features/rooms/livekit/components/Transcript.tsx +++ b/src/frontend/src/features/rooms/livekit/components/Transcript.tsx @@ -7,8 +7,12 @@ import { useRoomContext } from '@livekit/components-react' import { RecordingMode, useStartRecording, -} from '@/features/rooms/api/startRecording' -import { useStopRecording } from '@/features/rooms/api/stopRecording' + useStopRecording, + useIsScreenRecordingStarted, + useIsTranscriptStarted, + useIsRecordingTransitioning, + useHasRecordingAccess, +} from '@/features/recording' import { useEffect, useMemo, useState } from 'react' import { RoomEvent } from 'livekit-client' import { useTranslation } from 'react-i18next' @@ -19,12 +23,6 @@ import { BETA_USERS_FORM_URL, CRISP_HELP_ARTICLE_TRANSCRIPT, } from '@/utils/constants' -import { - useIsScreenRecordingStarted, - useIsTranscriptStarted, - useIsRecordingTransitioning, - useHasRecordingAccess, -} from '@/features/recording' export const Transcript = () => { const [isLoading, setIsLoading] = useState(false)