Skip to content

Commit 7cf8d7d

Browse files
committed
chore(core): update panzoom usage
Signed-off-by: braks <[email protected]>
1 parent 084d57b commit 7cf8d7d

File tree

3 files changed

+13
-19
lines changed

3 files changed

+13
-19
lines changed

packages/core/src/container/ZoomPane/ZoomPane.vue

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,12 @@ useResizeHandler(zoomPane)
5252
5353
onMounted(() => {
5454
if (zoomPane.value) {
55-
panZoom.value = XYPanZoom({
55+
const panZoomInstance = XYPanZoom({
5656
domNode: zoomPane.value,
5757
minZoom: minZoom.value,
5858
maxZoom: maxZoom.value,
5959
translateExtent: translateExtent.value,
6060
viewport: { ...viewport.value, ...defaultViewport.value },
61-
paneClickDistance: 0,
62-
onTransformChange: (transform) => {
63-
emits.viewportChange({ x: transform[0], y: transform[1], zoom: transform[2] })
64-
65-
viewport.value = { x: transform[0], y: transform[1], zoom: transform[2] }
66-
},
6761
onDraggingChange: (isDraggingPane) => (paneDragging.value = isDraggingPane),
6862
onPanZoomStart: (event, viewport) => {
6963
emits.moveStart({ event, viewport })
@@ -79,9 +73,8 @@ onMounted(() => {
7973
},
8074
})
8175
82-
const { x, y, zoom } = panZoom.value!.getViewport()
83-
84-
viewport.value = { x, y, zoom }
76+
viewport.value = panZoomInstance.getViewport()
77+
panZoom.value = panZoomInstance
8578
8679
onUnmounted(() => {
8780
panZoom.value?.destroy()
@@ -101,6 +94,7 @@ onMounted(() => {
10194
noPanClassName,
10295
userSelectionActive,
10396
noWheelClassName,
97+
connectionStartHandle,
10498
],
10599
() => {
106100
panZoom.value?.update({
@@ -116,17 +110,17 @@ onMounted(() => {
116110
noPanClassName: noPanClassName.value,
117111
userSelectionActive: userSelectionActive.value,
118112
noWheelClassName: noWheelClassName.value,
113+
paneClickDistance: 0,
114+
onTransformChange: (transform) => {
115+
emits.viewportChange({ x: transform[0], y: transform[1], zoom: transform[2] })
116+
viewport.value = { x: transform[0], y: transform[1], zoom: transform[2] }
117+
},
118+
connectionInProgress: !!connectionStartHandle.value,
119119
lib: 'vue',
120120
})
121121
},
122122
{ immediate: true },
123123
)
124-
125-
/* todo: do we need this?
126-
watch(viewport, (nextViewport) => {
127-
panZoom.value?.syncViewport(nextViewport)
128-
})
129-
*/
130124
}
131125
})
132126
</script>

packages/core/src/types/store.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export interface State<NodeType extends Node = Node> extends Omit<FlowProps, 'id
4646
viewportRef: HTMLDivElement | null
4747

4848
/** Event hooks, you can manipulate the triggers at your own peril */
49-
readonly hooks: FlowHooks
49+
readonly hooks: FlowHooks<NodeType>
5050

5151
/** all stored nodes */
5252
nodes: GraphNode<NodeType>[]

packages/core/src/utils/storage.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export class Storage {
4343
public create<NodeType extends Node = Node>(id: string, preloadedState?: FlowProps<NodeType>): VueFlowStore<NodeType> {
4444
const state = useState<NodeType>()
4545

46-
const reactiveState = reactive(state)
46+
const reactiveState = reactive(state) as any
4747

4848
const hooksOn = <any>{}
4949
for (const [n, h] of Object.entries(reactiveState.hooks)) {
@@ -76,7 +76,7 @@ export class Storage {
7676
return edgesMap
7777
})
7878

79-
const getters = useGetters<NodeType>(reactiveState, nodeLookup, edgeLookup)
79+
const getters = useGetters(reactiveState, nodeLookup, edgeLookup)
8080

8181
const actions = useActions<NodeType>(reactiveState, nodeLookup, edgeLookup)
8282

0 commit comments

Comments
 (0)