import { PageAction } from '@/config'; import { PageActionType } from '@/config/types'; import { Form } from 'antd'; import { forwardRef, useEffect, useImperativeHandle } from 'react'; import { FormData, ListItem } from '../config/types'; import Basic from './basic'; interface StorageFormProps { ref?: any; open: boolean; action: PageActionType; currentData?: ListItem | null; onFinish: (values: FormData) => Promise; } const GPUServiceStorageForm: React.FC = forwardRef( (props, ref) => { const { action, currentData, open, onFinish } = props; const [form] = Form.useForm(); useEffect(() => { if (!open) { form.resetFields(); return; } if (action === PageAction.EDIT && currentData) { form.setFieldsValue({ name: currentData.name, displayName: currentData.displayName, description: currentData.description, spec: { capacity: currentData.spec?.capacity, type: currentData.spec?.type } }); } }, [action, currentData, form, open]); useImperativeHandle(ref, () => ({ submit: () => { form.submit(); }, resetFields: () => { form.resetFields(); } })); return (
); } ); export default GPUServiceStorageForm;