From 50bc2bd7c2e7c09ae183f50210cc73f305b6ea3d Mon Sep 17 00:00:00 2001 From: kangwei Date: Sat, 25 Apr 2020 15:17:51 +0800 Subject: [PATCH] fix dynamic setter --- packages/designer/src/designer/setting/setting-field.ts | 2 +- packages/designer/src/document/node/node.ts | 7 ++++--- .../src/setters/array-setter/index.tsx | 2 +- .../src/setters/mixed-setter/index.tsx | 4 ++-- .../src/setters/object-setter/index.tsx | 2 +- packages/react-simulator-renderer/src/renderer-view.tsx | 1 + packages/vision-polyfill/src/bundle/upgrade-metadata.ts | 1 - 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/designer/src/designer/setting/setting-field.ts b/packages/designer/src/designer/setting/setting-field.ts index 2560cfaca..2aa748480 100644 --- a/packages/designer/src/designer/setting/setting-field.ts +++ b/packages/designer/src/designer/setting/setting-field.ts @@ -21,7 +21,7 @@ export class SettingField extends SettingPropEntry implements SettingEntry { return null; } if (isDynamicSetter(this._setter)) { - return this._setter(this); + return this._setter.call(this,this); } return this._setter; } diff --git a/packages/designer/src/document/node/node.ts b/packages/designer/src/document/node/node.ts index 3cf491a19..391dcdd9d 100644 --- a/packages/designer/src/document/node/node.ts +++ b/packages/designer/src/document/node/node.ts @@ -150,10 +150,8 @@ export class Node { private transformProps(props: any): any { // FIXME! support PropsList - const x = this.document.designer.transformProps(props, this, TransformStage.Init); + return this.document.designer.transformProps(props, this, TransformStage.Init); // TODO: run transducers in metadata.experimental - console.info(x); - return x; } private initialChildren(children: any): NodeData[] { @@ -567,6 +565,9 @@ export class Node { getNode() { return this; } + getRoot() { + return this.document.rootNode; + } getProps() { return this.props; } diff --git a/packages/plugin-settings-pane/src/setters/array-setter/index.tsx b/packages/plugin-settings-pane/src/setters/array-setter/index.tsx index 19323d050..344bd8a0f 100644 --- a/packages/plugin-settings-pane/src/setters/array-setter/index.tsx +++ b/packages/plugin-settings-pane/src/setters/array-setter/index.tsx @@ -1,11 +1,11 @@ import { Component, Fragment } from 'react'; import { Icon, Button, Message } from '@alifd/next'; import { Title, SetterType, FieldConfig, SetterConfig } from '@ali/lowcode-globals'; -import { SettingField } from '../../settings/setting-field'; import { createSettingFieldView } from '../../settings/settings-pane'; import { PopupContext, PopupPipe } from '../../popup'; import Sortable from './sortable'; import './style.less'; +import { SettingField } from '@ali/lowcode-designer'; interface ArraySetterState { items: SettingField[]; diff --git a/packages/plugin-settings-pane/src/setters/mixed-setter/index.tsx b/packages/plugin-settings-pane/src/setters/mixed-setter/index.tsx index fe44df053..5217322c2 100644 --- a/packages/plugin-settings-pane/src/setters/mixed-setter/index.tsx +++ b/packages/plugin-settings-pane/src/setters/mixed-setter/index.tsx @@ -20,10 +20,10 @@ import { EmbedTip, isI18nData, } from '@ali/lowcode-globals'; -import { SettingField } from '../../settings/setting-field'; import { IconConvert } from '../../icons/convert'; import './style.less'; +import { SettingField } from '@ali/lowcode-designer'; export interface SetterItem { name: string; @@ -180,7 +180,7 @@ export default class MixedSetter extends Component<{ let setterProps: any = {}; let setterType: any; if (isDynamicSetter(setter)) { - setterType = setter(field); + setterType = setter.call(field, field); } else { setterType = setter; } diff --git a/packages/plugin-settings-pane/src/setters/object-setter/index.tsx b/packages/plugin-settings-pane/src/setters/object-setter/index.tsx index bebc01874..2f84c8adb 100644 --- a/packages/plugin-settings-pane/src/setters/object-setter/index.tsx +++ b/packages/plugin-settings-pane/src/setters/object-setter/index.tsx @@ -2,8 +2,8 @@ import { Component, Fragment } from 'react'; import { Icon, Button } from '@alifd/next'; import { Title, SetterType, FieldConfig } from '@ali/lowcode-globals'; import { createSettingFieldView } from '../../settings/settings-pane'; -import { SettingField } from '../../settings/setting-field'; import { PopupContext, PopupPipe } from '../../popup'; +import { SettingField } from '@ali/lowcode-designer'; import './style.less'; export default class ObjectSetter extends Component<{ diff --git a/packages/react-simulator-renderer/src/renderer-view.tsx b/packages/react-simulator-renderer/src/renderer-view.tsx index cf0617d28..4422d6b99 100644 --- a/packages/react-simulator-renderer/src/renderer-view.tsx +++ b/packages/react-simulator-renderer/src/renderer-view.tsx @@ -41,6 +41,7 @@ class Renderer extends Component<{ renderer: SimulatorRenderer }> { } render() { const { renderer } = this.props; + console.info(renderer.components) return (