mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-08-05 07:10:29 +08:00
Fix: Resolved issue where the default model could not be deleted. (#17755)
This commit is contained in:
@@ -115,6 +115,24 @@ interface DynamicFormProps<T extends FieldValues> {
|
||||
// updatedField: Partial<FormFieldConfig>,
|
||||
// ) => void;
|
||||
labelClassName?: string;
|
||||
/**
|
||||
* Options forwarded to `form.reset()` when `defaultValues` change.
|
||||
* Pass `{ keepDirtyValues: true }` to preserve user edits during
|
||||
* background refetches / lazy detail loads. Defaults to `{}`
|
||||
* (hard reset) to preserve the original behavior for existing
|
||||
* consumers.
|
||||
*/
|
||||
resetOptions?: {
|
||||
keepValues?: boolean;
|
||||
keepDefaultValues?: boolean;
|
||||
keepErrors?: boolean;
|
||||
keepDirty?: boolean;
|
||||
keepDirtyValues?: boolean;
|
||||
keepIsSubmitted?: boolean;
|
||||
keepTouched?: boolean;
|
||||
keepIsValid?: boolean;
|
||||
keepSubmitCount?: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
// Form ref interface
|
||||
@@ -643,6 +661,7 @@ const DynamicForm = {
|
||||
defaultValues: formDefaultValues = {} as DefaultValues<T>,
|
||||
// onFieldUpdate,
|
||||
labelClassName,
|
||||
resetOptions,
|
||||
}: DynamicFormProps<T>,
|
||||
ref: React.Ref<any>,
|
||||
) => {
|
||||
@@ -876,12 +895,15 @@ const DynamicForm = {
|
||||
(form as any).filterActiveValues = filterActiveValues;
|
||||
useEffect(() => {
|
||||
if (formDefaultValues && Object.keys(formDefaultValues).length > 0) {
|
||||
form.reset({
|
||||
...generateDefaultValues(fields),
|
||||
...formDefaultValues,
|
||||
});
|
||||
form.reset(
|
||||
{
|
||||
...generateDefaultValues(fields),
|
||||
...formDefaultValues,
|
||||
},
|
||||
resetOptions,
|
||||
);
|
||||
}
|
||||
}, [form, formDefaultValues, fields]);
|
||||
}, [form, formDefaultValues, fields, resetOptions]);
|
||||
|
||||
// Submit handler
|
||||
// const handleSubmit = form.handleSubmit(onSubmit);
|
||||
|
||||
@@ -73,6 +73,7 @@ export function DraftModeCard({
|
||||
onSubmit={() => undefined}
|
||||
defaultValues={formDefaultValues}
|
||||
labelClassName="font-normal"
|
||||
resetOptions={{ keepDirtyValues: true }}
|
||||
/>
|
||||
|
||||
{providerName === LLMFactory.AIMLAPI && (
|
||||
|
||||
@@ -190,12 +190,13 @@ export function SavedModeCard({
|
||||
<CollapsibleContent forceMount className="data-[state=closed]:hidden">
|
||||
<div className="pb-4 flex flex-col gap-4">
|
||||
<DynamicForm.Root
|
||||
key={`${providerName}-${instanceName}-false-${instanceDetailsLoaded ? 'loaded' : 'pending'}`}
|
||||
key={`${providerName}-${instanceName}-false`}
|
||||
ref={formRef as RefObject<DynamicFormRef>}
|
||||
fields={formFields}
|
||||
onSubmit={() => undefined}
|
||||
defaultValues={formDefaultValues}
|
||||
labelClassName="font-normal"
|
||||
resetOptions={{ keepDirtyValues: true }}
|
||||
/>
|
||||
|
||||
<div className="pt-3">
|
||||
|
||||
@@ -92,7 +92,6 @@ function SystemSetting() {
|
||||
async (field: string, value: string) => {
|
||||
const modelType = FieldToModelType[field];
|
||||
if (!modelType) return;
|
||||
if (!value) return;
|
||||
const parsed = parseModelValue(value);
|
||||
if (parsed) {
|
||||
await setDefaultModel({ ...parsed, model_type: modelType });
|
||||
|
||||
Reference in New Issue
Block a user