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}`);