add set and update functions to nodes,edges & viewport hooks

This commit is contained in:
peterkogo
2025-01-14 11:28:16 +01:00
parent 5c5631f307
commit fbbe4e2529

View File

@@ -1,4 +1,6 @@
import { useStore } from '$lib/store';
import type { Edge, Node } from '$lib/types';
import type { Viewport } from '@xyflow/system';
/**
* Hook for getting the current nodes from the store.
@@ -12,8 +14,14 @@ export function useNodes() {
get current() {
return store.nodes;
},
set current(val) {
store.nodes = val;
set current(nodes) {
store.nodes = nodes;
},
update(updateFn: (nodes: Node[]) => Node[]) {
store.nodes = updateFn(store.nodes);
},
set(nodes: Node[]) {
store.nodes = nodes;
}
};
}
@@ -30,8 +38,14 @@ export function useEdges() {
get current() {
return store.edges;
},
set current(val) {
store.edges = val;
set current(edges) {
store.edges = edges;
},
update(updateFn: (edges: Edge[]) => Edge[]) {
store.edges = updateFn(store.edges);
},
set(edges: Edge[]) {
store.edges = edges;
}
};
}
@@ -48,8 +62,14 @@ export function useViewport() {
get current() {
return store.viewport;
},
set current(val) {
store.viewport = val;
set current(viewport: Viewport) {
store.viewport = viewport;
},
update(updateFn: (viewport: Viewport) => Viewport) {
store.viewport = updateFn(store.viewport);
},
set(viewport: Viewport) {
store.viewport = viewport;
}
};
}