feat(svelte): make nodes deletable

This commit is contained in:
moklick
2023-02-23 13:44:57 +01:00
parent 658366e67f
commit bb528e6798
12 changed files with 167 additions and 39 deletions
@@ -10,7 +10,7 @@
width={$widthStore}
height={$heightStore}
class="react-flow__edges react-flow__container"
>
>
{#each $edgesWithDataStore as edge (edge.id)}
<Edge {...edge} />
{/each}
@@ -1,7 +1,7 @@
<script lang="ts">
import { onDestroy } from 'svelte';
import Node from '$lib/components/nodes/BaseNode.svelte';
import BaseNode from '$lib/components/nodes/BaseNode.svelte';
import { useStore } from '$lib/store';
const { nodesStore, updateNodeDimensions } = useStore();
@@ -18,12 +18,11 @@
onDestroy(() => {
resizeObserver?.disconnect();
});
</script>
<div class="react-flow__nodes">
{#each $nodesStore as node}
<Node {...node} {resizeObserver} />
{#each $nodesStore as node (node.id)}
<BaseNode {...node} {resizeObserver} />
{/each}
</div>
@@ -10,16 +10,19 @@
import EdgeRenderer from '$lib/container/EdgeRenderer/index.svelte';
import UserSelection from '$lib/components/UserSelection/index.svelte';
import NodeSelection from '$lib/components/NodeSelection/index.svelte';
import KeyHandler from '$lib/components/KeyHandler/index.svelte';
import { KeyHandler } from '$lib/components/KeyHandler';
import type { SvelteFlowProps } from '$lib/types';
interface $$Props extends SvelteFlowProps {}
type $$Props = SvelteFlowProps;
export let id: $$Props['id'] = '1';
export let nodes: $$Props['nodes'] = [];
export let edges: $$Props['edges'] = [];
export let fitView: $$Props['fitView'] = undefined;
export let nodeTypes: $$Props['nodeTypes'] = undefined;
export let selectionKey: $$Props['selectionKey'] = undefined;
export let deleteKey: $$Props['deleteKey'] = undefined;
let className: $$Props['class'] = undefined;
export { className as class };
@@ -61,7 +64,7 @@
id={id}
bind:this={domNode}
>
<KeyHandler />
<KeyHandler {selectionKey} {deleteKey} />
<Zoom>
<Pane>
<Viewport>