Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 9 additions & 5 deletions packages/react/src/query/useLazyQuery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ export interface UseLazyQueryOptions<TData> {
retry?: RetryOptions;
suspense?: boolean;
operationName?: string;
/** Custom GraphQL extensions to be exposed to the query fetcher. */
extensions?: Record<string, unknown>;
}

export interface UseLazyQueryState<TData> {
Expand Down Expand Up @@ -97,18 +99,18 @@ export interface UseLazyQuery<GeneratedSchema extends BaseGeneratedSchema> {
args?: TArgs;
fetchPolicy?: LazyFetchPolicy;
operationName?: string;
}?
}?,
]
: [
{
fn?: (query: GeneratedSchema['query'], args: TArgs) => TData;
args: TArgs;
fetchPolicy?: LazyFetchPolicy;
opertionName?: string;
}
},
]
) => Promise<TData>,
UseLazyQueryState<TData>
UseLazyQueryState<TData>,
];
}

Expand All @@ -131,6 +133,7 @@ export function createUseLazyQuery<TSchema extends BaseGeneratedSchema>(
retry = defaultRetry,
suspense = defaultSuspense,
operationName: defaultOperationName,
extensions,
} = {}
) => {
type TCallback = typeof fn;
Expand All @@ -149,7 +152,7 @@ export function createUseLazyQuery<TSchema extends BaseGeneratedSchema>(
InitUseLazyQueryReducer
) as [
UseLazyQueryState<TData>,
React.Dispatch<UseLazyQueryReducerAction<TData>>
React.Dispatch<UseLazyQueryReducerAction<TData>>,
];

if (suspense) {
Expand Down Expand Up @@ -177,6 +180,7 @@ export function createUseLazyQuery<TSchema extends BaseGeneratedSchema>(
},
retryPolicy: retry,
operationName,
extensions,
}
).then((data) => {
const typedData = data as TData;
Expand Down Expand Up @@ -207,7 +211,7 @@ export function createUseLazyQuery<TSchema extends BaseGeneratedSchema>(
};

return Object.freeze([fetchQuery, state]);
}, [fn, onCompleted, onError, retry]);
}, [fn, onCompleted, onError, retry, extensions]);
};

return useLazyQuery;
Expand Down
6 changes: 6 additions & 0 deletions packages/react/src/query/usePaginatedQuery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ export interface UsePaginatedQueryOptions<TData, TArgs> {
* Activate suspense on first call
*/
suspense?: boolean;
/** Custom GraphQL extensions to be exposed to the query fetcher. */
extensions?: Record<string, unknown>;
}

export interface UsePaginatedQueryData<TData, TArgs> {
Expand Down Expand Up @@ -135,6 +137,7 @@ export const createUsePaginatedQuery =
skip = false,
suspense = defaultSuspense,
operationName,
extensions,
}
) => {
type TCallback = typeof fn;
Expand All @@ -151,6 +154,7 @@ export const createUsePaginatedQuery =
cachePolicy: translateFetchPolicy(hookFetchPolicy),
operationName,
retryPolicy: retry,
extensions,
}),
[hookFetchPolicy, operationName, retry]
);
Expand Down Expand Up @@ -195,6 +199,7 @@ export const createUsePaginatedQuery =
onSelect(selection, cache) {
context.select(selection, cache);
},
extensions,
}) as Promise<TData>;

if (!context.shouldFetch) {
Expand Down Expand Up @@ -226,6 +231,7 @@ export const createUsePaginatedQuery =
operationName,
query,
retry,
extensions,
]
);

Expand Down
10 changes: 8 additions & 2 deletions packages/react/src/query/useRefetch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,14 @@ export interface UseRefetchOptions {
retry?: RetryOptions;
startWatching?: boolean;
suspense?: boolean;
/** Custom GraphQL extensions to be exposed to the query fetcher. */
extensions?: Record<string, unknown>;
}

export interface UseRefetch<TSchema extends BaseGeneratedSchema> {
(refetchOptions?: UseRefetchOptions): (<T = void>(
(
refetchOptions?: UseRefetchOptions
): (<T = void>(
refetchArg?: T | ((query: TSchema['query']) => T)
) => Promise<T | undefined>) &
UseRefetchState;
Expand All @@ -40,6 +44,7 @@ export const createUseRefetch = <TSchema extends BaseGeneratedSchema>(
startWatching = true,
retry = defaultRetry,
suspense = false,
extensions,
} = {}) => {
const [state, setState] = React.useState<{
error?: GQtyError;
Expand Down Expand Up @@ -78,6 +83,7 @@ export const createUseRefetch = <TSchema extends BaseGeneratedSchema>(
const { context, resolve } = client.createResolver({
retryPolicy: retry,
operationName,
extensions,
});

selections.forEach((selection) => {
Expand All @@ -97,7 +103,7 @@ export const createUseRefetch = <TSchema extends BaseGeneratedSchema>(
throw theError;
}
},
[notifyOnNetworkStatusChange, operationName, retry]
[notifyOnNetworkStatusChange, operationName, retry, extensions]
);

return React.useMemo(
Expand Down
4 changes: 4 additions & 0 deletions packages/react/src/query/useTransactionQuery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ export type UseTransactionQueryOptions<TData, TVariables> = {
retry?: RetryOptions;
suspense?: boolean;
operationName?: string;
/** Custom GraphQL extensions to be exposed to the query fetcher. */
extensions?: Record<string, unknown>;
};

export interface UseTransactionQuery<TSchema extends BaseGeneratedSchema> {
Expand Down Expand Up @@ -75,6 +77,7 @@ export function createUseTransactionQuery<TSchema extends BaseGeneratedSchema>(
skip = false,
suspense = defaultSuspense,
variables,
extensions,
} = {}
) => {
const query = useQuery({
Expand All @@ -89,6 +92,7 @@ export function createUseTransactionQuery<TSchema extends BaseGeneratedSchema>(
refetchOnWindowVisible: false,
retry,
suspense,
extensions,
});

useUpdateEffect(() => {
Expand Down