From a08e96adaed84d2765424538eca69e237a0178d6 Mon Sep 17 00:00:00 2001 From: Junyi Date: Sat, 6 Apr 2024 15:30:21 +0800 Subject: [PATCH] fix(plugin-formula-field): fix component context (#3937) --- .../plugin-formula-field/src/client/index.tsx | 10 +++++++-- .../{FormulaFieldProvider.tsx => scopes.tsx} | 22 ++----------------- 2 files changed, 10 insertions(+), 22 deletions(-) rename packages/plugins/@nocobase/plugin-formula-field/src/client/{FormulaFieldProvider.tsx => scopes.tsx} (55%) diff --git a/packages/plugins/@nocobase/plugin-formula-field/src/client/index.tsx b/packages/plugins/@nocobase/plugin-formula-field/src/client/index.tsx index 083d9fe5df..93bafce59b 100644 --- a/packages/plugins/@nocobase/plugin-formula-field/src/client/index.tsx +++ b/packages/plugins/@nocobase/plugin-formula-field/src/client/index.tsx @@ -1,11 +1,17 @@ import { Plugin } from '@nocobase/client'; -import { FormulaFieldProvider } from './FormulaFieldProvider'; +import { Formula } from './components'; +import { renderExpressionDescription } from './scopes'; import { FormulaFieldInterface } from './interfaces/formula'; import { FormulaComponentFieldSettings } from './FormulaComponentFieldSettings'; export class FormulaFieldPlugin extends Plugin { async load() { - this.app.use(FormulaFieldProvider); + this.app.addComponents({ + Formula, + }); + this.app.addScopes({ + renderExpressionDescription, + }); this.app.dataSourceManager.addFieldInterfaces([FormulaFieldInterface]); this.app.schemaSettingsManager.add(FormulaComponentFieldSettings); } diff --git a/packages/plugins/@nocobase/plugin-formula-field/src/client/FormulaFieldProvider.tsx b/packages/plugins/@nocobase/plugin-formula-field/src/client/scopes.tsx similarity index 55% rename from packages/plugins/@nocobase/plugin-formula-field/src/client/FormulaFieldProvider.tsx rename to packages/plugins/@nocobase/plugin-formula-field/src/client/scopes.tsx index 43b0103723..06dacd7b33 100644 --- a/packages/plugins/@nocobase/plugin-formula-field/src/client/FormulaFieldProvider.tsx +++ b/packages/plugins/@nocobase/plugin-formula-field/src/client/scopes.tsx @@ -1,11 +1,10 @@ -import { css, i18n, SchemaComponentOptions } from '@nocobase/client'; +import { css, i18n } from '@nocobase/client'; import { Evaluator, evaluators } from '@nocobase/evaluators/client'; import { Registry } from '@nocobase/utils/client'; import React from 'react'; -import { Formula } from './components'; import { NAMESPACE } from './locale'; -function renderExpressionDescription(key: string) { +export function renderExpressionDescription(key: string) { const engine = (evaluators as Registry).get(key); return engine?.link ? ( @@ -28,20 +27,3 @@ function renderExpressionDescription(key: string) { ) : null; } - -export const FormulaFieldProvider = React.memo((props) => { - return ( - - {props.children} - - ); -}); -FormulaFieldProvider.displayName = 'FormulaFieldProvider';