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 | null>, setSelectedNode: Setter<Node | null> ) => { 8 // TODO: Keybind system 9 // TODO: Copy / paste 10 // TODO: Add undo / redo -ing 11 12 window.onkeydown = ( e ) => { 13 isKeyDown[e.key] = true; 14 15 console.log(e.key); 16 17 switch(e.key){ 18 case 'Delete': 19 let node = selectedNode(); 20 if(!node)return; 21 22 node.inputs.map(input => { 23 input.connections.map(partner => { 24 partner.connections = partner.connections.filter(x => x != input); 25 }) 26 }) 27 28 node.outputs.map(output => { 29 output.connections.map(partner => { 30 partner.connections = partner.connections.filter(x => x != output); 31 }) 32 }) 33 34 setSelectedNode(null); 35 NodeManager.Instance.RemoveNode(node); 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}