this repo has no description
1import { Accessor } 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> ) => { 8 // TODO: Keybind system 9 // TODO: Delete selected node when delete key is pressed 10 // TODO: Copy / paste 11 // TODO: Add undo / redo -ing 12 13 window.onkeydown = ( e ) => { 14 isKeyDown[e.key] = true; 15 16 console.log(e.key); 17 18 switch(e.key){ 19 case 'Delete': 20 let node = selectedNode(); 21 if(!node)return; 22 23 node.inputs.map(input => { 24 input.connections.map(partner => { 25 partner.connections = partner.connections.filter(x => x != input); 26 }) 27 }) 28 29 node.outputs.map(output => { 30 output.connections.map(partner => { 31 partner.connections = partner.connections.filter(x => x != output); 32 }) 33 }) 34 35 // TODO: If node is currently selected, deselect it. 36 NodeManager.Instance.RemoveNode(node); 37 break; 38 case 's': 39 if(e.ctrlKey){ 40 let currentTab = NodeManager.Instance.CurrentTab(); 41 if(!currentTab)return; 42 43 // Save 44 NodeManager.Instance.SaveTab(currentTab); 45 } 46 break; 47 case 'S': 48 if(e.ctrlKey){ 49 let currentTab = NodeManager.Instance.CurrentTab(); 50 if(!currentTab)return; 51 52 // Save 53 NodeManager.Instance.SaveTab(currentTab, true); 54 } 55 break; 56 } 57 } 58 59 window.onkeyup = ( e ) => { 60 isKeyDown[e.key] = false; 61 } 62}