import { useEffect, useState } from 'react'; import { EModelEndpoint } from 'librechat-data-provider'; import { useMultipleKeys } from '~/hooks/Input'; import InputWithLabel from './InputWithLabel'; import type { TConfigProps } from '~/common'; import { isJson } from '~/utils/json'; const OpenAIConfig = ({ userKey, setUserKey, endpoint }: TConfigProps) => { const [showPanel, setShowPanel] = useState(endpoint === EModelEndpoint.azureOpenAI); const { getMultiKey: getAzure, setMultiKey: setAzure } = useMultipleKeys(setUserKey); useEffect(() => { if (isJson(userKey)) { setShowPanel(true); } setUserKey(''); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); useEffect(() => { if (!showPanel && isJson(userKey)) { setUserKey(''); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [showPanel]); return ( <> {!showPanel ? ( <> setUserKey(e.target.value ?? '')} label={'OpenAI API Key'} /> ) : ( <> setAzure('azureOpenAIApiInstanceName', e.target.value ?? '', userKey) } label={'Azure OpenAI Instance Name'} /> setAzure('azureOpenAIApiDeploymentName', e.target.value ?? '', userKey) } label={'Azure OpenAI Deployment Name'} /> setAzure('azureOpenAIApiVersion', e.target.value ?? '', userKey) } label={'Azure OpenAI API Version'} /> setAzure('azureOpenAIApiKey', e.target.value ?? '', userKey) } label={'Azure OpenAI API Key'} /> )} ); }; export default OpenAIConfig;