Spaces:
Runtime error
Runtime error
import React, { useState } from 'react'; | |
import HelpText from './HelpText'; | |
import GoogleConfig from './GoogleConfig'; | |
import OpenAIConfig from './OpenAIConfig'; | |
import OtherConfig from './OtherConfig'; | |
import { Dialog, DialogTemplate } from '~/components'; | |
import { alternateName } from '~/utils'; | |
import store from '~/store'; | |
const SetTokenDialog = ({ open, onOpenChange, endpoint }) => { | |
const [token, setToken] = useState(''); | |
const { saveToken } = store.useToken(endpoint); | |
const submit = () => { | |
saveToken(token); | |
onOpenChange(false); | |
}; | |
const endpointComponents = { | |
google: GoogleConfig, | |
openAI: OpenAIConfig, | |
azureOpenAI: OpenAIConfig, | |
gptPlugins: OpenAIConfig, | |
default: OtherConfig, | |
}; | |
const EndpointComponent = endpointComponents[endpoint] || endpointComponents['default']; | |
return ( | |
<Dialog open={open} onOpenChange={onOpenChange}> | |
<DialogTemplate | |
title={`Set Token for ${alternateName[endpoint] ?? endpoint}`} | |
main={ | |
<div className="grid w-full items-center gap-2"> | |
<EndpointComponent token={token} setToken={setToken} endpoint={endpoint} /> | |
<small className="text-red-600"> | |
Your token will be sent to the server, but not saved. | |
</small> | |
<HelpText endpoint={endpoint} /> | |
</div> | |
} | |
selection={{ | |
selectHandler: submit, | |
selectClasses: 'bg-green-600 hover:bg-green-700 dark:hover:bg-green-800 text-white', | |
selectText: 'Submit', | |
}} | |
/> | |
</Dialog> | |
); | |
}; | |
export default SetTokenDialog; | |