fix(enableLink): fix error when enableLink is enabled

This commit is contained in:
Zeke Zhang 2024-12-04 22:09:59 +08:00
parent eb57d5325c
commit 6ef4e9608c
4 changed files with 15 additions and 20 deletions

View File

@ -9,6 +9,7 @@
import { useField, useFieldSchema } from '@formily/react';
import { useTranslation } from 'react-i18next';
import { useBlockContext, useOpenModeContext } from '../../../../';
import { SchemaSettings } from '../../../../application/schema-settings/SchemaSettings';
import { SchemaSettingsItemType } from '../../../../application/schema-settings/types';
import {
@ -17,8 +18,6 @@ import {
} from '../../../../schema-component/antd/table-v2/Table.Column.Decorator';
import { useDesignable } from '../../../../schema-component/hooks/useDesignable';
import { SchemaSettingOpenModeSchemaItems } from '../../../../schema-items';
import { useOpenModeContext } from '../../../../';
import { useBlockContext } from '../../../../';
export const ellipsisSettingsItem: SchemaSettingsItemType = {
name: 'ellipsis',
type: 'switch',
@ -100,7 +99,6 @@ export const enableLinkSettingsItem: SchemaSettingsItemType = {
},
},
});
dn.refresh();
},
};
},

View File

@ -16,7 +16,7 @@ import { SchemaSettings } from '../../../../application/schema-settings/SchemaSe
import { useFormBlockContext } from '../../../../block-provider/FormBlockProvider';
import { useCollectionManager_deprecated, useCollection_deprecated } from '../../../../collection-manager';
import { useFieldComponentName } from '../../../../common/useFieldComponentName';
import { useCollectionField } from '../../../../data-source';
import { useCollectionField, useDataBlockProps } from '../../../../data-source';
import { useRecord } from '../../../../record-provider';
import { removeNullCondition, useDesignable, useFieldModeOptions, useIsAddNewForm } from '../../../../schema-component';
import { isSubMode } from '../../../../schema-component/antd/association-field/util';
@ -34,7 +34,6 @@ import { SchemaSettingsSortingRule } from '../../../../schema-settings/SchemaSet
import { useIsShowMultipleSwitch } from '../../../../schema-settings/hooks/useIsShowMultipleSwitch';
import { useLocalVariables, useVariables } from '../../../../variables';
import { useOpenModeContext } from '../../../popup/OpenModeProvider';
import { useDataBlockProps } from '../../../../data-source';
import { enableLinkSettingsItem, openModeSettingsItem } from '../Input/inputComponentSettings';
const enableLink = {
@ -68,7 +67,6 @@ const enableLink = {
},
},
});
dn.refresh();
},
};
},

View File

@ -12,12 +12,12 @@ import { useField, useFieldSchema } from '@formily/react';
import { useTranslation } from 'react-i18next';
import { SchemaSettings } from '../../../../application/schema-settings/SchemaSettings';
import { useFieldComponentName } from '../../../../common/useFieldComponentName';
import { useCollectionField } from '../../../../data-source';
import { useDesignable, useFieldModeOptions, useIsAddNewForm } from '../../../../schema-component';
import { isSubMode } from '../../../../schema-component/antd/association-field/util';
import { useTitleFieldOptions } from '../../../../schema-component/antd/form-item/FormItem.Settings';
import { useColorFields } from '../../../../schema-component/antd/table-v2/Table.Column.Designer';
import { useColumnSchema } from '../../../../schema-component/antd/table-v2/Table.Column.Decorator';
import { useCollectionField } from '../../../../data-source';
import { useColorFields } from '../../../../schema-component/antd/table-v2/Table.Column.Designer';
const enableLink = {
name: 'enableLink',
@ -46,7 +46,6 @@ const enableLink = {
},
},
});
dn.refresh();
},
};
},

View File

@ -7,16 +7,16 @@
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import React, { useState, useCallback, useRef } from 'react';
import { RecursionField, useFieldSchema, useField } from '@formily/react';
import { useField, useFieldSchema } from '@formily/react';
import { cloneDeep } from 'lodash';
import { popupSchema } from './schema';
import { App } from 'antd';
import { useDesignable, useActionContext, SchemaComponentOptions, ActionContextProvider } from '../../';
import React, { useCallback, useRef, useState } from 'react';
import { ActionContextProvider, SchemaComponentOptions, useActionContext, useDesignable } from '../../';
import { PopupVisibleProvider } from '../../antd/page/PagePopups';
import { usePopupUtils } from '../../antd/page/pagePopupUtils';
import { popupSchema } from './schema';
import { CollectionProvider, useCollection } from '../../../data-source';
import { NocoBaseRecursionField } from '../../../formily/NocoBaseRecursionField';
export const useInsertSchema = () => {
const fieldSchema = useFieldSchema();
@ -35,6 +35,10 @@ export const useInsertSchema = () => {
return insert;
};
const filterProperties = (s) => {
return s['x-component'] === 'Action.Container';
};
// 高阶组件:用来包装每个组件并添加弹窗功能
function withPopupWrapper<T>(WrappedComponent: React.ComponentType<T>) {
return (props: T) => {
@ -59,8 +63,6 @@ function withPopupWrapper<T>(WrappedComponent: React.ComponentType<T>) {
};
const { setSubmitted } = ctx;
const { modal } = App.useApp();
const handleVisibleChange = useCallback(
(value: boolean): void => {
setVisible?.(value);
@ -84,13 +86,11 @@ function withPopupWrapper<T>(WrappedComponent: React.ComponentType<T>) {
>
<CollectionProvider name={collection.name}>
<SchemaComponentOptions>
<RecursionField
<NocoBaseRecursionField
onlyRenderProperties
basePath={field?.address}
schema={fieldSchema}
filterProperties={(s) => {
return s['x-component'] === 'Action.Container';
}}
filterProperties={filterProperties}
/>
</SchemaComponentOptions>
</CollectionProvider>