diff --git a/src/composables/useVueFlow.ts b/src/composables/useVueFlow.ts index c11854b2..9d5b53c6 100644 --- a/src/composables/useVueFlow.ts +++ b/src/composables/useVueFlow.ts @@ -1,5 +1,5 @@ import { getCurrentInstance } from 'vue' -import { FlowOptions, State, UseVueFlow } from '~/types' +import { FlowOptions, UseVueFlow } from '~/types' import { VueFlow } from '~/context' import { useStore } from '~/store' @@ -11,7 +11,7 @@ export default (options?: Partial): UseVueFlow => { : false if (!vueFlow || (vueFlow && options?.id && options.id !== vueFlow.id)) { const name = options?.id ?? `vue-flow-${id++}` - const store = useStore(options as State) + const store = useStore(options) vueFlow = { id: name, store: reactive(store), diff --git a/src/store/store.ts b/src/store/store.ts index 6509db52..5d604d20 100644 --- a/src/store/store.ts +++ b/src/store/store.ts @@ -1,9 +1,9 @@ import useState from './state' import useActions from './actions' import useGetters from './getters' -import { FlowHooksOn, State, Store } from '~/types' +import { FlowHooksOn, FlowOptions, Store } from '~/types' -export default (preloadedState: State): Store => { +export default (preloadedState?: FlowOptions): Store => { const state = reactive(useState(preloadedState)) const getters = useGetters(state) const actions = useActions(state, getters) @@ -13,6 +13,11 @@ export default (preloadedState: State): Store => { hooksOn[name] = h.on as any }) actions.setState(state) + if (preloadedState) { + if (preloadedState.modelValue) actions.setElements(preloadedState.modelValue) + if (preloadedState.nodes) actions.setNodes(preloadedState.nodes) + if (preloadedState.edges) actions.setEdges(preloadedState.edges) + } return { state,