From faf8af8da911ffe048daa434ab319923f25d931a Mon Sep 17 00:00:00 2001 From: Nicolai Moraru Date: Thu, 22 Aug 2024 18:24:45 +0300 Subject: [PATCH 1/2] fix: onServerPrefetch calls outside components setup --- packages/vue-apollo-composable/src/useQuery.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/vue-apollo-composable/src/useQuery.ts b/packages/vue-apollo-composable/src/useQuery.ts index 92544691..3d7f5c56 100644 --- a/packages/vue-apollo-composable/src/useQuery.ts +++ b/packages/vue-apollo-composable/src/useQuery.ts @@ -6,6 +6,7 @@ import { watch, onServerPrefetch, getCurrentScope, + getCurrentInstance, onScopeDispose, nextTick, shallowRef, @@ -152,6 +153,7 @@ export function useQueryImpl< lazy = false, ): UseQueryReturn { const currentScope = getCurrentScope() + const currentInstance = getCurrentInstance() const currentOptions = ref>() @@ -200,7 +202,7 @@ export function useQueryImpl< firstRejectError = undefined } - currentScope && onServerPrefetch?.(() => { + currentInstance && onServerPrefetch?.(() => { if (!isEnabled.value || (isServer && currentOptions.value?.prefetch === false)) return return new Promise((resolve, reject) => { From 19b0972fa4742655095e90bbaa895b870625ca8d Mon Sep 17 00:00:00 2001 From: Nicolai Moraru Date: Thu, 22 Aug 2024 18:25:17 +0300 Subject: [PATCH 2/2] fix: replace onUnmounted with onScopeDispose --- packages/vue-apollo-composable/src/util/loadingTracking.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vue-apollo-composable/src/util/loadingTracking.ts b/packages/vue-apollo-composable/src/util/loadingTracking.ts index 7b51bebb..3abb41ef 100644 --- a/packages/vue-apollo-composable/src/util/loadingTracking.ts +++ b/packages/vue-apollo-composable/src/util/loadingTracking.ts @@ -1,4 +1,4 @@ -import { Ref, watch, onUnmounted, ref, getCurrentScope, onScopeDispose } from 'vue-demi' +import { Ref, watch, ref, getCurrentScope, onScopeDispose } from 'vue-demi' import { isServer } from './env.js' import type { EffectScope } from 'vue-demi' @@ -36,7 +36,7 @@ export function getCurrentTracking () { subscriptions: ref(0), }) // Cleanup - onUnmounted(() => { + onScopeDispose(() => { globalTracking.components.delete(currentScope) }) } else {