WIP: migrated store and useSvelteFlow hook to signals & solved state propagation for provider

This commit is contained in:
peterkogo
2024-12-06 13:53:48 +01:00
parent ed1ead7b5a
commit f29898f0bd
49 changed files with 1616 additions and 1137 deletions
@@ -3,29 +3,21 @@
import { createStore, key } from '$lib/store';
import type { SvelteFlowProviderProps } from './types';
import type { ProviderContext, SvelteFlowStore } from '$lib/store/types';
let {
initialNodes,
initialEdges,
initialWidth,
initialHeight,
nodeOrigin,
fitView,
children
}: SvelteFlowProviderProps = $props();
let { children }: SvelteFlowProviderProps = $props();
const store = createStore({
nodes: initialNodes,
edges: initialEdges,
width: initialWidth,
height: initialHeight,
nodeOrigin,
fitView
});
let store = $state.raw(createStore({ props: {} }));
setContext(key, {
getStore: () => store
});
provider: true,
getStore() {
return store;
},
setStore: (newStore: SvelteFlowStore) => {
store = newStore;
}
} satisfies ProviderContext);
onDestroy(() => {
store.reset();