import IconFont from '@/components/icon-font'; import SealInput from '@/components/seal-form/seal-input'; import SealSelect from '@/components/seal-form/seal-select'; import SealTextArea from '@/components/seal-form/seal-textarea'; import TooltipList from '@/components/tooltip-list'; import useAppUtils from '@/hooks/use-app-utils'; import { useIntl } from '@umijs/max'; import { Form, Typography } from 'antd'; import React, { useMemo } from 'react'; import { backendLabelMap, backendTipsList, getBackendParamsTips } from '../config'; import { backendOptionsMap } from '../config/backend-parameters'; import { useFormContext } from '../config/form-context'; import { FormData } from '../config/types'; const BackendFields: React.FC = () => { const intl = useIntl(); const { getRuleMessage } = useAppUtils(); const form = Form.useFormInstance(); const { isGGUF, formKey, pageAction: action, source, gpuOptions, onValuesChange, backendOptions, onBackendChange } = useFormContext(); const backend = Form.useWatch('backend', form); const handleBackendVersionOnBlur = () => { onValuesChange?.({}, form.getFieldsValue()); }; const backendParamsTips = useMemo(() => { return getBackendParamsTips(backend); }, [backend]); const backendVersions = useMemo(() => { if (!backend || backend === backendOptionsMap.custom) { return []; } return ( backendOptions.find((item) => item.value === backend)?.versions || [] ); }, [backend, backendOptions]); return ( <>