diff --git a/examples/Hidden/index.tsx b/examples/Hidden/index.tsx new file mode 100644 index 00000000..cbc2d6d3 --- /dev/null +++ b/examples/Hidden/index.tsx @@ -0,0 +1,51 @@ +import RevueFlow, { addEdge, MiniMap, Controls, Connection, Edge, Elements } from '../../src'; +import { defineComponent, ref, watchEffect } from 'vue'; + +const initialElements: Elements = [ + { id: '1', type: 'input', data: { label: 'Node 1' }, position: { x: 250, y: 5 } }, + { id: '2', data: { label: 'Node 2' }, position: { x: 100, y: 100 } }, + { id: '3', data: { label: 'Node 3' }, position: { x: 400, y: 100 } }, + { id: '4', data: { label: 'Node 4' }, position: { x: 400, y: 200 } }, + { id: 'e1-2', source: '1', target: '2' }, + { id: 'e1-3', source: '1', target: '3' }, + { id: 'e3-4', source: '3', target: '4' } +] as Elements; + +const HiddenFlow = defineComponent({ + setup() { + const elements = ref(initialElements); + const isHidden = ref(false); + const onConnect = (params: Connection | Edge) => (elements.value = addEdge(params, elements.value)); + + watchEffect(() => { + console.log(isHidden.value); + elements.value = elements.value.map((e) => { + e.isHidden = isHidden.value; + return e; + }); + }); + + const toggle = (event) => { + console.log(event.target); + isHidden.value = event.target?.checked; + }; + + return () => ( + + + + +
+
+ +
+
+
+ ); + } +}); + +export default HiddenFlow; diff --git a/examples/router.ts b/examples/router.ts index 9dae4ce3..809ace7e 100644 --- a/examples/router.ts +++ b/examples/router.ts @@ -36,6 +36,10 @@ export const routes: RouterOptions['routes'] = [ { path: '/empty', component: () => import('./Empty') + }, + { + path: '/hidden', + component: () => import('./Hidden') } ]; diff --git a/src/components/Edges/Edge.tsx b/src/components/Edges/Edge.tsx index 9ce46067..49c4b12d 100644 --- a/src/components/Edges/Edge.tsx +++ b/src/components/Edges/Edge.tsx @@ -188,7 +188,7 @@ export default defineComponent({ const onEdgeUpdaterMouseOut = () => (updating.value = false); return () => - isVisible.value && edgePositions.value ? ( + !props.edge.isHidden && isVisible.value && edgePositions.value ? ( ( - -
+ props.node.isHidden ? ( + '' + ) : ( + - {h(props.type, { - data: props.node.data, - type: props.node.type, - xPos: props.node.__rf.position.x, - yPos: props.node.__rf.position.y, - selected: selected.value, - isConnectable: isConnectable.value, - sourcePosition: props.node.sourcePosition, - targetPosition: props.node.targetPosition, - isDragging: props.node.__rf.isDragging - })} -
-
- ); +
+ {h(props.type, { + data: props.node.data, + type: props.node.type, + xPos: props.node.__rf.position.x, + yPos: props.node.__rf.position.y, + selected: selected.value, + isConnectable: isConnectable.value, + sourcePosition: props.node.sourcePosition, + targetPosition: props.node.targetPosition, + isDragging: props.node.__rf.isDragging + })} +
+ + ); } });