implement onSelectionChanged

This commit is contained in:
peterkogo
2025-04-30 20:32:06 +02:00
parent adb13e261d
commit 47f9118296
13 changed files with 108 additions and 11 deletions
@@ -1,6 +1,6 @@
<script lang="ts" generics="NodeType extends Node = Node, EdgeType extends Edge = Edge">
import type { Edge, Node } from '$lib/types';
import { getContext, setContext, onDestroy } from 'svelte';
import { getContext, setContext, onDestroy, untrack } from 'svelte';
import type { HTMLAttributes } from 'svelte/elements';
import { ConnectionLineType, PanOnScrollMode } from '@xyflow/system';
@@ -110,6 +110,15 @@
}
} satisfies StoreContext<NodeType, EdgeType>);
// handle selection change
$effect(() => {
const params = { nodes: store.selectedNodes, edges: store.selectedEdges };
untrack(() => props.onselectionchanged)?.(params);
for (const handler of store.selectionChangedHandlers.values()) {
handler(params);
}
});
onDestroy(() => {
store.reset();
});