import { forwardRef, useImperativeHandle, useState } from 'react'; import { Form, Input, App } from 'antd'; import { useTranslation } from 'react-i18next'; import type { KeyConfigModalForm, ProviderModelItem, KeyConfigModalRef, KeyConfigModalProps } from '../types'; import RbModal from '@/components/RbModal' import { updateProviderApiKeys } from '@/api/models' const KeyConfigModal = forwardRef(({ refresh }, ref) => { const { t } = useTranslation(); const { message } = App.useApp(); const [visible, setVisible] = useState(false); const [model, setModel] = useState({} as ProviderModelItem); const [form] = Form.useForm(); const [loading, setLoading] = useState(false) const handleClose = () => { setModel({} as ProviderModelItem); form.resetFields(); setLoading(false) setVisible(false); }; const handleOpen = (vo: ProviderModelItem) => { setVisible(true); setModel(vo); }; const handleSave = () => { form .validateFields() .then((values) => { setLoading(true) updateProviderApiKeys({ ...values, provider: model.provider }).then(() => { if (refresh) { refresh(); } handleClose() message.success(t('common.updateSuccess')) }) .catch(() => { setLoading(false) }); }) .catch((err) => { console.log('err', err) }); } useImperativeHandle(ref, () => ({ handleOpen, handleClose })); return (
); }); export default KeyConfigModal;