diff --git a/packages/react/src/store/index.ts b/packages/react/src/store/index.ts index 8ca0b050..8e64b51c 100644 --- a/packages/react/src/store/index.ts +++ b/packages/react/src/store/index.ts @@ -45,7 +45,7 @@ const createStore = ({ async function resolveFitView() { const { nodeLookup, panZoom, fitViewOptions, fitViewResolver, width, height, minZoom, maxZoom } = get(); - if (!panZoom) { + if (!panZoom || !fitViewResolver) { return; } @@ -61,7 +61,11 @@ const createStore = ({ fitViewOptions ); - fitViewResolver?.resolve(true); + fitViewResolver.resolve(true); + /** + * wait for the fitViewport to resolve before deleting the resolver, + * we want to reuse the old resolver if the user calls fitView again in the mean time + */ set({ fitViewResolver: null }); }