🚧(frontend) add a temporary items to interact with transcription
This is totally temporary, only to test transcription recording. In the upcoming commits, a proper side panel with all activities will be created.
This commit is contained in:
committed by
aleb_the_flash
parent
c61fc40671
commit
d2f239e6a2
@@ -10,6 +10,7 @@ import { DialogState } from './OptionsButton'
|
|||||||
import { Separator } from '@/primitives/Separator'
|
import { Separator } from '@/primitives/Separator'
|
||||||
import { useSidePanel } from '../../../hooks/useSidePanel'
|
import { useSidePanel } from '../../../hooks/useSidePanel'
|
||||||
import { menuRecipe } from '@/primitives/menuRecipe.ts'
|
import { menuRecipe } from '@/primitives/menuRecipe.ts'
|
||||||
|
import { TranscriptMenuItem } from './TranscriptMenuItem'
|
||||||
|
|
||||||
// @todo try refactoring it to use MenuList component
|
// @todo try refactoring it to use MenuList component
|
||||||
export const OptionsMenuItems = ({
|
export const OptionsMenuItems = ({
|
||||||
@@ -34,6 +35,7 @@ export const OptionsMenuItems = ({
|
|||||||
<RiAccountBoxLine size={20} />
|
<RiAccountBoxLine size={20} />
|
||||||
{t('effects')}
|
{t('effects')}
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
<TranscriptMenuItem />
|
||||||
</Section>
|
</Section>
|
||||||
<Separator />
|
<Separator />
|
||||||
<Section>
|
<Section>
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
import { RiRecordCircleLine, RiStopCircleLine } from '@remixicon/react'
|
||||||
|
import { useTranslation } from 'react-i18next'
|
||||||
|
import { menuRecipe } from '@/primitives/menuRecipe'
|
||||||
|
import { MenuItem } from 'react-aria-components'
|
||||||
|
import {
|
||||||
|
RecordingMode,
|
||||||
|
useStartRecording,
|
||||||
|
} from '@/features/rooms/api/startRecording'
|
||||||
|
import { useStopRecording } from '@/features/rooms/api/stopRecording'
|
||||||
|
import { useRoomContext } from '@livekit/components-react'
|
||||||
|
import { useRoomData } from '@/features/rooms/livekit/hooks/useRoomData'
|
||||||
|
|
||||||
|
export const TranscriptMenuItem = () => {
|
||||||
|
const { t } = useTranslation('rooms', { keyPrefix: 'options.items' })
|
||||||
|
|
||||||
|
const data = useRoomData()
|
||||||
|
|
||||||
|
const { mutateAsync: startRecordingRoom } = useStartRecording()
|
||||||
|
const { mutateAsync: stopRecordingRoom } = useStopRecording()
|
||||||
|
|
||||||
|
const room = useRoomContext()
|
||||||
|
|
||||||
|
const handleTranscript = async () => {
|
||||||
|
const roomId = data?.livekit?.room
|
||||||
|
|
||||||
|
if (!roomId) {
|
||||||
|
console.warn('No room ID found')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (room.isRecording) {
|
||||||
|
await stopRecordingRoom({ id: roomId })
|
||||||
|
} else {
|
||||||
|
await startRecordingRoom({ id: roomId, mode: RecordingMode.Transcript })
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Failed to handle transcript:', error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<MenuItem
|
||||||
|
className={menuRecipe({ icon: true }).item}
|
||||||
|
onAction={async () => await handleTranscript()}
|
||||||
|
>
|
||||||
|
{room.isRecording ? (
|
||||||
|
<>
|
||||||
|
<RiRecordCircleLine size={20} />
|
||||||
|
{t('transcript.stop')}
|
||||||
|
</>
|
||||||
|
) : (
|
||||||
|
<>
|
||||||
|
<RiStopCircleLine size={20} />
|
||||||
|
{t('transcript.start')}
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
</MenuItem>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -79,7 +79,11 @@
|
|||||||
"support": "",
|
"support": "",
|
||||||
"settings": "",
|
"settings": "",
|
||||||
"username": "",
|
"username": "",
|
||||||
"effects": ""
|
"effects": "",
|
||||||
|
"transcript": {
|
||||||
|
"start": "",
|
||||||
|
"stop": ""
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": {
|
"effects": {
|
||||||
|
|||||||
@@ -78,7 +78,11 @@
|
|||||||
"support": "Get Help on Tchap",
|
"support": "Get Help on Tchap",
|
||||||
"settings": "Settings",
|
"settings": "Settings",
|
||||||
"username": "Update Your Name",
|
"username": "Update Your Name",
|
||||||
"effects": "Apply effects"
|
"effects": "Apply effects",
|
||||||
|
"transcript": {
|
||||||
|
"start": "Start meeting transcription",
|
||||||
|
"stop": "Stop ongoing transcription"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": {
|
"effects": {
|
||||||
|
|||||||
@@ -78,7 +78,11 @@
|
|||||||
"support": "Obtenir de l'aide sur Tchap",
|
"support": "Obtenir de l'aide sur Tchap",
|
||||||
"settings": "Paramètres",
|
"settings": "Paramètres",
|
||||||
"username": "Choisir votre nom",
|
"username": "Choisir votre nom",
|
||||||
"effects": "Appliquer des effets"
|
"effects": "Appliquer des effets",
|
||||||
|
"transcript": {
|
||||||
|
"start": "Démarrer la transcription",
|
||||||
|
"stop": "Arrêter la transcription en cours"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"effects": {
|
"effects": {
|
||||||
|
|||||||
Reference in New Issue
Block a user