From 44d93de9e9e3526accd98ee7891a29534f0ed1d5 Mon Sep 17 00:00:00 2001 From: "lihao.ylh" Date: Tue, 10 Aug 2021 14:14:14 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E9=80=9A=E8=BF=87=20ref=20=E8=8E=B7=E5=8F=96=E5=88=B0=20dom=20?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/utils/react-find-dom-nodes.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/react-simulator-renderer/src/utils/react-find-dom-nodes.ts b/packages/react-simulator-renderer/src/utils/react-find-dom-nodes.ts index 36aa3bfb2..a00f12e91 100644 --- a/packages/react-simulator-renderer/src/utils/react-find-dom-nodes.ts +++ b/packages/react-simulator-renderer/src/utils/react-find-dom-nodes.ts @@ -29,6 +29,11 @@ export function reactFindDOMNodes(elem: ReactInstance | null): Array = []; const fiberNode = (elem as any)[FIBER_KEY]; - elementsFromFiber(fiberNode.child, elements); - return elements.length > 0 ? elements : [findDOMNode(elem)]; + elementsFromFiber(fiberNode?.child, elements); + if (elements.length > 0) return elements; + try { + return [findDOMNode(elem)]; + } catch (e) { + return null; + } } From a68eaf902f8860c673f51220b01ecb6de5371be8 Mon Sep 17 00:00:00 2001 From: "lihao.ylh" Date: Fri, 13 Aug 2021 14:58:19 +0800 Subject: [PATCH 2/3] =?UTF-8?q?refactor:=20=E9=99=90=E5=88=B6=E5=BC=95?= =?UTF-8?q?=E6=93=8E=20init=20=E5=8F=AA=E8=83=BD=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E4=B8=80=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/engine/src/engine-core.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/engine/src/engine-core.ts b/packages/engine/src/engine-core.ts index cc07579bb..4c6776f4a 100644 --- a/packages/engine/src/engine-core.ts +++ b/packages/engine/src/engine-core.ts @@ -175,7 +175,10 @@ plugins.register((ctx: ILowCodePluginContext) => { }, }; }); +let engineInited = false; export async function init(container?: HTMLElement, options?: EngineOptions) { + if (engineInited) return; + engineInited = true; let engineOptions = null; let engineContainer = null; if (isPlainObject(container)) { From 87b57ab4f1edee7b2efffab132f39d0049a6d027 Mon Sep 17 00:00:00 2001 From: "lihao.ylh" Date: Fri, 13 Aug 2021 11:16:37 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=88=87=E6=8D=A2=E8=8A=82=E7=82=B9=E6=97=B6,=20?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=8C=BAtab=E6=98=AF=E5=90=A6=E5=81=9C?= =?UTF-8?q?=E7=95=99=E5=9C=A8=E5=8E=9F=E4=BD=8D=E7=BD=AE,=20=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=9B=9E=E5=88=B0=E7=AC=AC=E4=B8=80=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor-core/src/config.ts | 4 ++++ .../src/components/settings/settings-primary-pane.tsx | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/editor-core/src/config.ts b/packages/editor-core/src/config.ts index 398b7b7fe..f82db6d53 100644 --- a/packages/editor-core/src/config.ts +++ b/packages/editor-core/src/config.ts @@ -55,6 +55,10 @@ export interface EngineOptions { * 打开画布的锁定操作,默认值:false */ enableCanvasLock: boolean; + /** + * 当选中节点切换时,是否停留在相同的设置 tab 上,默认值:false + */ + stayOnTheSameSettingTab: boolean; /** * Vision-polyfill settings */ diff --git a/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx b/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx index c95f3e7d1..a3da762aa 100644 --- a/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx +++ b/packages/editor-skeleton/src/components/settings/settings-primary-pane.tsx @@ -1,6 +1,6 @@ import React, { Component } from 'react'; import { Tab, Breadcrumb } from '@alifd/next'; -import { Title, observer, Editor, obx, globalContext } from '@ali/lowcode-editor-core'; +import { Title, observer, Editor, obx, globalContext, engineConfig } from '@ali/lowcode-editor-core'; import { Node, isSettingField, SettingField, Designer } from '@ali/lowcode-designer'; import { SettingsMain } from './main'; import { SettingsPane } from './settings-pane'; @@ -24,7 +24,9 @@ export class SettingsPrimaryPane extends Component<{ editor: Editor; config: any this.setShouldIgnoreRoot(); this.props.editor.on('designer.selection.change', () => { - this._activeKey = null; + if (!engineConfig.get('stayOnTheSameSettingTab', false)) { + this._activeKey = null; + } }); }