diff --git a/src/components/label-selector/index.tsx b/src/components/label-selector/index.tsx index ae8efde2..1f5937a6 100644 --- a/src/components/label-selector/index.tsx +++ b/src/components/label-selector/index.tsx @@ -10,12 +10,14 @@ interface LabelSelectorProps { description?: React.ReactNode; onChange?: (labels: Record) => void; onBlur?: (e: any, type: string, index: number) => void; + onDelete?: (index: number) => void; } const LabelSelector: React.FC = ({ labels, onChange, onBlur, + onDelete, label, btnText, description @@ -90,6 +92,7 @@ const LabelSelector: React.FC = ({ onLabelListChange={handleLabelListChange} onPaste={handleOnPaste} onBlur={onBlur} + onDelete={onDelete} /> ); }; diff --git a/src/components/label-selector/inner.tsx b/src/components/label-selector/inner.tsx index 0cb2c847..37d53f18 100644 --- a/src/components/label-selector/inner.tsx +++ b/src/components/label-selector/inner.tsx @@ -14,6 +14,7 @@ interface LabelSelectorProps { onChange?: (labels: Record) => void; onPaste?: (e: any, index: number) => void; onBlur?: (e: any, type: string, index: number) => void; + onDelete?: (index: number) => void; description?: React.ReactNode; } @@ -24,6 +25,7 @@ const Inner: React.FC = ({ onLabelListChange, onPaste, onBlur, + onDelete, label, btnText, description @@ -69,6 +71,7 @@ const Inner: React.FC = ({ list.splice(index, 1); onLabelListChange(list); updateLabels(list); + onDelete?.(index); }; return ( diff --git a/src/components/list-input/index.tsx b/src/components/list-input/index.tsx index 83213180..bf909daf 100644 --- a/src/components/list-input/index.tsx +++ b/src/components/list-input/index.tsx @@ -16,6 +16,7 @@ interface ListInputProps { labelExtra?: React.ReactNode; onChange: (data: string[]) => void; onBlur?: (e: any, index: number) => void; + onDelete?: (index: number) => void; } const ListInput: React.FC = (props) => { @@ -26,6 +27,7 @@ const ListInput: React.FC = (props) => { description, onChange, onBlur, + onDelete, btnText, options, labelExtra @@ -44,6 +46,7 @@ const ListInput: React.FC = (props) => { const valueList = _.map(values, 'value').filter((val: string) => !!val); setList(values); onChange(valueList); + onDelete?.(index); }; const handleOnChange = (value: string, index: number) => { diff --git a/src/pages/llmodels/components/advance-config.tsx b/src/pages/llmodels/components/advance-config.tsx index 0dcafd21..4d2e730a 100644 --- a/src/pages/llmodels/components/advance-config.tsx +++ b/src/pages/llmodels/components/advance-config.tsx @@ -160,6 +160,10 @@ const AdvanceConfig: React.FC = (props) => { onValuesChange?.({}, form.getFieldsValue()); }; + const handleDeleteBackendParameters = (index: number) => { + onValuesChange?.({}, form.getFieldsValue()); + }; + const handleSelectorOnBlur = () => { const workerSelector = form.getFieldValue('worker_selector'); // check if all keys have values @@ -171,6 +175,10 @@ const AdvanceConfig: React.FC = (props) => { } }; + const handleDeleteWorkerSelector = (index: number) => { + onValuesChange?.({}, form.getFieldsValue()); + }; + const handleBackendVersionOnBlur = () => { const backendVersion = form.getFieldValue('backend_version'); onValuesChange?.({}, form.getFieldsValue()); @@ -257,6 +265,7 @@ const AdvanceConfig: React.FC = (props) => { labels={wokerSelector} onChange={handleWorkerLabelsChange} onBlur={handleSelectorOnBlur} + onDelete={handleDeleteWorkerSelector} description={ {intl.formatMessage({ @@ -350,6 +359,7 @@ const AdvanceConfig: React.FC = (props) => { dataList={form.getFieldValue('backend_parameters') || []} onChange={handleBackendParametersChange} onBlur={handleBackendParametersOnBlur} + onDelete={handleDeleteBackendParameters} options={paramsConfig} description={ backendParamsTips && ( diff --git a/src/pages/llmodels/components/deploy-modal.tsx b/src/pages/llmodels/components/deploy-modal.tsx index 9f6102ad..2a76f6b5 100644 --- a/src/pages/llmodels/components/deploy-modal.tsx +++ b/src/pages/llmodels/components/deploy-modal.tsx @@ -79,8 +79,8 @@ const AddModal: FC = (props) => { handleShowCompatibleAlert, setWarningStatus, handleBackendChangeBefore, + cancelEvaluate, handleOnValuesChange, - checkTokenRef, warningStatus, submitAnyway } = useCheckCompatibility(); @@ -182,11 +182,17 @@ const AddModal: FC = (props) => { onCancel?.(); }, [onCancel]); - const handleOnOpen = useCallback(() => { + const handleOnOpen = () => { + console.log('handleOnOpen----------', props.source, props.deploymentType); if (props.deploymentType === 'modelFiles') { form.current?.form?.setFieldsValue({ ...props.initialValues }); + handleOnValuesChange?.({ + changedValues: {}, + allValues: props.initialValues, + source: source + }); } else { const backend = source === modelSourceMap.ollama_library_value @@ -194,15 +200,14 @@ const AddModal: FC = (props) => { : backendOptionsMap.vllm; form.current?.setFieldValue?.('backend', backend); } - }, [source, props.initialValues, props.deploymentType]); + }; useEffect(() => { - if (!open) { - return; - } else { + if (open) { handleOnOpen(); + } else { + cancelEvaluate(); } - return () => { setSelectedModel({}); setWarningStatus({ @@ -210,9 +215,8 @@ const AddModal: FC = (props) => { title: '', message: [] }); - checkTokenRef.current?.cancel(); }; - }, [open, handleOnOpen]); + }, [open]); return ( { const cancelEvaluate = () => { checkTokenRef.current?.cancel(); checkTokenRef.current = null; + cacheFormValuesRef.current = {}; }; useEffect(() => { return () => { - checkTokenRef.current?.cancel(); - checkTokenRef.current = null; + cancelEvaluate(); }; }, []);