Skip to content

Commit 2013f6a

Browse files
committed
node-transformer hide stream movers when selected node has no connections
1 parent 25ca31d commit 2013f6a

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

libs/visual-programming-system/src/components/node-transformer.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
import { BaseNodeInfo } from '../types/base-node-info';
1414
import { createElement } from '../utils';
1515
import { getPointerPos } from '../utils/pointer-pos';
16+
import { hideElement, showElement } from '../utils/show-hide-element';
1617
import { getNodeTransformerCssClasses } from './css-classes/node-transformer-css-classes';
1718
import { showMetaViewDialog } from './meta-view-dialog/meta-view-dialog';
1819

@@ -206,6 +207,13 @@ export class NodeTransformer<T extends BaseNodeInfo> {
206207
this.cssClasses.hidden
207208
);
208209
}
210+
if (node.thumbs?.length === 0) {
211+
hideElement(this.upstreamNodesMover);
212+
hideElement(this.downstreamNodesMover);
213+
} else {
214+
showElement(this.upstreamNodesMover);
215+
showElement(this.downstreamNodesMover);
216+
}
209217
this.detachRegisteredNodes();
210218

211219
this.visibilityResizeControls(node.canBeResized ?? true);
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// TODO : builder pattern for classlist opererations :
2+
// element(this.canvas).hide().noPointerEvents()
3+
// element(this.canvas).show().pointerEvents()
4+
// .. etc
5+
6+
import { IDOMElement } from '../interfaces/element';
7+
8+
export const hideElement = (element?: IDOMElement) => {
9+
if (element && element.domElement) {
10+
(element.domElement as HTMLElement).classList.add('hidden');
11+
}
12+
};
13+
14+
export const showElement = (element?: IDOMElement) => {
15+
if (element && element.domElement) {
16+
(element.domElement as HTMLElement).classList.remove('hidden');
17+
}
18+
};
19+
20+
export const hideHTMLElement = (element?: HTMLElement, blockClass?: string) => {
21+
if (element) {
22+
element.classList.add('hidden');
23+
24+
if (blockClass) {
25+
element.classList.remove(blockClass);
26+
}
27+
}
28+
};
29+
30+
export const showHTMLElement = (element?: HTMLElement, blockClass?: string) => {
31+
if (element && element) {
32+
element.classList.remove('hidden');
33+
34+
if (blockClass) {
35+
element.classList.add(blockClass);
36+
}
37+
}
38+
};

0 commit comments

Comments
 (0)