diff --git a/packages/vue-flow/src/store/actions.ts b/packages/vue-flow/src/store/actions.ts index cb747245..5edd99ff 100644 --- a/packages/vue-flow/src/store/actions.ts +++ b/packages/vue-flow/src/store/actions.ts @@ -340,15 +340,17 @@ export default (state: State, getters: ComputedGetters, id: string): Actions => } let zoomPanHelper: ReturnType - const paneReady = async () => { - const zoompan = useZoomPanHelper(id) + state.hooks.paneReady.on(() => { + zoomPanHelper = useZoomPanHelper(id) + }) + + const paneReady = async () => { return new Promise>((resolve) => { if (!zoomPanHelper) { - state.hooks.paneReady.on(() => { - resolve(zoompan) - zoomPanHelper = zoompan - }) + until(() => zoomPanHelper) + .toBeTruthy() + .then(() => resolve(zoomPanHelper)) } else { resolve(zoomPanHelper) }