Skip to content

Commit 5b14938

Browse files
committed
update usePreloadedQuery to take skip
1 parent b701715 commit 5b14938

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/react/hydration.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,19 @@ export type Preloaded<Query extends FunctionReference<"query">> = {
2626
* Throws an error if not used under {@link ConvexProvider}.
2727
*
2828
* @param preloadedQuery - The `Preloaded` query payload from a Server Component.
29+
* @param options - Options for the query, including whether to skip it.
2930
* @returns the result of the query. Initially returns the result fetched
3031
* by the Server Component. Subsequently returns the result fetched by the client.
32+
* If the query is skipped, returns `undefined`.
3133
*
3234
* @public
3335
*/
3436
export function usePreloadedQuery<Query extends FunctionReference<"query">>(
3537
preloadedQuery: Preloaded<Query>,
36-
): Query["_returnType"] {
38+
options?: { skip?: boolean },
39+
): Query["_returnType"] | undefined {
40+
const skip = options?.skip ?? false;
41+
3742
const args = useMemo(
3843
() => jsonToConvex(preloadedQuery._argsJSON),
3944
[preloadedQuery._argsJSON],
@@ -42,9 +47,10 @@ export function usePreloadedQuery<Query extends FunctionReference<"query">>(
4247
() => jsonToConvex(preloadedQuery._valueJSON),
4348
[preloadedQuery._valueJSON],
4449
);
50+
4551
const result = useQuery(
4652
makeFunctionReference(preloadedQuery._name) as Query,
47-
args,
53+
skip ? ("skip" as const) : args,
4854
);
49-
return result === undefined ? preloadedResult : result;
55+
return skip ? undefined : result === undefined ? preloadedResult : result;
5056
}

0 commit comments

Comments
 (0)