diff --git a/.changeset/polite-crabs-obey.md b/.changeset/polite-crabs-obey.md new file mode 100644 index 0000000..07cfa50 --- /dev/null +++ b/.changeset/polite-crabs-obey.md @@ -0,0 +1,6 @@ +--- +"@vue3-apollo/core": patch +"@vue3-apollo/nuxt": patch +--- + +fix(core): support reactive GraphQL documents in useQuery #27 diff --git a/packages/core/src/composables/useQuery.ts b/packages/core/src/composables/useQuery.ts index ce256bf..5ed5553 100644 --- a/packages/core/src/composables/useQuery.ts +++ b/packages/core/src/composables/useQuery.ts @@ -119,7 +119,7 @@ export type UseQueryOptions( - document: DocumentNode | TypedDocumentNode, + document: MaybeRefOrGetter>, variables?: MaybeRefOrGetter, options?: UseQueryOptions ) { @@ -171,6 +171,8 @@ export function useQuery toValue(document)) + const getQueryOptions = () => { if (!options) { return {} @@ -189,7 +191,7 @@ export function useQuery({ ...getQueryOptions(), - query: document, + query: reactiveDocument.value, variables: toValue(reactiveVariables) }) @@ -271,7 +273,7 @@ export function useQuery({ - query: document, + query: reactiveDocument.value, variables: toValue(reactiveVariables) }) @@ -288,7 +290,7 @@ export function useQuery({ notifyOnNetworkStatusChange: options?.notifyOnNetworkStatusChange ?? options?.keepPreviousResult, - query: document, + query: reactiveDocument.value, variables: toValue(reactiveVariables), ...getQueryOptions() }) @@ -329,6 +331,13 @@ export function useQuery { + if (enabled.value) { + stop() + start() + } + }) } const refetch = async (variables?: TVariables) => { diff --git a/packages/operations/src/entries/queries.graphql b/packages/operations/src/entries/queries.graphql index 43ce851..c48f3b4 100644 --- a/packages/operations/src/entries/queries.graphql +++ b/packages/operations/src/entries/queries.graphql @@ -11,4 +11,10 @@ query Posts($userId: Int, $first: Int) { id ...PostDetail } +} + +query Todos($userId: Int, $first: Int) { + todos(userId: $userId, first: $first) { + id + } } \ No newline at end of file diff --git a/packages/web/src/App.vue b/packages/web/src/App.vue index f978681..e32eeb3 100644 --- a/packages/web/src/App.vue +++ b/packages/web/src/App.vue @@ -1,9 +1,14 @@