From 7c16852a56bd4e312d706cbd4eefa18217db509e Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Mon, 8 Sep 2025 21:19:50 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(frontend)=20add=20quick=20action=20to?= =?UTF-8?q?=20open=20transcription=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implement quick access button to open the transcription menu directly, providing faster navigation to transcript controls and settings. --- .../controls/Options/OptionsMenuItems.tsx | 2 ++ .../controls/Options/TranscriptMenuItem.tsx | 29 +++++++++++++++++++ src/frontend/src/locales/de/rooms.json | 1 + src/frontend/src/locales/en/rooms.json | 1 + src/frontend/src/locales/fr/rooms.json | 1 + src/frontend/src/locales/nl/rooms.json | 1 + 6 files changed, 35 insertions(+) create mode 100644 src/frontend/src/features/rooms/livekit/components/controls/Options/TranscriptMenuItem.tsx diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Options/OptionsMenuItems.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Options/OptionsMenuItems.tsx index 9736d475..37e87854 100644 --- a/src/frontend/src/features/rooms/livekit/components/controls/Options/OptionsMenuItems.tsx +++ b/src/frontend/src/features/rooms/livekit/components/controls/Options/OptionsMenuItems.tsx @@ -5,6 +5,7 @@ import { SettingsMenuItem } from './SettingsMenuItem' import { FeedbackMenuItem } from './FeedbackMenuItem' import { EffectsMenuItem } from './EffectsMenuItem' import { SupportMenuItem } from './SupportMenuItem' +import { TranscriptMenuItem } from './TranscriptMenuItem' import { ScreenRecordingMenuItem } from './ScreenRecordingMenuItem' // @todo try refactoring it to use MenuList component @@ -17,6 +18,7 @@ export const OptionsMenuItems = () => { }} > + diff --git a/src/frontend/src/features/rooms/livekit/components/controls/Options/TranscriptMenuItem.tsx b/src/frontend/src/features/rooms/livekit/components/controls/Options/TranscriptMenuItem.tsx new file mode 100644 index 00000000..c62d13b5 --- /dev/null +++ b/src/frontend/src/features/rooms/livekit/components/controls/Options/TranscriptMenuItem.tsx @@ -0,0 +1,29 @@ +import { RiFileTextLine } from '@remixicon/react' +import { MenuItem } from 'react-aria-components' +import { useTranslation } from 'react-i18next' +import { menuRecipe } from '@/primitives/menuRecipe' +import { useSidePanel } from '@/features/rooms/livekit/hooks/useSidePanel' +import { RecordingMode, useHasRecordingAccess } from '@/features/recording' +import { FeatureFlags } from '@/features/analytics/enums' + +export const TranscriptMenuItem = () => { + const { t } = useTranslation('rooms', { keyPrefix: 'options.items' }) + const { isTranscriptOpen, openTranscript, toggleTools } = useSidePanel() + + const hasTranscriptAccess = useHasRecordingAccess( + RecordingMode.Transcript, + FeatureFlags.Transcript + ) + + if (!hasTranscriptAccess) return null + + return ( + (!isTranscriptOpen ? openTranscript() : toggleTools())} + > + + {t('transcript')} + + ) +} diff --git a/src/frontend/src/locales/de/rooms.json b/src/frontend/src/locales/de/rooms.json index e2b2b4e7..aef073de 100644 --- a/src/frontend/src/locales/de/rooms.json +++ b/src/frontend/src/locales/de/rooms.json @@ -207,6 +207,7 @@ "feedback": "Feedback geben", "settings": "Einstellungen", "screenRecording": "Aufzeichnung", + "transcript": "Transkription", "username": "Ihren Namen aktualisieren", "effects": "Effekte anwenden", "switchCamera": "Kamera wechseln", diff --git a/src/frontend/src/locales/en/rooms.json b/src/frontend/src/locales/en/rooms.json index d343e5f2..6bce3a61 100644 --- a/src/frontend/src/locales/en/rooms.json +++ b/src/frontend/src/locales/en/rooms.json @@ -207,6 +207,7 @@ "feedback": "Give us feedback", "settings": "Settings", "screenRecording": "Screen recording", + "transcript": "Transcription", "username": "Update Your Name", "effects": "Apply effects", "switchCamera": "Switch camera", diff --git a/src/frontend/src/locales/fr/rooms.json b/src/frontend/src/locales/fr/rooms.json index a10d87e5..ba3b9d22 100644 --- a/src/frontend/src/locales/fr/rooms.json +++ b/src/frontend/src/locales/fr/rooms.json @@ -207,6 +207,7 @@ "feedback": "Partager votre avis", "settings": "Paramètres", "screenRecording": "Enregistrement", + "transcript": "Transcription", "username": "Choisir votre nom", "effects": "Effets d'arrière-plan", "switchCamera": "Changer de caméra", diff --git a/src/frontend/src/locales/nl/rooms.json b/src/frontend/src/locales/nl/rooms.json index 1405883a..7821fd55 100644 --- a/src/frontend/src/locales/nl/rooms.json +++ b/src/frontend/src/locales/nl/rooms.json @@ -206,6 +206,7 @@ "items": { "feedback": "Geef ons feedback", "settings": "Instellingen", + "transcript": "Transcriptie", "screenRecording": "Schermopname", "username": "Verander uw naam", "effects": "Pas effecten toe",