node {{ props.id }}
diff --git a/examples/Unidirectional/UnidirectionalExample.vue b/examples/Unidirectional/UnidirectionalExample.vue
index b6b10950..03470434 100644
--- a/examples/Unidirectional/UnidirectionalExample.vue
+++ b/examples/Unidirectional/UnidirectionalExample.vue
@@ -174,10 +174,7 @@ let id = 4
const getId = () => `${id++}`
const elements = ref(initialElements)
-const onConnect = (params: Connection | Edge) => (elements.value = addEdge({ ...params, type: 'smoothstep' }, elements.value))
const { project } = useZoomPanHelper()
-const onEdgeUpdate = (oldEdge: Edge, newConnection: Connection) =>
- (elements.value = updateEdge(oldEdge, newConnection, elements.value))
const onPaneClick = (evt: MouseEvent) =>
(elements.value = elements.value.concat({
@@ -189,12 +186,9 @@ const onPaneClick = (evt: MouseEvent) =>
diff --git a/examples/UpdatableEdge/UpdatableEdgeExample.vue b/examples/UpdatableEdge/UpdatableEdgeExample.vue
index e3d9e83c..1ed6f3ad 100644
--- a/examples/UpdatableEdge/UpdatableEdgeExample.vue
+++ b/examples/UpdatableEdge/UpdatableEdgeExample.vue
@@ -16,27 +16,21 @@ const initialElements: Elements = [
{
id: '1',
type: 'input',
- data: {
- label: 'Node A',
- },
+ label: 'Node A',
position: { x: 250, y: 0 },
},
{
id: '2',
- data: {
- label: 'Node B',
- },
+ label: 'Node B',
position: { x: 100, y: 100 },
},
{
id: '3',
- data: {
- label: 'Node C',
- },
+ label: 'Node C',
position: { x: 400, y: 100 },
style: { background: '#D6D5E6', color: '#333', border: '1px solid #222138', width: 180 },
},
- { id: 'e1-2', source: '1', target: '2', label: 'Updateable edge' },
+ { id: 'e1-2', source: '1', target: '2', label: 'Updateable edge', updatable: true },
]
const elements = ref(initialElements)
@@ -52,7 +46,7 @@ const onConnect = (params: Connection | Edge) => (elements.value = addEdge(param
v-model="elements"
:snap-to-grid="true"
:connection-mode="ConnectionMode.Loose"
- @load="onLoad"
+ @pane-ready="onLoad"
@edge-update="onEdgeUpdate"
@connect="onConnect"
@edge-update-start="onEdgeUpdateStart"
diff --git a/examples/UpdateNode/UpdateNodeExample.vue b/examples/UpdateNode/UpdateNodeExample.vue
index 52bd5b91..a1c0f00c 100644
--- a/examples/UpdateNode/UpdateNodeExample.vue
+++ b/examples/UpdateNode/UpdateNodeExample.vue
@@ -1,11 +1,9 @@
+
Only connectable with B
diff --git a/examples/Validation/CustomNode.vue b/examples/Validation/CustomNode.vue
index 0c754302..702d582c 100644
--- a/examples/Validation/CustomNode.vue
+++ b/examples/Validation/CustomNode.vue
@@ -8,6 +8,11 @@ interface CustomNodeProps extends NodeProps {
const props = defineProps()
+
{{ props.id }}
diff --git a/examples/Validation/ValidationExample.vue b/examples/Validation/ValidationExample.vue
index 8888deb2..65c32eff 100644
--- a/examples/Validation/ValidationExample.vue
+++ b/examples/Validation/ValidationExample.vue
@@ -1,44 +1,38 @@
{
+
diff --git a/examples/ZoomPanHelper/ZoomPanHelperExample.vue b/examples/ZoomPanHelper/ZoomPanHelperExample.vue
deleted file mode 100644
index 3e1f6d67..00000000
--- a/examples/ZoomPanHelper/ZoomPanHelperExample.vue
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
diff --git a/examples/router.ts b/examples/router.ts
index af6db5be..bd1c81c3 100644
--- a/examples/router.ts
+++ b/examples/router.ts
@@ -93,10 +93,6 @@ export const routes: RouterOptions['routes'] = [
path: '/validation',
component: () => import('./Validation/ValidationExample.vue'),
},
- {
- path: '/zoom-pan-helper',
- component: () => import('./ZoomPanHelper/ZoomPanHelperExample.vue'),
- },
{
path: '/nesting',
component: () => import('./Nesting/Nesting.vue'),
diff --git a/src/composables/useVueFlow.ts b/src/composables/useVueFlow.ts
index 27b53dad..e108eb6e 100644
--- a/src/composables/useVueFlow.ts
+++ b/src/composables/useVueFlow.ts
@@ -1,5 +1,5 @@
import { getCurrentInstance } from 'vue'
-import { FlowOptions, UseVueFlow } from '~/types'
+import { FlowOptions, State, UseVueFlow } from '~/types'
import { VueFlow } from '~/context'
import { useStore } from '~/store'
@@ -11,7 +11,7 @@ export default (options?: FlowOptions): UseVueFlow => {
: false
if (!vueFlow || (vueFlow && options?.id && options.id !== vueFlow.id)) {
const name = options?.id ?? `vue-flow-${id++}`
- const store = useStore(name, options)
+ const store = useStore(options as State)
vueFlow = {
id: name,
store: reactive(store),
diff --git a/src/store/store.ts b/src/store/store.ts
index b67b670b..6509db52 100644
--- a/src/store/store.ts
+++ b/src/store/store.ts
@@ -1,10 +1,9 @@
import useState from './state'
import useActions from './actions'
import useGetters from './getters'
-import { FlowExportObject, FlowHooksOn, FlowOptions, State, GraphEdge, GraphNode, Store } from '~/types'
-import { isEdge, isNode, onLoadToObject } from '~/utils'
+import { FlowHooksOn, State, Store } from '~/types'
-const useFlowStore = (preloadedState: State): Store => {
+export default (preloadedState: State): Store => {
const state = reactive(useState(preloadedState))
const getters = useGetters(state)
const actions = useActions(state, getters)
@@ -25,47 +24,3 @@ const useFlowStore = (preloadedState: State): Store => {
...actions,
}
}
-
-export default (id: string, options?: FlowOptions): Store => {
- const withStorage = options?.storageKey ?? false
- let storedState = ref
()
- const storageKey = id ?? options?.id
- const preloadedState = options as State
- if (withStorage) {
- storedState = useStorage(storageKey, { edges: [], nodes: [], position: [0, 0], zoom: 0 })
- if (storedState.value) {
- preloadedState.nodes = (
- storedState.value.nodes
- ? storedState.value.nodes
- : options?.nodes
- ? options.nodes
- : options?.modelValue
- ? options?.modelValue.filter((el) => isNode(el))
- : []
- ) as GraphNode[]
- preloadedState.edges = (
- storedState.value.edges
- ? storedState.value.edges
- : options?.edges
- ? options.edges
- : options?.modelValue
- ? options?.modelValue.filter((el) => isEdge(el))
- : []
- ) as GraphEdge[]
- if (storedState.value.position && storedState.value.zoom)
- preloadedState.transform = [storedState.value.position[0], storedState.value.position[1], storedState.value.zoom]
- }
- }
- const store = useFlowStore(preloadedState)
- if (withStorage && storageKey === id) {
- const toObject = onLoadToObject(store.state)
- watch(
- store.state,
- () => {
- storedState.value = toObject()
- },
- { deep: true },
- )
- }
- return store
-}