import { OGDialogTemplate, Input, Button, OGDialog } from '@librechat/client'; import type { UseFormRegister, UseFormHandleSubmit } from 'react-hook-form'; import type { ApiKeyFormData } from '~/common'; import type { RefObject } from 'react'; import { useLocalize } from '~/hooks'; export default function ApiKeyDialog({ isOpen, onSubmit, onRevoke, onOpenChange, isUserProvided, isToolAuthenticated, register, handleSubmit, triggerRef, triggerRefs, }: { isOpen: boolean; onOpenChange: (open: boolean) => void; onSubmit: (data: { apiKey: string }) => void; onRevoke: () => void; isUserProvided: boolean; isToolAuthenticated: boolean; register: UseFormRegister; handleSubmit: UseFormHandleSubmit; triggerRef?: RefObject; triggerRefs?: RefObject[]; }) { const localize = useLocalize(); const languageIcons = [ 'python.svg', 'nodedotjs.svg', 'tsnode.svg', 'rust.svg', 'go.svg', 'c.svg', 'cplusplus.svg', 'php.svg', 'fortran.svg', 'r.svg', ]; return (
{localize('com_ui_librechat_code_api_title')}
{localize('com_ui_librechat_code_api_subtitle')}
{/* Language Icons Stack */}
{languageIcons.map((icon) => (
))}
{localize('com_ui_librechat_code_api_key')}
(e.target.readOnly = false)} {...register('apiKey', { required: true })} />
} selection={{ selectHandler: handleSubmit(onSubmit), selectClasses: 'bg-green-500 hover:bg-green-600 text-white', selectText: localize('com_ui_save'), }} buttons={ isUserProvided && isToolAuthenticated && ( ) } showCancelButton={true} />
); }