import * as Tabs from '@radix-ui/react-tabs'; import { SettingsTabValues } from 'librechat-data-provider'; import React, { useState, useRef } from 'react'; import { useRecoilState } from 'recoil'; import { useOnClickOutside } from '~/hooks'; import store from '~/store'; import ConversationModeSwitch from './ConversationModeSwitch'; import { TextToSpeechSwitch, EngineTTSDropdown, AutomaticPlayback, CacheTTSSwitch, VoiceDropdown, PlaybackRate, } from './TTS'; import { DecibelSelector, EngineSTTDropdown, SpeechToTextSwitch, AutoSendTextSwitch, AutoTranscribeAudioSwitch, } from './STT'; function Speech() { const [confirmClear, setConfirmClear] = useState(false); const [advancedMode] = useRecoilState(store.advancedMode); const [autoTranscribeAudio] = useRecoilState(store.autoTranscribeAudio); const contentRef = useRef(null); useOnClickOutside(contentRef, () => confirmClear && setConfirmClear(false), []); return (
{advancedMode && (
)} {autoTranscribeAudio && advancedMode && (
)} {advancedMode && (
)}
{advancedMode && (
)} {advancedMode && (
)}
); } export default React.memo(Speech);