this repo has no description
1import { Accessor, Setter } from "solid-js"; 2import { NodeManager } from "./Mangers/NodeManager"; 3import { Node } from "./structs/node"; 4 5let isKeyDown: any = {}; 6 7export let load = ( selectedNode: Accessor<Node[]>, setSelectedNode: Setter<Node[]> ) => { 8 // TODO: Copy / paste 9 // TODO: Add undo / redo -ing 10 11 window.onkeydown = ( e ) => { 12 isKeyDown[e.key] = true; 13 14 console.log(e.key); 15 16 switch(e.key){ 17 case 'Delete': 18 let nodes = selectedNode(); 19 for(let node of nodes){ 20 node.inputs.map(input => { 21 input.connections.map(partner => { 22 partner.connections = partner.connections.filter(x => x != input); 23 }) 24 }) 25 26 node.outputs.map(output => { 27 output.connections.map(partner => { 28 partner.connections = partner.connections.filter(x => x != output); 29 }) 30 }) 31 32 NodeManager.Instance.RemoveNode(node); 33 } 34 35 setSelectedNode([]); 36 break; 37 case 's': 38 if(e.ctrlKey){ 39 let currentTab = NodeManager.Instance.CurrentTab(); 40 if(!currentTab)return; 41 42 // Save 43 NodeManager.Instance.SaveTab(currentTab); 44 } 45 break; 46 case 'S': 47 if(e.ctrlKey){ 48 let currentTab = NodeManager.Instance.CurrentTab(); 49 if(!currentTab)return; 50 51 // Save 52 NodeManager.Instance.SaveTab(currentTab, true); 53 } 54 break; 55 } 56 } 57 58 window.onkeyup = ( e ) => { 59 isKeyDown[e.key] = false; 60 } 61}