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}