import SealInput from '@/components/seal-form/seal-input'; import SealSelect from '@/components/seal-form/seal-select'; import useAppUtils from '@/hooks/use-app-utils'; import { useIntl } from '@umijs/max'; import { Form } from 'antd'; import { sourceOptions } from '../config'; import { FormData } from '../config/types'; import CatalogFrom from './catalog'; import LocalPathSource from './local-path-source'; import OnlineSource from './online-source'; interface BasicFormProps { fields?: string[]; sourceDisable?: boolean; sourceList?: Global.BaseOption[]; clusterList: Global.BaseOption[]; handleClusterChange: (value: number) => void; onSourceChange?: (value: string) => void; } const BasicForm: React.FC = (props) => { const { fields = [], sourceList, clusterList, sourceDisable, handleClusterChange, onSourceChange } = props; const intl = useIntl(); const { getRuleMessage } = useAppUtils(); const form = Form.useFormInstance(); const handleOnSourceChange = (val: string) => { onSourceChange?.(val); }; return ( <> data-field="name" name="name" rules={[ { required: true, message: getRuleMessage('input', 'common.table.name') } ]} > {fields.includes('source') && ( name="source" rules={[ { required: true, message: getRuleMessage('select', 'models.form.source') } ]} > { } )} name="cluster_id" rules={[ { required: true, message: getRuleMessage('select', 'clusters.title') } ]} > { } name="replicas" rules={[ { required: true, message: getRuleMessage('input', 'models.form.replicas') } ]} > name="description"> ); }; export default BasicForm;