diff --git a/app/src/lib/graph-interface/components/AddMenu.svelte b/app/src/lib/graph-interface/components/AddMenu.svelte
index 835a6d5..906d731 100644
--- a/app/src/lib/graph-interface/components/AddMenu.svelte
+++ b/app/src/lib/graph-interface/components/AddMenu.svelte
@@ -4,6 +4,12 @@
import type { Node, NodeType } from "@nodarium/types";
import { getGraphManager, getGraphState } from "../graph/state.svelte";
+ type Props = {
+ onnode: (n: Node) => void;
+ };
+
+ const { onnode }: Props = $props();
+
const graph = getGraphManager();
const graphState = getGraphState();
@@ -35,24 +41,12 @@
function handleNodeCreation(nodeType: Node["type"]) {
if (!graphState.addMenuPosition) return;
-
- const newNode = graph.createNode({
+ onnode?.({
+ id: -1,
type: nodeType,
- position: graphState.addMenuPosition,
+ position: [...graphState.addMenuPosition],
props: {},
});
-
- const edgeInputSocket = graphState.activeSocket;
- if (edgeInputSocket && newNode) {
- if (typeof edgeInputSocket.index === "number") {
- graph.smartConnect(edgeInputSocket.node, newNode);
- } else {
- graph.smartConnect(newNode, edgeInputSocket.node);
- }
- }
-
- graphState.activeSocket = null;
- graphState.addMenuPosition = null;
}
function handleKeyDown(event: KeyboardEvent) {
diff --git a/app/src/lib/graph-interface/edges/Edge.svelte b/app/src/lib/graph-interface/edges/Edge.svelte
index 5c133b9..83c1660 100644
--- a/app/src/lib/graph-interface/edges/Edge.svelte
+++ b/app/src/lib/graph-interface/edges/Edge.svelte
@@ -34,12 +34,14 @@
import { appSettings } from "$lib/settings/app-settings.svelte";
type Props = {
- from: { x: number; y: number };
- to: { x: number; y: number };
+ x1: number;
+ y1: number;
+ x2: number;
+ y2: number;
z: number;
};
- const { from, to, z }: Props = $props();
+ const { x1, y1, x2, y2, z }: Props = $props();
const thickness = $derived(Math.max(0.001, 0.00082 * Math.exp(0.055 * z)));
@@ -48,10 +50,9 @@
let lastId: string | null = null;
function update() {
- const new_x = to.x - from.x;
- const new_y = to.y - from.y;
- const curveId = `${from.x}-${from.y}-${to.x}-${to.y}`;
-
+ const new_x = x2 - x1;
+ const new_y = y2 - y1;
+ const curveId = `${x1}-${y1}-${x2}-${y2}`;
if (lastId === curveId) {
return;
}
@@ -79,15 +80,15 @@
}
$effect(() => {
- if (from || to) {
+ if (x1 || x2 || y1 || y2) {
update();
}
});
-
+
diff --git a/app/src/lib/graph-interface/edges/FloatingEdge.svelte b/app/src/lib/graph-interface/edges/FloatingEdge.svelte
deleted file mode 100644
index b65baac..0000000
--- a/app/src/lib/graph-interface/edges/FloatingEdge.svelte
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
diff --git a/app/src/lib/graph-interface/graph/Graph.svelte b/app/src/lib/graph-interface/graph/Graph.svelte
index 743d183..1966644 100644
--- a/app/src/lib/graph-interface/graph/Graph.svelte
+++ b/app/src/lib/graph-interface/graph/Graph.svelte
@@ -1,5 +1,5 @@