feat: update modals visible state in outline pane

This commit is contained in:
liujuping 2023-05-23 17:37:29 +08:00 committed by 林熠
parent 5dcd946dca
commit c78dd80c28
3 changed files with 17 additions and 4 deletions

View File

@ -244,7 +244,9 @@ export default class TreeNode {
if (this.node.conditionGroup) {
return;
}
if (this.node.visible !== !flag) {
this.node.visible = !flag;
}
this.event.emit(EVENT_NAMES.hiddenChanged, flag);
}

View File

@ -40,6 +40,11 @@ export class Tree {
treeNode?.notifyConditionChanged();
}
});
doc?.onChangeNodeVisible((node: IPublicModelNode, visible: boolean) => {
const treeNode = this.getTreeNodeById(node.id);
treeNode?.setHidden(!visible);
});
}
setNodeSelected(nodeId: string): void {

View File

@ -28,6 +28,7 @@ export default class TreeTitle extends PureComponent<{
editing: boolean;
title: string;
condition?: boolean;
visible?: boolean;
} = {
editing: false,
title: '',
@ -93,6 +94,11 @@ export default class TreeTitle extends PureComponent<{
condition: treeNode.condition,
});
});
treeNode.onHiddenChanged((hidden: boolean) => {
this.setState({
visible: !hidden,
});
});
}
render() {
@ -132,7 +138,7 @@ export default class TreeTitle extends PureComponent<{
data-id={treeNode.id}
onClick={() => {
if (isModal) {
if (node.visible) {
if (this.state.visible) {
node.document?.modalNodesManager?.setInvisible(node);
} else {
node.document?.modalNodesManager?.setVisible(node);
@ -144,7 +150,7 @@ export default class TreeTitle extends PureComponent<{
}
}}
>
{isModal && node.visible && (
{isModal && this.state.visible && (
<div onClick={() => {
node.document?.modalNodesManager?.setInvisible(node);
}}
@ -152,7 +158,7 @@ export default class TreeTitle extends PureComponent<{
<IconRadioActive className="tree-node-modal-radio-active" />
</div>
)}
{isModal && !node.visible && (
{isModal && !this.state.visible && (
<div onClick={() => {
node.document?.modalNodesManager?.setVisible(node);
}}