import { Input as CInput, InputNumber, Select as SealSelect, Textarea, useAppUtils } from '@gpustack/core-ui'; import { useIntl } from '@umijs/max'; import { Flex, Form } from 'antd'; import _ from 'lodash'; import { useMemo } from 'react'; import { GPUsConfigs } from '../../../resources/config/gpu-driver'; import { ImagePullPolicyOptions } from '../config'; import { FormData } from '../config/types'; import Env from './env'; import Ports from './ports'; interface BasicProps { page?: 'template' | 'instance'; } const Basic: React.FC = ({ page = 'template' }) => { const { getRuleMessage } = useAppUtils(); const intl = useIntl(); const manufacturerOptions = useMemo( () => Object.values(GPUsConfigs).map((item) => ({ label: item.label, value: item.value })), [] ); return ( <> {page === 'template' && ( <> name="name" rules={[ { required: true, message: getRuleMessage('input', 'common.table.name') } ]} > name="manufacturer" rules={[ { required: true, message: getRuleMessage('select', 'resources.table.vendor') } ]} > )} name={['spec', 'image']} rules={[ { required: true, message: getRuleMessage('input', 'gpuservice.template.image') } ]} > name={['spec', 'imagePullPolicy']}> ({ label: intl.formatMessage({ id: item.label }), value: item.value }))} /> name={['spec', 'command']} normalize={(value: string) => _.split(value, '\n').map(_.trim)} getValueProps={(value) => ({ value: _.join(value, '\n') })} >