this repo has no description

remove selection on deleted nodes & default values for statics

phaz.uk 0c6c359d 0f24d541

verified
Changed files
+13 -15
src
+2 -3
src/App.tsx
··· 100 100 } 101 101 102 102 if(clickedNode){ 103 - contextMenu.items = NodeContextMenu(clickedNode); 103 + contextMenu.items = NodeContextMenu(clickedNode, selectedNode, setSelectedNode); 104 104 } else{ 105 105 contextMenu.items = CanvasContextMenu; 106 106 } ··· 321 321 isMouseDown = false; 322 322 } 323 323 324 - keybinds.load(selectedNode); 325 - 324 + keybinds.load(selectedNode, setSelectedNode); 326 325 requestAnimationFrame(update); 327 326 }); 328 327
+5 -2
src/ContextMenu/Node.tsx
··· 1 + import { Accessor, Setter } from "solid-js"; 1 2 import { NodeManager } from "../Mangers/NodeManager"; 2 3 import { PositionInfo } from "../renderer"; 3 4 import { Node } from "../structs/node"; 4 5 5 - export let NodeContextMenu = ( clickedNode: Node ) => [ 6 + export let NodeContextMenu = ( clickedNode: Node, selectedNode: Accessor<Node | null>, setSelectedNode: Setter<Node | null> ) => [ 6 7 { 7 8 text: "Delete Node", 8 9 clicked: ( _e: MouseEvent, _canvas: HTMLCanvasElement, _position: PositionInfo ) => { ··· 18 19 }) 19 20 }) 20 21 21 - // TODO: If node is currently selected, deselect it. 22 + let selected = selectedNode(); 23 + if(selected && clickedNode.id === selected.id)setSelectedNode(null); 24 + 22 25 NodeManager.Instance.RemoveNode(clickedNode!) 23 26 }, 24 27 hovered: false
-3
src/Mangers/NodeManager.tsx
··· 25 25 26 26 setInterval(() => { 27 27 let tabs = Object.values(this._tabs).filter(x => x.needSync); 28 - console.log('Syncing ' + tabs.length + ' tabs'); 29 28 for(let tab of tabs){ 30 29 invoke('sync_tab', { graph: this._generateTabGraph(tab.id)[0], id: tab.id, name: tab.name, location: tab.saveLocation }); 31 30 tab.needSync = false; ··· 40 39 let version = await getVersion(); 41 40 42 41 for(let tab of Object.entries<any>(tabs)){ 43 - console.log(tab); 44 - 45 42 await this._loadFromConfig(tab[1][2], tab[0], JSON.stringify({ 46 43 tab_name: tab[1][1], 47 44 version,
+1 -1
src/Nodes/Statics/Float.tsx
··· 12 12 statics: [{ 13 13 type: NodeType.Float, 14 14 name: 'Value', 15 - value: null 15 + value: 0.0 16 16 }], 17 17 18 18 outputs: [{ name: "Float", type: NodeType.Float }],
+1 -1
src/Nodes/Statics/Int.tsx
··· 12 12 statics: [{ 13 13 type: NodeType.Int, 14 14 name: 'Value', 15 - value: null 15 + value: 0 16 16 }], 17 17 18 18 outputs: [{ name: "Int", type: NodeType.Int }],
+1 -1
src/Nodes/Statics/String.tsx
··· 12 12 statics: [{ 13 13 type: NodeType.String, 14 14 name: 'Value', 15 - value: null 15 + value: 'Hello World!' 16 16 }], 17 17 18 18 outputs: [{ name: "String", type: NodeType.String }],
+3 -4
src/keybinds.ts
··· 1 - import { Accessor } from "solid-js"; 1 + import { Accessor, Setter } from "solid-js"; 2 2 import { NodeManager } from "./Mangers/NodeManager"; 3 3 import { Node } from "./structs/node"; 4 4 5 5 let isKeyDown: any = {}; 6 6 7 - export let load = ( selectedNode: Accessor<Node | null> ) => { 7 + export let load = ( selectedNode: Accessor<Node | null>, setSelectedNode: Setter<Node | null> ) => { 8 8 // TODO: Keybind system 9 - // TODO: Delete selected node when delete key is pressed 10 9 // TODO: Copy / paste 11 10 // TODO: Add undo / redo -ing 12 11 ··· 32 31 }) 33 32 }) 34 33 35 - // TODO: If node is currently selected, deselect it. 34 + setSelectedNode(null); 36 35 NodeManager.Instance.RemoveNode(node); 37 36 break; 38 37 case 's':