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}