"use client"; import React, { useEffect, useState } from "react"; import Recorder from "../recorder"; import { TopicList } from "../topicList"; import useWebRTC from "../useWebRTC"; import useTranscript from "../useTranscript"; import { useWebSockets } from "../useWebSockets"; import useAudioDevice from "../useAudioDevice"; import "../../styles/button.css"; import { Topic } from "../webSocketTypes"; import getApi from "../../lib/getApi"; import AudioInputsDropdown from "../audioInputsDropdown"; import LiveTrancription from "../liveTranscription"; import DisconnectedIndicator from "../disconnectedIndicator"; const TranscriptCreate = () => { const [stream, setStream] = useState(null); const [disconnected, setDisconnected] = useState(false); const useActiveTopic = useState(null); const [deviceId, setDeviceId] = useState(null); const [recordStarted, setRecordStarted] = useState(false); useEffect(() => { if (process.env.NEXT_PUBLIC_ENV === "development") { document.onkeyup = (e) => { if (e.key === "d") { setDisconnected((prev) => !prev); } }; } }, []); const api = getApi(); const transcript = useTranscript(stream, api); const webRTC = useWebRTC(stream, transcript?.response?.id, api); const webSockets = useWebSockets(transcript?.response?.id); const { loading, permissionOk, permissionDenied, audioDevices, requestPermission, getAudioStream, } = useAudioDevice(); const getCurrentStream = async () => { setRecordStarted(true); return deviceId ? await getAudioStream(deviceId) : null; }; useEffect(() => { if (audioDevices.length > 0) { setDeviceId[audioDevices[0].value]; } }, [audioDevices]); return ( <> {permissionOk ? ( <> { webRTC?.peer?.send(JSON.stringify({ cmd: "STOP" })); setStream(null); }} topics={webSockets.topics} getAudioStream={getCurrentStream} useActiveTopic={useActiveTopic} isPastMeeting={false} />
{disconnected && }
) : ( <>

Audio Permissions

{loading ? (

Checking permission...

) : ( <>

Reflector needs access to your microphone to work.
{permissionDenied ? "Please reset microphone permissions to continue." : "Please grant permission to continue."}

)}
)} ); }; export default TranscriptCreate;