this repo has no description
at main 1.1 kB view raw
1import { Accessor, Setter } from "solid-js"; 2import { NodeManager } from "../Mangers/NodeManager"; 3import { PositionInfo } from "../renderer"; 4import { Node } from "../structs/node"; 5 6export let NodeContextMenu = ( clickedNode: Node, selectedNode: Accessor<Node[]>, setSelectedNode: Setter<Node[]> ) => [ 7 { 8 text: "Delete Node", 9 clicked: ( _e: MouseEvent, _canvas: HTMLCanvasElement, _position: PositionInfo ) => { 10 clickedNode!.inputs.map(input => { 11 input.connections.map(partner => { 12 partner.connections = partner.connections.filter(x => x != input); 13 }) 14 }) 15 16 clickedNode!.outputs.map(output => { 17 output.connections.map(partner => { 18 partner.connections = partner.connections.filter(x => x != output); 19 }) 20 }) 21 22 let selected = selectedNode(); 23 for (let i = 0; i < selected.length; i++) { 24 let node = selected[i]; 25 26 if(node.id === clickedNode.id){ 27 selected.splice(i, 1); 28 setSelectedNode(selected); 29 30 break; 31 } 32 } 33 34 NodeManager.Instance.RemoveNode(clickedNode!) 35 }, 36 hovered: false 37 } 38]