From 563db9bba32c0b656da0465f60e61abde23af445 Mon Sep 17 00:00:00 2001 From: Jerel Miller Date: Tue, 11 Feb 2025 03:08:19 -0700 Subject: [PATCH] Add support for `useSuspenseFragment` (#427) * Add useSuspenseFragment to hooks * Update nextjs preload query w/ defer to use useSuspenseFragment * add changeset --------- Co-authored-by: Lenz Weber-Tronic --- .changeset/rich-seahorses-reply.md | 5 ++ .../ClientChild.tsx | 60 ++++++++++++------- .../defer-queryRef-useReadQuery/page.tsx | 4 +- integration-test/shared/queries.ts | 34 ++++++++++- .../src/DataTransportAbstraction/hooks.ts | 3 + 5 files changed, 80 insertions(+), 26 deletions(-) create mode 100644 .changeset/rich-seahorses-reply.md diff --git a/.changeset/rich-seahorses-reply.md b/.changeset/rich-seahorses-reply.md new file mode 100644 index 00000000..a8d7e706 --- /dev/null +++ b/.changeset/rich-seahorses-reply.md @@ -0,0 +1,5 @@ +--- +"@apollo/client-react-streaming": patch +--- + +add support for `useSuspenseFragment` diff --git a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/ClientChild.tsx b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/ClientChild.tsx index ebde96e5..d811d392 100644 --- a/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/ClientChild.tsx +++ b/integration-test/nextjs/src/app/rsc/dynamic/PreloadQuery/defer-queryRef-useReadQuery/ClientChild.tsx @@ -4,10 +4,14 @@ import { useApolloClient, useQueryRefHandlers, useReadQuery, + useSuspenseFragment, } from "@apollo/client"; -import { DeferredDynamicProductResult } from "@integration-test/shared/queries"; +import { + DeferredDynamicProductResult, + RATING_FRAGMENT, +} from "@integration-test/shared/queries"; import { TransportedQueryRef } from "@apollo/experimental-nextjs-app-support"; -import { useTransition } from "react"; +import { Suspense, useTransition } from "react"; export function ClientChild({ queryRef, @@ -17,21 +21,18 @@ export function ClientChild({ const { refetch } = useQueryRefHandlers(queryRef); const [refetching, startTransition] = useTransition(); const { data } = useReadQuery(queryRef); - const client = useApolloClient(); return ( <> @@ -39,18 +40,6 @@ export function ClientChild({