mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-07-02 03:02:19 +08:00
fix: reset issue that reverts filter button title to default (#5635)
* fix: reset issue that reverts filter button title to default * fix: bug
This commit is contained in:
parent
b7495a7757
commit
586c515ff7
@ -21,6 +21,7 @@ import { useProps } from '../../hooks/useProps';
|
|||||||
import { Action, ActionProps } from '../action';
|
import { Action, ActionProps } from '../action';
|
||||||
import { DatePickerProvider } from '../date-picker/DatePicker';
|
import { DatePickerProvider } from '../date-picker/DatePicker';
|
||||||
import { StablePopover } from '../popover';
|
import { StablePopover } from '../popover';
|
||||||
|
import { useCompile } from '../../';
|
||||||
|
|
||||||
export const FilterActionContext = createContext<any>(null);
|
export const FilterActionContext = createContext<any>(null);
|
||||||
FilterActionContext.displayName = 'FilterActionContext';
|
FilterActionContext.displayName = 'FilterActionContext';
|
||||||
@ -50,6 +51,8 @@ export const FilterAction = withDynamicSchemaProps(
|
|||||||
const [visible, setVisible] = useState(false);
|
const [visible, setVisible] = useState(false);
|
||||||
const { designable, dn } = useDesignable();
|
const { designable, dn } = useDesignable();
|
||||||
const fieldSchema = useFieldSchema();
|
const fieldSchema = useFieldSchema();
|
||||||
|
const compile = useCompile();
|
||||||
|
|
||||||
const form = useMemo<Form>(() => props.form || createForm(), []);
|
const form = useMemo<Form>(() => props.form || createForm(), []);
|
||||||
|
|
||||||
// 新版 UISchema(1.0 之后)中已经废弃了 useProps,这里之所以继续保留是为了兼容旧版的 UISchema
|
// 新版 UISchema(1.0 之后)中已经废弃了 useProps,这里之所以继续保留是为了兼容旧版的 UISchema
|
||||||
@ -58,7 +61,6 @@ export const FilterAction = withDynamicSchemaProps(
|
|||||||
const onOpenChange = useCallback((visible: boolean): void => {
|
const onOpenChange = useCallback((visible: boolean): void => {
|
||||||
setVisible(visible);
|
setVisible(visible);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<FilterActionContext.Provider value={{ field, fieldSchema, designable, dn }}>
|
<FilterActionContext.Provider value={{ field, fieldSchema, designable, dn }}>
|
||||||
<Container
|
<Container
|
||||||
@ -99,7 +101,7 @@ export const FilterAction = withDynamicSchemaProps(
|
|||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
await form.reset();
|
await form.reset();
|
||||||
onReset?.(form.values);
|
onReset?.(form.values);
|
||||||
field.title = t('Filter');
|
field.title = compile(fieldSchema.title) || t('Filter');
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
@ -16,7 +16,7 @@ import { useBlockRequestContext } from '../../../block-provider';
|
|||||||
import { useCollectionManager_deprecated, useCollection_deprecated } from '../../../collection-manager';
|
import { useCollectionManager_deprecated, useCollection_deprecated } from '../../../collection-manager';
|
||||||
import { mergeFilter } from '../../../filter-provider/utils';
|
import { mergeFilter } from '../../../filter-provider/utils';
|
||||||
import { useDataLoadingMode } from '../../../modules/blocks/data-blocks/details-multi/setDataLoadingModeSettingsItem';
|
import { useDataLoadingMode } from '../../../modules/blocks/data-blocks/details-multi/setDataLoadingModeSettingsItem';
|
||||||
|
import { useCompile } from '../../';
|
||||||
export const useGetFilterOptions = () => {
|
export const useGetFilterOptions = () => {
|
||||||
const { getCollectionFields } = useCollectionManager_deprecated();
|
const { getCollectionFields } = useCollectionManager_deprecated();
|
||||||
const getFilterFieldOptions = useGetFilterFieldOptions();
|
const getFilterFieldOptions = useGetFilterFieldOptions();
|
||||||
@ -182,6 +182,8 @@ export const useFilterFieldProps = ({ options, service, params }) => {
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const field = useField<Field>();
|
const field = useField<Field>();
|
||||||
const dataLoadingMode = useDataLoadingMode();
|
const dataLoadingMode = useDataLoadingMode();
|
||||||
|
const fieldSchema = useFieldSchema();
|
||||||
|
const compile = useCompile();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
options,
|
options,
|
||||||
@ -205,7 +207,7 @@ export const useFilterFieldProps = ({ options, service, params }) => {
|
|||||||
if (items?.length) {
|
if (items?.length) {
|
||||||
field.title = t('{{count}} filter items', { count: items?.length || 0 });
|
field.title = t('{{count}} filter items', { count: items?.length || 0 });
|
||||||
} else {
|
} else {
|
||||||
field.title = t('Filter');
|
field.title = compile(fieldSchema.title) || t('Filter');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onReset() {
|
onReset() {
|
||||||
@ -222,8 +224,6 @@ export const useFilterFieldProps = ({ options, service, params }) => {
|
|||||||
{ filters },
|
{ filters },
|
||||||
];
|
];
|
||||||
|
|
||||||
field.title = t('Filter');
|
|
||||||
|
|
||||||
if (dataLoadingMode === 'manual') {
|
if (dataLoadingMode === 'manual') {
|
||||||
service.params = newParams;
|
service.params = newParams;
|
||||||
return service.mutate(undefined);
|
return service.mutate(undefined);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user