mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-05-07 22:49:26 +08:00
Merge branch 'next' into develop
This commit is contained in:
commit
b5db91caf6
@ -18,6 +18,7 @@ export const useActionContext = () => {
|
|||||||
const ctx = useContext(ActionContext);
|
const ctx = useContext(ActionContext);
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { modal } = App.useApp();
|
const { modal } = App.useApp();
|
||||||
|
const form = useForm();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...ctx,
|
...ctx,
|
||||||
@ -31,6 +32,7 @@ export const useActionContext = () => {
|
|||||||
async onOk() {
|
async onOk() {
|
||||||
ctx.setFormValueChanged(false);
|
ctx.setFormValueChanged(false);
|
||||||
ctx.setVisible?.(false);
|
ctx.setVisible?.(false);
|
||||||
|
form?.reset?.();
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -15,13 +15,13 @@ import { uniqBy } from 'lodash';
|
|||||||
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
||||||
import { ResourceActionOptions, useRequest } from '../../../api-client';
|
import { ResourceActionOptions, useRequest } from '../../../api-client';
|
||||||
import { useCollection_deprecated, useCollectionManager_deprecated } from '../../../collection-manager';
|
import { useCollection_deprecated, useCollectionManager_deprecated } from '../../../collection-manager';
|
||||||
import { mergeFilter } from '../../../filter-provider/utils';
|
|
||||||
import { useCompile } from '../../hooks';
|
|
||||||
import { FieldNames, Select, SelectProps, defaultFieldNames } from '../select';
|
|
||||||
import { ReadPretty } from './ReadPretty';
|
|
||||||
import { useDataSourceHeaders } from '../../../data-source/utils';
|
|
||||||
import { useDataSourceKey } from '../../../data-source/data-source/DataSourceProvider';
|
import { useDataSourceKey } from '../../../data-source/data-source/DataSourceProvider';
|
||||||
|
import { useDataSourceHeaders } from '../../../data-source/utils';
|
||||||
|
import { mergeFilter } from '../../../filter-provider/utils';
|
||||||
import { withDynamicSchemaProps } from '../../../hoc/withDynamicSchemaProps';
|
import { withDynamicSchemaProps } from '../../../hoc/withDynamicSchemaProps';
|
||||||
|
import { useCompile } from '../../hooks';
|
||||||
|
import { defaultFieldNames, FieldNames, Select, SelectProps } from '../select';
|
||||||
|
import { ReadPretty } from './ReadPretty';
|
||||||
const EMPTY = 'N/A';
|
const EMPTY = 'N/A';
|
||||||
|
|
||||||
export type RemoteSelectProps<P = any> = SelectProps<P, any> & {
|
export type RemoteSelectProps<P = any> = SelectProps<P, any> & {
|
||||||
@ -234,10 +234,15 @@ const InternalRemoteSelect = withDynamicSchemaProps(
|
|||||||
return v != null ? (Array.isArray(v) ? v : [v]) : [];
|
return v != null ? (Array.isArray(v) ? v : [v]) : [];
|
||||||
}
|
}
|
||||||
const valueOptions =
|
const valueOptions =
|
||||||
(v != null && (Array.isArray(v) ? v : [{ ...v, [fieldNames.value]: v[fieldNames.value] || v }])) || [];
|
(v != null &&
|
||||||
|
(Array.isArray(v)
|
||||||
|
? v.map((item) => ({ ...item, [fieldNames.value]: item[fieldNames.value] || item }))
|
||||||
|
: [{ ...v, [fieldNames.value]: v[fieldNames.value] || v }])) ||
|
||||||
|
[];
|
||||||
const filtered = typeof optionFilter === 'function' ? data.data.filter(optionFilter) : data.data;
|
const filtered = typeof optionFilter === 'function' ? data.data.filter(optionFilter) : data.data;
|
||||||
return uniqBy(filtered.concat(valueOptions ?? []), fieldNames.value);
|
return uniqBy(filtered.concat(valueOptions ?? []), fieldNames.value);
|
||||||
}, [value, defaultValue, data?.data, fieldNames.value, optionFilter]);
|
}, [value, defaultValue, data?.data, fieldNames.value, optionFilter]);
|
||||||
|
|
||||||
const onDropdownVisibleChange = (visible) => {
|
const onDropdownVisibleChange = (visible) => {
|
||||||
setOpen(visible);
|
setOpen(visible);
|
||||||
searchData.current = null;
|
searchData.current = null;
|
||||||
@ -246,6 +251,7 @@ const InternalRemoteSelect = withDynamicSchemaProps(
|
|||||||
}
|
}
|
||||||
firstRun.current = true;
|
firstRun.current = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Select
|
<Select
|
||||||
open={open}
|
open={open}
|
||||||
|
@ -30,10 +30,12 @@ import { usersSchema, usersSettingsSchema } from './schemas/users';
|
|||||||
|
|
||||||
const useCancelActionProps = () => {
|
const useCancelActionProps = () => {
|
||||||
const { setVisible } = useActionContext();
|
const { setVisible } = useActionContext();
|
||||||
|
const form = useForm();
|
||||||
return {
|
return {
|
||||||
type: 'default',
|
type: 'default',
|
||||||
onClick() {
|
onClick() {
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
|
form.reset();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -63,6 +65,7 @@ const useSubmitActionProps = () => {
|
|||||||
await getDataBlockRequest()?.runAsync();
|
await getDataBlockRequest()?.runAsync();
|
||||||
message.success(t('Saved successfully'));
|
message.success(t('Saved successfully'));
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
|
form.reset();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user