Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[experiment/idea] allow enabling "forced suspense" for useQuery hook in SSR #226

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

phryneas
Copy link
Member

@phryneas phryneas commented Mar 6, 2024

This came up in https://community.apollographql.com/t/streaming-without-suspense-in-apollo-nextjs-client/7259 - essentially, we could allow users to opt useQuery into suspending during SSR, so useQuery result could also be streamed from SSR instead of just rendering a "loading" indicator in SSR.

If we actually want to do this, it should probably be documented as a "you can do this while you are migrating to suspense" approach.

Copy link

relativeci bot commented Mar 6, 2024

Job #116: Bundle Size — 1.01MiB (+0.65%).

b1a2f84(current) vs 1f8cda5 main#115(baseline)

Warning

Bundle contains 1 duplicate package – View duplicate packages

Bundle metrics  Change 5 changes Regression 1 regression
                 Current
Job #116
     Baseline
Job #115
Regression  Initial JS 892.78KiB(+0.25%) 890.58KiB
No change  Initial CSS 0B 0B
Change  Cache Invalidation 15.31% 0%
Change  Chunks 25(+4.17%) 24
Change  Assets 47(+4.44%) 45
Change  Modules 514(+0.39%) 512
No change  Duplicate Modules 30 30
No change  Duplicate Code 1.29% 1.29%
No change  Packages 29 29
No change  Duplicate Packages 1 1
Bundle size by type  Change 2 changes Regression 2 regressions
                 Current
Job #116
     Baseline
Job #115
Regression  JS 1.01MiB (+0.62%) 1023.84KiB
Regression  Other 6.38KiB (+6.37%) 5.99KiB

View job #116 reportView pr/useQuery_forcedSuspense branch activityView project dashboard

export const dynamic = "force-dynamic";

export default function Page() {
enableSSRWaitForUseQuery(useApolloClient());
Copy link
Member Author

@phryneas phryneas Mar 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line should usually be called once per application as part of makeClient, but here I wanted to enable this behaviour just for that one page.

@phryneas
Copy link
Member Author

phryneas commented Mar 6, 2024

/release:pr

Copy link

github-actions bot commented Mar 6, 2024

A new release has been made for this PR. You can install the package you need using one of

  • npm i @apollo/experimental-nextjs-app-support@0.0.0-commit-312f655
  • npm i @apollo/client-react-streaming@0.0.0-commit-312f655

Base automatically changed from pr/adjust-datatransport to main March 12, 2024 13:55
Copy link

github-actions bot commented Apr 5, 2024

size-limit report 📦

Path Size
{ ApolloNextAppProvider, NextSSRApolloClient, NextSSRInMemoryCache } from '@apollo/experimental-nextjs-app-support/ssr' (Browser ESM) 7.78 KB (0%)
{ WrapApolloProvider, ApolloClient, InMemoryCache } from '@apollo/client-react-streaming' (Browser ESM) 1.4 KB (0%)
{ buildManualDataTransport } from '@apollo/client-react-streaming/manual-transport' (Browser ESM) 6.29 KB (+0.39% 🔺)
@apollo/client-react-streaming (Browser ESM) 2.15 KB (+1.11% 🔺)
@apollo/client-react-streaming (SSR ESM) 1.91 KB (+9% 🔺)
@apollo/client-react-streaming (RSC ESM) 1.36 KB (0%)
@apollo/client-react-streaming/manual-transport (Browser ESM) 6.48 KB (+0.41% 🔺)
@apollo/client-react-streaming/manual-transport (SSR ESM) 6.5 KB (+2.51% 🔺)
@apollo/experimental-nextjs-app-support/ssr (Browser ESM) 8.41 KB (0%)
@apollo/experimental-nextjs-app-support/ssr (SSR ESM) 8.33 KB (+0.03% 🔺)
@apollo/experimental-nextjs-app-support/ssr (RSC ESM) 867 B (0%)
@apollo/experimental-nextjs-app-support/rsc (RSC ESM) 626 B (0%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant