diff --git a/package.json b/package.json index c09402156..546b0c1f8 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,8 @@ "react-router": "^6.11.2", "react": "^18.0.0", "react-dom": "^18.0.0", - "nwsapi": "2.2.7" + "nwsapi": "2.2.7", + "antd": "5.12.8" }, "config": { "ghooks": { diff --git a/packages/core/app/client/public/global.css b/packages/core/app/client/public/global.css index 3c9080aa7..3933d9566 100644 --- a/packages/core/app/client/public/global.css +++ b/packages/core/app/client/public/global.css @@ -61,11 +61,3 @@ body a:active { .ant-btn-link:active { color: var(--colorPrimaryTextActive); } - -/* fix https://nocobase.height.app/T-2838 */ -/* fix https://nocobase.height.app/T-2797 */ -/* fix https://nocobase.height.app/T-2868 */ -/* antd 组件的层级有问题,有的弹窗是 1000 有的是 1200,会导致弹窗被覆盖的问题。弹窗这里应该使用同一个值,是比较合理的 */ -.ant-modal-wrap, .ant-modal-mask, .ant-drawer { - z-index: 1150 !important; -} diff --git a/packages/core/client/package.json b/packages/core/client/package.json index 325da6bec..5c88379d8 100644 --- a/packages/core/client/package.json +++ b/packages/core/client/package.json @@ -29,7 +29,7 @@ "@nocobase/sdk": "0.18.0-alpha.9", "@nocobase/utils": "0.18.0-alpha.9", "ahooks": "^3.7.2", - "antd": "^5.12.2", + "antd": "^5.12.8", "antd-style": "3.4.5", "axios": "^0.26.1", "classnames": "^2.3.1", diff --git a/packages/core/client/src/application/schema-initializer/SchemaInitializer.tsx b/packages/core/client/src/application/schema-initializer/SchemaInitializer.tsx index 386f541be..5850aa48a 100644 --- a/packages/core/client/src/application/schema-initializer/SchemaInitializer.tsx +++ b/packages/core/client/src/application/schema-initializer/SchemaInitializer.tsx @@ -1,4 +1,4 @@ -import { ButtonProps } from 'antd'; +import type { ButtonProps } from 'antd'; import { SchemaInitializerItemType, SchemaInitializerItemTypeWithoutName, SchemaInitializerOptions } from './types'; export class SchemaInitializer { diff --git a/packages/core/client/src/global-theme/type.ts b/packages/core/client/src/global-theme/type.ts index 40779b727..b4a7b90d7 100644 --- a/packages/core/client/src/global-theme/type.ts +++ b/packages/core/client/src/global-theme/type.ts @@ -1,5 +1,4 @@ -import { MappingAlgorithm } from 'antd-style'; -import { OverrideToken } from 'antd/es/theme/interface'; +import type { ThemeConfig as _ThemeConfig } from 'antd'; import { AliasToken } from 'antd/es/theme/internal'; export interface CustomToken extends AliasToken { @@ -26,11 +25,7 @@ export interface CustomToken extends AliasToken { colorBorderSettingsHover: string; } -export interface ThemeConfig { +export interface ThemeConfig extends _ThemeConfig { name?: string; token?: Partial; - components?: OverrideToken; - algorithm?: MappingAlgorithm | MappingAlgorithm[]; - hashed?: boolean; - inherit?: boolean; } diff --git a/packages/core/client/src/modules/table/__e2e__/schemaInitializer.test.ts b/packages/core/client/src/modules/table/__e2e__/schemaInitializer.test.ts index 8b8e3d27f..6f9f016f3 100644 --- a/packages/core/client/src/modules/table/__e2e__/schemaInitializer.test.ts +++ b/packages/core/client/src/modules/table/__e2e__/schemaInitializer.test.ts @@ -98,9 +98,13 @@ test.describe('configure columns', () => { await page.getByRole('menuitem', { name: 'One to one (has one)' }).first().click(); await page.getByRole('menuitem', { name: 'Many to one' }).first().click(); await expect(page.getByRole('menuitem', { name: 'ID', exact: true }).getByRole('switch')).toBeChecked(); - await expect(page.getByRole('menuitem', { name: 'One to one (belongs to)' }).getByRole('switch')).toBeChecked(); - await expect(page.getByRole('menuitem', { name: 'One to one (has one)' }).getByRole('switch')).toBeChecked(); - await expect(page.getByRole('menuitem', { name: 'Many to one' }).getByRole('switch')).toBeChecked(); + await expect( + page.getByRole('menuitem', { name: 'One to one (belongs to)' }).first().getByRole('switch'), + ).toBeChecked(); + await expect( + page.getByRole('menuitem', { name: 'One to one (has one)' }).first().getByRole('switch'), + ).toBeChecked(); + await expect(page.getByRole('menuitem', { name: 'Many to one' }).first().getByRole('switch')).toBeChecked(); await page.mouse.move(300, 0); await expect(page.getByRole('button', { name: 'ID', exact: true })).toBeVisible(); await expect(page.getByRole('button', { name: 'One to one (belongs to)', exact: true })).toBeVisible(); @@ -114,9 +118,13 @@ test.describe('configure columns', () => { await page.getByRole('menuitem', { name: 'One to one (has one)' }).first().click(); await page.getByRole('menuitem', { name: 'Many to one' }).first().click(); await expect(page.getByRole('menuitem', { name: 'ID', exact: true }).getByRole('switch')).not.toBeChecked(); - await expect(page.getByRole('menuitem', { name: 'One to one (belongs to)' }).getByRole('switch')).not.toBeChecked(); - await expect(page.getByRole('menuitem', { name: 'One to one (has one)' }).getByRole('switch')).not.toBeChecked(); - await expect(page.getByRole('menuitem', { name: 'Many to one' }).getByRole('switch')).not.toBeChecked(); + await expect( + page.getByRole('menuitem', { name: 'One to one (belongs to)' }).first().getByRole('switch'), + ).not.toBeChecked(); + await expect( + page.getByRole('menuitem', { name: 'One to one (has one)' }).first().getByRole('switch'), + ).not.toBeChecked(); + await expect(page.getByRole('menuitem', { name: 'Many to one' }).first().getByRole('switch')).not.toBeChecked(); await page.mouse.move(300, 0); await expect(page.getByRole('button', { name: 'ID', exact: true })).not.toBeVisible(); await expect(page.getByRole('button', { name: 'One to one (belongs to)', exact: true })).not.toBeVisible(); diff --git a/packages/core/client/src/schema-component/antd/color-select/__tests__/color-select.test.tsx b/packages/core/client/src/schema-component/antd/color-select/__tests__/color-select.test.tsx index b08c86950..172c677a8 100644 --- a/packages/core/client/src/schema-component/antd/color-select/__tests__/color-select.test.tsx +++ b/packages/core/client/src/schema-component/antd/color-select/__tests__/color-select.test.tsx @@ -14,24 +14,6 @@ describe('ColorSelect', () => { expect(screen.getByText('Volcano')).toBeInTheDocument(); - expect(screen.getByText('Orange')).toBeInTheDocument(); - - expect(screen.getByText('Gold')).toBeInTheDocument(); - - expect(screen.getByText('Lime')).toBeInTheDocument(); - - expect(screen.getByText('Green')).toBeInTheDocument(); - - expect(screen.getByText('Cyan')).toBeInTheDocument(); - - expect(screen.getByText('Blue')).toBeInTheDocument(); - - expect(screen.getByText('Geek blue')).toBeInTheDocument(); - - expect(screen.getByText('Purple')).toBeInTheDocument(); - - expect(screen.getByText('Default')).toBeInTheDocument(); - // select red fireEvent.click(screen.getByText('Red')); expect(screen.getAllByText('Red').length).toBe(3); diff --git a/packages/core/client/src/schema-component/antd/form-dialog/index.tsx b/packages/core/client/src/schema-component/antd/form-dialog/index.tsx index 74384d887..0ef28f519 100644 --- a/packages/core/client/src/schema-component/antd/form-dialog/index.tsx +++ b/packages/core/client/src/schema-component/antd/form-dialog/index.tsx @@ -6,7 +6,7 @@ import { Modal, ModalProps, ThemeConfig } from 'antd'; import React, { Fragment, useLayoutEffect, useRef, useState } from 'react'; import { createPortal } from 'react-dom'; import { GlobalThemeProvider } from '../../../global-theme'; -import { createPortalProvider, createPortalRoot, loading, usePrefixCls } from '../__builtins__'; +import { createPortalProvider, createPortalRoot, loading, usePrefixCls, useToken } from '../__builtins__'; type FormDialogRenderer = React.ReactElement | ((form: Form) => React.ReactElement); @@ -87,27 +87,35 @@ export function FormDialog(title: any, id: any, renderer?: any, theme?: any): IF return ( - {() => ( - { - if (modal?.onCancel?.(e) !== false) { - reject?.(); - } - }} - onOk={async (e) => { - if (modal?.onOk?.(e) !== false) { - resolve?.(); - } - }} - > - - - - - )} + {() => { + // eslint-disable-next-line react-hooks/rules-of-hooks + const { token } = useToken(); + + return ( + { + if (modal?.onCancel?.(e) !== false) { + reject?.(); + } + }} + onOk={async (e) => { + if (modal?.onOk?.(e) !== false) { + resolve?.(); + } + }} + > + + + + + ); + }} ); diff --git a/packages/plugins/@nocobase/plugin-action-bulk-edit/src/client/BulkEditFormItemInitializers.tsx b/packages/plugins/@nocobase/plugin-action-bulk-edit/src/client/BulkEditFormItemInitializers.tsx index 4472dba4c..8b134ee4f 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-edit/src/client/BulkEditFormItemInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-action-bulk-edit/src/client/BulkEditFormItemInitializers.tsx @@ -1,7 +1,7 @@ import { SchemaInitializer, gridRowColWrap } from '@nocobase/client'; import { useCustomBulkEditFormItemInitializerFields } from './utils'; -export const BulkEditFormItemInitializers = new SchemaInitializer({ +export const BulkEditFormItemInitializers: SchemaInitializer = new SchemaInitializer({ name: 'BulkEditFormItemInitializers', wrap: gridRowColWrap, icon: 'SettingOutlined', diff --git a/packages/plugins/@nocobase/plugin-action-bulk-edit/src/client/CreateFormBulkEditBlockInitializers.tsx b/packages/plugins/@nocobase/plugin-action-bulk-edit/src/client/CreateFormBulkEditBlockInitializers.tsx index 32495a6ee..8fcc70dcc 100644 --- a/packages/plugins/@nocobase/plugin-action-bulk-edit/src/client/CreateFormBulkEditBlockInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-action-bulk-edit/src/client/CreateFormBulkEditBlockInitializers.tsx @@ -1,6 +1,6 @@ import { SchemaInitializer, gridRowColWrap } from '@nocobase/client'; -export const CreateFormBulkEditBlockInitializers = new SchemaInitializer({ +export const CreateFormBulkEditBlockInitializers: SchemaInitializer = new SchemaInitializer({ name: 'CreateFormBulkEditBlockInitializers', wrap: gridRowColWrap, title: '{{t("Add block")}}', diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/client/initializers/AuditLogsTableActionInitializers.tsx b/packages/plugins/@nocobase/plugin-audit-logs/src/client/initializers/AuditLogsTableActionInitializers.tsx index f76c49e8f..2fe57c478 100644 --- a/packages/plugins/@nocobase/plugin-audit-logs/src/client/initializers/AuditLogsTableActionInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-audit-logs/src/client/initializers/AuditLogsTableActionInitializers.tsx @@ -1,7 +1,7 @@ import { SchemaInitializer } from '@nocobase/client'; // 操作记录表格操作配置 -export const auditLogsTableActionInitializers = new SchemaInitializer({ +export const auditLogsTableActionInitializers: SchemaInitializer = new SchemaInitializer({ name: 'AuditLogsTableActionInitializers', title: "{{t('Configure actions')}}", icon: 'SettingOutlined', diff --git a/packages/plugins/@nocobase/plugin-audit-logs/src/client/initializers/AuditLogsTableColumnInitializers.tsx b/packages/plugins/@nocobase/plugin-audit-logs/src/client/initializers/AuditLogsTableColumnInitializers.tsx index 5a15a2c91..d285ca29e 100644 --- a/packages/plugins/@nocobase/plugin-audit-logs/src/client/initializers/AuditLogsTableColumnInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-audit-logs/src/client/initializers/AuditLogsTableColumnInitializers.tsx @@ -44,7 +44,7 @@ const AssociatedFields = () => { return {schema}; }; -export const auditLogsTableColumnInitializers = new SchemaInitializer({ +export const auditLogsTableColumnInitializers: SchemaInitializer = new SchemaInitializer({ name: 'AuditLogsTableColumnInitializers', insertPosition: 'beforeEnd', icon: 'SettingOutlined', diff --git a/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/initializers/CalendarActionInitializers.tsx b/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/initializers/CalendarActionInitializers.tsx index 301c29a40..15649f1a8 100644 --- a/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/initializers/CalendarActionInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/initializers/CalendarActionInitializers.tsx @@ -2,7 +2,7 @@ import { SchemaInitializer, useCollection } from '@nocobase/client'; import { generateNTemplate } from '../../../locale'; // 日历的操作配置 -export const CalendarActionInitializers = new SchemaInitializer({ +export const CalendarActionInitializers: SchemaInitializer = new SchemaInitializer({ title: generateNTemplate('Configure actions'), icon: 'SettingOutlined', name: 'CalendarActionInitializers', diff --git a/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/initializers/CalendarFormActionInitializers.tsx b/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/initializers/CalendarFormActionInitializers.tsx index 82ea03dc8..9e04bfc0e 100644 --- a/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/initializers/CalendarFormActionInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-calendar/src/client/schema-initializer/initializers/CalendarFormActionInitializers.tsx @@ -2,7 +2,7 @@ import { SchemaInitializer, useCollection } from '@nocobase/client'; import { generateNTemplate } from '../../../locale'; // 表单的操作配置 -export const CalendarFormActionInitializers = new SchemaInitializer({ +export const CalendarFormActionInitializers: SchemaInitializer = new SchemaInitializer({ title: generateNTemplate('Configure actions'), name: 'CalendarFormActionInitializers', icon: 'SettingOutlined', diff --git a/packages/plugins/@nocobase/plugin-collection-manager/src/client/__e2e__/fields/attachment/schemaSettings.test.ts b/packages/plugins/@nocobase/plugin-collection-manager/src/client/__e2e__/fields/attachment/schemaSettings.test.ts index eab640f53..d6fc5b61e 100644 --- a/packages/plugins/@nocobase/plugin-collection-manager/src/client/__e2e__/fields/attachment/schemaSettings.test.ts +++ b/packages/plugins/@nocobase/plugin-collection-manager/src/client/__e2e__/fields/attachment/schemaSettings.test.ts @@ -45,7 +45,11 @@ test.describe('form item & create form', () => { .hover(); }, expectEditable: async () => { - await expect(page.getByRole('button', { name: 'plus Upload' })).toBeVisible(); + await expect( + page + .getByLabel('block-item-CollectionField-general-form-general.attachment-attachment') + .locator('.ant-upload-select'), + ).toBeVisible(); }, expectReadonly: async () => { await expect(page.getByRole('button', { name: 'plus Upload' })).not.toBeVisible(); diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/client/block/ChartBlockInitializer.tsx b/packages/plugins/@nocobase/plugin-data-visualization/src/client/block/ChartBlockInitializer.tsx index bf6cc0bfd..8e88b4fce 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/client/block/ChartBlockInitializer.tsx +++ b/packages/plugins/@nocobase/plugin-data-visualization/src/client/block/ChartBlockInitializer.tsx @@ -1,4 +1,4 @@ -import { LineChartOutlined, BarChartOutlined } from '@ant-design/icons'; +import { BarChartOutlined, LineChartOutlined } from '@ant-design/icons'; import { uid } from '@formily/shared'; import { DataBlockInitializer, @@ -11,8 +11,8 @@ import { } from '@nocobase/client'; import React, { useContext } from 'react'; import { ChartConfigContext } from '../configure'; -import { lang } from '../locale'; import { FilterBlockInitializer } from '../filter'; +import { lang } from '../locale'; const ChartInitializer = () => { const { setVisible, setCurrent } = useContext(ChartConfigContext); @@ -46,7 +46,7 @@ const ChartInitializer = () => { ); }; -export const chartInitializers = new SchemaInitializer({ +export const chartInitializers: SchemaInitializer = new SchemaInitializer({ name: 'ChartInitializers', icon: 'PlusOutlined', title: '{{t("Add block")}}', diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/client/filter/FilterActionInitializers.tsx b/packages/plugins/@nocobase/plugin-data-visualization/src/client/filter/FilterActionInitializers.tsx index 96d135d96..2b28cb5df 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/client/filter/FilterActionInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-data-visualization/src/client/filter/FilterActionInitializers.tsx @@ -1,3 +1,4 @@ +import { DownOutlined } from '@ant-design/icons'; import { useForm } from '@formily/react'; import { Action, @@ -9,9 +10,8 @@ import { } from '@nocobase/client'; import React, { useContext } from 'react'; import { useChartFilter } from '../hooks/filter'; -import { ChartFilterContext } from './FilterProvider'; import { useChartsTranslation } from '../locale'; -import { DownOutlined } from '@ant-design/icons'; +import { ChartFilterContext } from './FilterProvider'; export const useChartFilterActionProps = () => { const { filter } = useChartFilter(); @@ -124,7 +124,7 @@ const ChartFilterCollapseInitializer = (props) => { return ; }; -export const chartFilterActionInitializers = new SchemaInitializer({ +export const chartFilterActionInitializers: SchemaInitializer = new SchemaInitializer({ name: 'ChartFilterActionInitializers', 'data-testid': 'configure-actions-button-of-chart-filter', title: '{{t("Configure actions")}}', diff --git a/packages/plugins/@nocobase/plugin-data-visualization/src/client/filter/FilterItemInitializers.tsx b/packages/plugins/@nocobase/plugin-data-visualization/src/client/filter/FilterItemInitializers.tsx index 31faa98f4..03812fd47 100644 --- a/packages/plugins/@nocobase/plugin-data-visualization/src/client/filter/FilterItemInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-data-visualization/src/client/filter/FilterItemInitializers.tsx @@ -1,3 +1,8 @@ +import { css, cx } from '@emotion/css'; +import { FormItem, FormLayout } from '@formily/antd-v5'; +import { Field, onFieldValueChange } from '@formily/core'; +import { Schema, SchemaOptionsContext, observer, useField, useFieldSchema, useForm } from '@formily/react'; +import { uid } from '@formily/shared'; import { ACLCollectionFieldProvider, BlockItem, @@ -13,19 +18,13 @@ import { useGlobalTheme, useSchemaInitializerItem, } from '@nocobase/client'; -import React, { memo, useCallback, useContext, useMemo } from 'react'; -import { lang, useChartsTranslation } from '../locale'; -import { Schema, SchemaOptionsContext, observer, useField, useFieldSchema, useForm } from '@formily/react'; import { useMemoizedFn } from 'ahooks'; -import { FormLayout, FormItem } from '@formily/antd-v5'; -import { uid } from '@formily/shared'; -import { useChartData, useChartFilter, useChartFilterSourceFields, useFieldComponents } from '../hooks/filter'; -import { Alert, Typography } from 'antd'; -import { getPropsSchemaByComponent } from './utils'; -import { Field, onFieldValueChange } from '@formily/core'; -import { css, cx } from '@emotion/css'; -import { ConfigProvider } from 'antd'; +import { Alert, ConfigProvider, Typography } from 'antd'; +import React, { memo, useCallback, useContext, useMemo } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; +import { useChartData, useChartFilter, useChartFilterSourceFields, useFieldComponents } from '../hooks/filter'; +import { lang, useChartsTranslation } from '../locale'; +import { getPropsSchemaByComponent } from './utils'; const { Paragraph, Text } = Typography; const FieldComponentProps: React.FC = observer((props) => { @@ -216,7 +215,7 @@ export const ChartFilterCustomItemInitializer: React.FC<{ return ; }); -export const chartFilterItemInitializers = new SchemaInitializer({ +export const chartFilterItemInitializers: SchemaInitializer = new SchemaInitializer({ name: 'ChartFilterItemInitializers', 'data-testid': 'configure-fields-button-of-chart-filter-item', wrap: gridRowColWrap, diff --git a/packages/plugins/@nocobase/plugin-gantt/src/client/GanttActionInitializers.tsx b/packages/plugins/@nocobase/plugin-gantt/src/client/GanttActionInitializers.tsx index 9eede9781..2e4a51d80 100644 --- a/packages/plugins/@nocobase/plugin-gantt/src/client/GanttActionInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-gantt/src/client/GanttActionInitializers.tsx @@ -1,7 +1,7 @@ import { useFieldSchema } from '@formily/react'; -import { useCollection, SchemaInitializer } from '@nocobase/client'; +import { SchemaInitializer, useCollection } from '@nocobase/client'; -export const GanttActionInitializers = new SchemaInitializer({ +export const GanttActionInitializers: SchemaInitializer = new SchemaInitializer({ name: 'GanttActionInitializers', title: "{{t('Configure actions')}}", icon: 'SettingOutlined', diff --git a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/client/GraphDrawPage.tsx b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/client/GraphDrawPage.tsx index cfa788584..33975ac7c 100644 --- a/packages/plugins/@nocobase/plugin-graph-collection-manager/src/client/GraphDrawPage.tsx +++ b/packages/plugins/@nocobase/plugin-graph-collection-manager/src/client/GraphDrawPage.tsx @@ -9,6 +9,7 @@ import { cx } from '@emotion/css'; import { SchemaOptionsContext } from '@formily/react'; import { APIClientProvider, + ApplicationContext, CollectionCategroriesContext, CollectionCategroriesProvider, CollectionManagerContext, @@ -19,12 +20,11 @@ import { Select, collection, useAPIClient, + useApp, useCollectionManager, useCompile, useCurrentAppInfo, useGlobalTheme, - useApp, - ApplicationContext, } from '@nocobase/client'; import { App, Button, ConfigProvider, Layout, Spin, Switch, Tooltip } from 'antd'; import dagre from 'dagre'; @@ -42,6 +42,7 @@ import { SelectCollectionsAction } from './components/SelectCollectionsAction'; import { SimpleNodeView } from './components/ViewNode'; import useStyles from './style'; import { + cleanGraphContainer, formatData, getChildrenCollections, getDiffEdge, @@ -49,7 +50,6 @@ import { getInheritCollections, getPopupContainer, useGCMTranslation, - cleanGraphContainer, } from './utils'; const { drop, groupBy, last, maxBy, minBy, take, uniq } = lodash; @@ -501,7 +501,7 @@ export const GraphDrawPage = React.memo(() => { interfaces={ctx.interfaces} > {/* TODO: 因为画布中的卡片是一次性注册进 Graph 的,这里的 theme 是存在闭包里的,因此当主题动态变更时,并不会触发卡片的重新渲染 */} - +
diff --git a/packages/plugins/@nocobase/plugin-kanban/src/client/Kanban.Card.Designer.tsx b/packages/plugins/@nocobase/plugin-kanban/src/client/Kanban.Card.Designer.tsx index e4c5e943b..915c47e40 100644 --- a/packages/plugins/@nocobase/plugin-kanban/src/client/Kanban.Card.Designer.tsx +++ b/packages/plugins/@nocobase/plugin-kanban/src/client/Kanban.Card.Designer.tsx @@ -1,20 +1,20 @@ import { MenuOutlined } from '@ant-design/icons'; import { ISchema, useFieldSchema } from '@formily/react'; import { uid } from '@formily/shared'; +import { + SchemaInitializer, + SchemaInitializerOpenModeSchemaItems, + createDesignable, + useAPIClient, + useAssociatedFormItemInitializerFields, + useDesignable, + useFormItemInitializerFields, + useGetAriaLabelOfDesigner, + useSchemaInitializerRender, +} from '@nocobase/client'; import { Space } from 'antd'; import React from 'react'; import { useTranslation } from 'react-i18next'; -import { - useAPIClient, - useSchemaInitializerRender, - SchemaInitializer, - createDesignable, - useDesignable, - useAssociatedFormItemInitializerFields, - useFormItemInitializerFields, - SchemaInitializerOpenModeSchemaItems, - useGetAriaLabelOfDesigner, -} from '@nocobase/client'; const gridRowColWrap = (schema: ISchema) => { schema['x-read-pretty'] = true; @@ -60,7 +60,7 @@ export const KanbanCardDesigner = () => { ); }; -export const kanbanCardInitializers = new SchemaInitializer({ +export const kanbanCardInitializers: SchemaInitializer = new SchemaInitializer({ name: 'KanbanCardInitializers', wrap: gridRowColWrap, useInsert() { diff --git a/packages/plugins/@nocobase/plugin-kanban/src/client/KanbanActionInitializers.tsx b/packages/plugins/@nocobase/plugin-kanban/src/client/KanbanActionInitializers.tsx index 0aad31f3e..e5c068f64 100644 --- a/packages/plugins/@nocobase/plugin-kanban/src/client/KanbanActionInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-kanban/src/client/KanbanActionInitializers.tsx @@ -1,6 +1,6 @@ -import { useCollection, SchemaInitializer } from '@nocobase/client'; +import { SchemaInitializer, useCollection } from '@nocobase/client'; -export const kanbanActionInitializers = new SchemaInitializer({ +export const kanbanActionInitializers: SchemaInitializer = new SchemaInitializer({ name: 'KanbanActionInitializers', title: "{{t('Configure actions')}}", icon: 'SettingOutlined', diff --git a/packages/plugins/@nocobase/plugin-map/src/client/block/MapActionInitializers.tsx b/packages/plugins/@nocobase/plugin-map/src/client/block/MapActionInitializers.tsx index d1bbf41fd..8c8517d65 100644 --- a/packages/plugins/@nocobase/plugin-map/src/client/block/MapActionInitializers.tsx +++ b/packages/plugins/@nocobase/plugin-map/src/client/block/MapActionInitializers.tsx @@ -1,7 +1,7 @@ import { SchemaInitializer, useCollection } from '@nocobase/client'; // 表格操作配置 -export const mapActionInitializers = new SchemaInitializer({ +export const mapActionInitializers: SchemaInitializer = new SchemaInitializer({ name: 'MapActionInitializers', title: "{{t('Configure actions')}}", icon: 'SettingOutlined', diff --git a/packages/plugins/@nocobase/plugin-mobile-client/src/client/core/schema/initializers/BlockInitializers.ts b/packages/plugins/@nocobase/plugin-mobile-client/src/client/core/schema/initializers/BlockInitializers.ts index c4b8a7fcc..47db07d90 100644 --- a/packages/plugins/@nocobase/plugin-mobile-client/src/client/core/schema/initializers/BlockInitializers.ts +++ b/packages/plugins/@nocobase/plugin-mobile-client/src/client/core/schema/initializers/BlockInitializers.ts @@ -1,7 +1,7 @@ import { SchemaInitializer, gridRowColWrap } from '@nocobase/client'; import { generateNTemplate } from '../../../locale'; -export const mBlockInitializers = new SchemaInitializer({ +export const mBlockInitializers: SchemaInitializer = new SchemaInitializer({ name: 'MBlockInitializers', title: '{{t("Add block")}}', icon: 'PlusOutlined', diff --git a/packages/plugins/@nocobase/plugin-sequence-field/src/client/sequence.tsx b/packages/plugins/@nocobase/plugin-sequence-field/src/client/sequence.tsx index 15d231a94..deb0f99bb 100644 --- a/packages/plugins/@nocobase/plugin-sequence-field/src/client/sequence.tsx +++ b/packages/plugins/@nocobase/plugin-sequence-field/src/client/sequence.tsx @@ -9,6 +9,7 @@ import { css, interfacesProperties, useCompile, + useToken, } from '@nocobase/client'; import { error } from '@nocobase/utils/client'; import { Button, Select } from 'antd'; @@ -216,11 +217,13 @@ export function RuleConfigForm() { const index = ArrayTable.useIndex(); const { type, options } = values.patterns[index]; const ruleType = RuleTypes[type]; + const { token } = useToken(); return ruleType?.fieldset ? (