Files
xyflow/packages/svelte/src/lib/components/SvelteFlowProvider/SvelteFlowProvider.svelte
T
2025-03-17 10:43:17 +01:00

37 lines
781 B
Svelte

<script lang="ts">
import { onDestroy, setContext } from 'svelte';
import { createStore, key } from '$lib/store';
import type { SvelteFlowProviderProps } from './types';
import type { ProviderContext, SvelteFlowStore } from '$lib/store/types';
let { children }: SvelteFlowProviderProps = $props();
let store = $state.raw(
createStore({
props: {},
nodes: [],
edges: [],
nodesDraggable: true,
nodesConnectable: true,
elementsSelectable: true
})
);
setContext(key, {
provider: true,
getStore() {
return store;
},
setStore: (newStore: SvelteFlowStore) => {
store = newStore;
}
} satisfies ProviderContext);
onDestroy(() => {
store.reset();
});
</script>
{@render children?.()}