From 3f5b8a0d7957f891243b7472e1274400242e9b99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=81=B0?= <741315611@qq.com> Date: Tue, 27 Sep 2022 18:40:01 +0800 Subject: [PATCH 1/2] Fix: Add key prop for the container placeholder fix Each child in a list should have a unique "key" prop --- packages/react-simulator-renderer/src/renderer-view.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/react-simulator-renderer/src/renderer-view.tsx b/packages/react-simulator-renderer/src/renderer-view.tsx index 50c5481eea..599e3aad80 100644 --- a/packages/react-simulator-renderer/src/renderer-view.tsx +++ b/packages/react-simulator-renderer/src/renderer-view.tsx @@ -202,7 +202,8 @@ class Renderer extends Component<{ if ( !viewProps.dataSource && leaf?.isContainer() && - (children == null || (Array.isArray(children) && !children.length)) && + ( + = null || (Array.isArray(children) && !children.length)) && (!viewProps.style || Object.keys(viewProps.style).length === 0) ) { let defaultPlaceholder = '拖拽组件或模板到这里'; @@ -213,7 +214,7 @@ class Renderer extends Component<{ defaultPlaceholder = '锁定元素及子元素无法编辑'; } children = ( -
+
{viewProps.placeholder || defaultPlaceholder}
); From 727adcda2553d56c6719d523cb781cae6c1e088a Mon Sep 17 00:00:00 2001 From: "guxiaohui.gxh" Date: Sat, 17 Aug 2024 16:39:44 +0800 Subject: [PATCH 2/2] =?UTF-8?q?refactor(material-parser):=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E7=B1=BB=E5=9E=8B=E6=96=87=E4=BB=B6=E7=94=9F=E6=88=90?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BB=A5=E9=80=82=E5=BA=94=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E5=8C=BA=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构了生成DTS文件的逻辑,以适应工作区内的依赖结构。通过新引入的getTypeDir函数,现在能够智能定位 到工作区目录或其依赖中的相应类型定义。这解决了在工作区内使用生成的类型文件时存在的路径问题。 --- .../material-parser/src/parse/ts/generateDTS.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/material-parser/src/parse/ts/generateDTS.ts b/modules/material-parser/src/parse/ts/generateDTS.ts index 79ccf853cc..ecd6e9d7e2 100644 --- a/modules/material-parser/src/parse/ts/generateDTS.ts +++ b/modules/material-parser/src/parse/ts/generateDTS.ts @@ -1,11 +1,22 @@ import * as path from 'path'; -import { writeFileSync, pathExistsSync, ensureDirSync, copySync } from 'fs-extra'; +import { writeFileSync, pathExistsSync } from 'fs-extra'; import { loadFile } from '../../utils'; import { debug } from '../../core'; const log = debug.extend('parse:ts:generate_dts'); +function getTypeDir(workDir: string, dsl: string) { + const typePkgName = `@types/${dsl}`; + let typeDir = path.join(workDir, 'node_modules', typePkgName); + + /** 适配 workspace 的情况,如果当前目录没有对应文件,从 workspace 依赖中寻找 */ + if (!pathExistsSync(typeDir)) { + typeDir = path.join(workDir, '../../node_modules', typePkgName); + } + return typeDir; +} + /** * Generate alias dts file by removing some needless interfaces. * Replace original file at present, which will cause type pollution, looking for better solution @@ -22,7 +33,7 @@ export default function generateDTS({ originalTypePath: string; newTypePath: string; } { - const typeDir = path.join(workDir, 'node_modules', `@types/${dslType}`); + const typeDir = getTypeDir(workDir, dslType); const typePath = path.join(typeDir, 'index.d.ts'); const fileContent = loadFile(typePath); // const materialParserTypeDir = path.join(workDir, `node_modules/material-parser-types/${type}`);