diff --git a/packages/designer/src/component-meta.ts b/packages/designer/src/component-meta.ts
index 0de4a9224..f892f7dd8 100644
--- a/packages/designer/src/component-meta.ts
+++ b/packages/designer/src/component-meta.ts
@@ -20,6 +20,7 @@ import { IconComponent } from './icons/component';
import { IconRemove } from './icons/remove';
import { IconClone } from './icons/clone';
import { ReactElement } from 'react';
+import { IconHidden } from './icons/hidden';
function ensureAList(list?: string | string[]): string[] | null {
if (!list) {
@@ -341,6 +342,20 @@ const builtinComponentActions: ComponentAction[] = [
},
important: true,
},
+ {
+ name: 'hide',
+ content: {
+ icon: IconHidden,
+ title: intlNode('hide'),
+ action(node: Node) {
+ node.getExtraProp('hidden', true)?.setValue(true);
+ },
+ },
+ condition: (node: Node) => {
+ return node.componentMeta.isModal;
+ },
+ important: true,
+ },
];
export function removeBuiltinComponentAction(name: string) {
diff --git a/packages/designer/src/locale/en-US.json b/packages/designer/src/locale/en-US.json
index 69eb61330..d895e4aba 100644
--- a/packages/designer/src/locale/en-US.json
+++ b/packages/designer/src/locale/en-US.json
@@ -1,6 +1,7 @@
{
"copy": "Copy",
"remove": "Remove",
+ "hide": "Hide",
"Condition Group": "Condition Group",
"No opened document": "No opened document, open some document to editing"
}
diff --git a/packages/designer/src/locale/zh-CN.json b/packages/designer/src/locale/zh-CN.json
index cafba4f51..dc57f75ff 100644
--- a/packages/designer/src/locale/zh-CN.json
+++ b/packages/designer/src/locale/zh-CN.json
@@ -1,6 +1,7 @@
{
"copy": "复制",
"remove": "删除",
+ "hide": "隐藏",
"Condition Group": "条件组",
"No opened document": "没有打开的页面,请选择页面打开编辑"
}
diff --git a/packages/editor-skeleton/src/transducers/addon-combine.ts b/packages/editor-skeleton/src/transducers/addon-combine.ts
index cbbf1af17..d9d2b0161 100644
--- a/packages/editor-skeleton/src/transducers/addon-combine.ts
+++ b/packages/editor-skeleton/src/transducers/addon-combine.ts
@@ -183,8 +183,12 @@ export default function(metadata: TransformedComponentMetadata): TransformedComp
items: [
{
name: '___condition',
- title: { type: 'i18n', 'zh-CN': '条件显示', 'en-US': 'Condition' },
- setter: 'ExpressionSetter',
+ title: { type: 'i18n', 'zh-CN': '是否渲染', 'en-US': 'Condition' },
+ setter: [{
+ componentName: 'BoolSetter',
+ }, {
+ componentName: 'VariableSetter'
+ }],
},
{
name: '#loop',
@@ -193,27 +197,14 @@ export default function(metadata: TransformedComponentMetadata): TransformedComp
{
name: '___loop',
title: { type: 'i18n', 'zh-CN': '循环数据', 'en-US': 'Loop Data' },
- setter: {
- componentName: 'MixinSetter',
+ setter: [{
+ componentName: 'JsonSetter',
props: {
- // TODO:
- setters: [
- {
- componentName: 'JSONSetter',
- props: {
- mode: 'popup',
- placeholder: { type: 'i18n', 'zh-CN': '编辑数据', 'en-US': 'Edit Data' },
- },
- },
- {
- componentName: 'ExpressionSetter',
- props: {
- placeholder: { type: 'i18n', 'zh-CN': '绑定数据', 'en-US': 'Bind Data' },
- },
- },
- ],
+ label: { type: 'i18n', 'zh-CN': '编辑数据', 'en-US': 'Edit Data'},
},
- },
+ }, {
+ componentName: 'VariableSetter'
+ }],
},
{
name: '___loopArgs.0',
@@ -237,8 +228,12 @@ export default function(metadata: TransformedComponentMetadata): TransformedComp
},
{
name: 'key',
- title: 'Key',
- setter: 'ExpressionSetter',
+ title: '循环 Key',
+ setter: [{
+ componentName: 'StringSetter',
+ }, {
+ componentName: 'VariableSetter'
+ }],
},
],
},
diff --git a/packages/plugin-outline-pane/src/views/tree-title.tsx b/packages/plugin-outline-pane/src/views/tree-title.tsx
index 3d7c6b373..507712f42 100644
--- a/packages/plugin-outline-pane/src/views/tree-title.tsx
+++ b/packages/plugin-outline-pane/src/views/tree-title.tsx
@@ -126,7 +126,7 @@ export default class TreeTitle extends Component<{
)}
{isCNode && isNodeParent && }
- {isCNode && isNodeParent && }
+ {/*isCNode && isNodeParent && */}
);
}
diff --git a/packages/react-renderer/src/engine/base.jsx b/packages/react-renderer/src/engine/base.jsx
index 6bf45fe3f..742c24574 100644
--- a/packages/react-renderer/src/engine/base.jsx
+++ b/packages/react-renderer/src/engine/base.jsx
@@ -228,6 +228,11 @@ export default class BaseEngine extends PureComponent {
let Comp = components[schema.componentName] || Div;
+ console.info('node schema', schema, engine.props);
+ if (schema.hidden) {
+ return null;
+ }
+
if (schema.loop !== undefined) {
return this.__createLoopVirtualDom(
{