diff --git a/examples/svelte/src/routes/tests/generic/[topic]/[example]/+page.svelte b/examples/svelte/src/routes/tests/generic/[topic]/[example]/+page.svelte index d8a79ff6..74277ad5 100644 --- a/examples/svelte/src/routes/tests/generic/[topic]/[example]/+page.svelte +++ b/examples/svelte/src/routes/tests/generic/[topic]/[example]/+page.svelte @@ -3,11 +3,11 @@ import Flow from './Flow.svelte'; - interface Props { + let { + data + }: { data: { flowConfig: FlowConfig }; - } - - let { data }: Props = $props(); + } = $props(); diff --git a/examples/svelte/src/routes/tests/generic/[topic]/[example]/Flow.svelte b/examples/svelte/src/routes/tests/generic/[topic]/[example]/Flow.svelte index 4ca02ef9..df9cad61 100644 --- a/examples/svelte/src/routes/tests/generic/[topic]/[example]/Flow.svelte +++ b/examples/svelte/src/routes/tests/generic/[topic]/[example]/Flow.svelte @@ -1,5 +1,4 @@ - + {#if flowConfig.panelProps} {/if} diff --git a/packages/svelte/src/lib/components/KeyHandler/KeyHandler.svelte b/packages/svelte/src/lib/components/KeyHandler/KeyHandler.svelte index f757ea7d..1c164aff 100644 --- a/packages/svelte/src/lib/components/KeyHandler/KeyHandler.svelte +++ b/packages/svelte/src/lib/components/KeyHandler/KeyHandler.svelte @@ -8,6 +8,7 @@ import type { KeyHandlerProps } from './types'; import type { KeyDefinition, KeyDefinitionObject } from '$lib/types'; + import { useSvelteFlow } from '$lib/hooks/useSvelteFlow.svelte'; let { store, @@ -18,7 +19,7 @@ zoomActivationKey = isMacOs() ? 'Meta' : 'Control' }: KeyHandlerProps = $props(); - // const { nodes: _nodes, edges: _edges } = store; + let { deleteElements } = useSvelteFlow(); function isKeyObject(key?: KeyDefinition | null): key is KeyDefinitionObject { return key !== null && typeof key === 'object'; @@ -64,26 +65,18 @@ } async function handleDelete() { - // const nodes = get(_nodes); - // const edges = get(_edges); const selectedNodes = store.nodes.filter((node) => node.selected); const selectedEdges = store.edges.filter((edge) => edge.selected); - const { nodes: matchingNodes, edges: matchingEdges } = await getElementsToRemove({ - nodesToRemove: selectedNodes, - edgesToRemove: selectedEdges, - nodes: store.nodes, - edges: store.edges, - onBeforeDelete: store.onbeforedelete + const { deletedNodes, deletedEdges } = await deleteElements({ + nodes: selectedNodes, + edges: selectedEdges }); - if (matchingNodes.length || matchingEdges.length) { - // _nodes.update((nds) => nds.filter((node) => !matchingNodes.some((mN) => mN.id === node.id))); - // _edges.update((eds) => eds.filter((edge) => !matchingEdges.some((mE) => mE.id === edge.id))); - + if (deletedNodes.length > 0 || deletedEdges.length > 0) { store.ondelete?.({ - nodes: matchingNodes, - edges: matchingEdges + nodes: deletedNodes, + edges: deletedEdges }); } }