From 7317f2fab2f9bf1a57217bb30ff664839f889d12 Mon Sep 17 00:00:00 2001 From: "xiaoxian.xlf" Date: Mon, 4 May 2020 17:29:45 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E5=9C=A8Transducer=E4=B8=AD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AF=B9MixedSetter=E7=9A=84=E6=94=AF?= =?UTF-8?q?=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/src/designer/setting/utils.js | 27 +++++++++++++++---- .../src/components/mixed-setter/index.tsx | 2 ++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/packages/designer/src/designer/setting/utils.js b/packages/designer/src/designer/setting/utils.js index b8f5bbdcc..d9e7e389c 100644 --- a/packages/designer/src/designer/setting/utils.js +++ b/packages/designer/src/designer/setting/utils.js @@ -1,12 +1,16 @@ +// all this file for polyfill vision logic + +import { isValidElement } from 'react'; + function getHotterFromSetter(setter) { return setter && (setter.Hotter || (setter.type && setter.type.Hotter)) || []; // eslint-disable-line } function getTransducerFromSetter(setter) { return setter && ( - setter.transducer || setter.Transducer - || (setter.type && (setter.type.transducer || setter.type.Transducer)) - ) || null; // eslint-disable-line + setter.transducer || setter.Transducer + || (setter.type && (setter.type.transducer || setter.type.Transducer)) + ) || null; // eslint-disable-line } function combineTransducer(transducer, arr, context) { @@ -23,9 +27,22 @@ function combineTransducer(transducer, arr, context) { export class Transducer { constructor(context, config) { + let { setter } = config; + + // 1. validElement + // 2. SetterConfig + // 3. SetterConfig[] + if (Array.isArray(setter)) { + setter = setter[0]; + } else if (isValidElement(setter) && setter.type.displayName === 'MixedSetter') { + setter = setter.props.setters[0]; + } else if (typeof setter === 'object' && setter.componentName === 'MixedSetter') { + setter = setter.props.setters[0]; + } + this.setterTransducer = combineTransducer( - getTransducerFromSetter(config.setter), - getHotterFromSetter(config.setter), + getTransducerFromSetter(setter), + getHotterFromSetter(setter), context, ); this.context = context; diff --git a/packages/editor-skeleton/src/components/mixed-setter/index.tsx b/packages/editor-skeleton/src/components/mixed-setter/index.tsx index 67e020925..1adafc6eb 100644 --- a/packages/editor-skeleton/src/components/mixed-setter/index.tsx +++ b/packages/editor-skeleton/src/components/mixed-setter/index.tsx @@ -115,6 +115,8 @@ export default class MixedSetter extends Component<{ className?: string; }> { private setters = nomalizeSetters(this.props.setters); + // set name ,used in setting Transducer + static displayName = 'MixedSetter'; @obx.ref private used?: string; @computed private getCurrentSetter() { const { field } = this.props; From 015b58a1e6c2fa706a2c85e370510a757350923a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E7=86=A0?= Date: Mon, 4 May 2020 17:34:24 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=F0=9F=90=9B=20=E6=B8=85=E7=90=86?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/demo/src/vision/index.ts | 35 ------------------------------- 1 file changed, 35 deletions(-) diff --git a/packages/demo/src/vision/index.ts b/packages/demo/src/vision/index.ts index 74175f7bd..baac29053 100644 --- a/packages/demo/src/vision/index.ts +++ b/packages/demo/src/vision/index.ts @@ -336,24 +336,6 @@ function initHistoryPane() { enablePageHistory: true, };; - // if (!historyConfigs) { - // return; - // } - - // if (historyConfigs === true) { - // historyConfigs = { - // enableRedoAndUndo: true, - // enablePageHistory: true, - // }; - // } - - // if (historyConfigs.enableRedoAndUndo === undefined) { - // historyConfigs.enableRedoAndUndo = true; - // } - // if (historyConfigs.enablePageHistory === undefined) { - // historyConfigs.enablePageHistory = true; - // } - const isDemoMode = false; const isEnvSupportsHistoryPane = true; const historyManager = PageHistoryManager.getManager(); @@ -362,19 +344,6 @@ function initHistoryPane() { console.log('PageHistoryManager.onOpenPane', historyManager.onOpenPane); // 历史撤销、重做以及唤起页面历史按钮 if (typeof HistoryPane === 'function') { - // const historyPane = { - // ...HistoryPane({ - // showPageHistory: - // isEnvSupportsHistoryPane - // // && this.app.isForm() - // && !isDemoMode, - // historyManager, - // historyConfigs, - // }), - // index: -940, - // }; - // console.log('aaaaaa', historyPane); - Panes.add(HistoryPane, { props : { showPageHistory: @@ -398,10 +367,6 @@ function initHistoryPane() { && !isDemoMode && isEnvSupportsHistoryPane ) { - console.log(1111, PageHistoryPane({ - historyManager: PageHistoryManager.getManager(), - app: {}, - })) Panes.add(PageHistoryPane, { props : { historyManager: {