rsnext/packages/next
Andrew Clark b83e0f5843
[PPR Navs] Bugfix: Dynamic data never streams in if prefetch entry is stale (#59833)
Adds a regression test and a fix for a bug that sometimes happens when a
prefetched route on the client becomes stale — the app would get stuck
in a loading state.

The problem was the condition I used to fallback to the non-PPR
implementation, inside navigateReducer. It was too narrow, causing
prefetched segments that contained dynamic holes to sometimes be treated
as if they were complete. The net effect was that the dynamic data would
never stream in, and the page would get stuck in a fallback state until
the stale prefetch was eventually purged from the cache, or the user
refreshed the page.

The reason the mistake happened was, as an incremental step, I decided
to fallback to the non-PPR implementation for any case where I hadn't
yet implemented the equivalent functionality. I think still think this
is a good strategy, despite the mistake, but I'm eager to get everything
migrated to the new model as soon as possible.


Closes NEXT-1920
2023-12-21 07:49:30 -08:00
..
compat
experimental/testmode
font
image-types
legacy
navigation-types/compat Update useParams typing to assume a given shape (#55126) 2023-09-14 20:20:42 +00:00
src [PPR Navs] Bugfix: Dynamic data never streams in if prefetch entry is stale (#59833) 2023-12-21 07:49:30 -08:00
types fix: add maxDuration to PageConfig type (#55918) 2023-12-01 10:58:02 +01:00
amp.d.ts
amp.js
app.d.ts
app.js
babel.d.ts
babel.js
cache.d.ts cache: add unstable_noStore API (#56930) 2023-10-17 14:52:46 +00:00
cache.js chore: fix a typo (#57272) 2023-10-23 17:10:35 +00:00
client.d.ts
client.js
config.d.ts server: bundle vendored react (#55362) 2023-09-15 19:49:39 +00:00
config.js server: bundle vendored react (#55362) 2023-09-15 19:49:39 +00:00
constants.d.ts
constants.js
document.d.ts
document.js
dynamic.d.ts
dynamic.js
error.d.ts
error.js
head.d.ts
head.js
headers.d.ts
headers.js
image.d.ts
image.js
index.d.ts perf: replace zod with superstruct (#56083) 2023-09-28 11:05:36 +02:00
jest.d.ts
jest.js
license.md
link.d.ts
link.js
navigation.d.ts
navigation.js
og.d.ts Move ImageResponse to next/og (#56662) 2023-10-19 14:26:48 +00:00
og.js Move ImageResponse to next/og (#56662) 2023-10-19 14:26:48 +00:00
package.json v14.0.5-canary.22 2023-12-20 23:22:10 +00:00
README.md
router.d.ts
router.js
script.d.ts
script.js
server.d.ts
server.js
taskfile-ncc.js
taskfile-swc.js Use new JSX transform (#56294) 2023-12-09 00:17:50 +01:00
taskfile-watch.js
taskfile-webpack.js Unsilence Taskr Webpack errors (#56542) 2023-10-06 23:38:18 +00:00
taskfile.js Upgrade og dependencies (#59541) 2023-12-21 14:50:57 +01:00
tsconfig.json Use new JSX transform (#56294) 2023-12-09 00:17:50 +01:00
web-vitals.d.ts
web-vitals.js
webpack.config.js Optionally bundle legacy react-dom/server APIs based on usage (#59737) 2023-12-20 16:50:06 +01:00

Next.js

Getting Started

Visit https://nextjs.org/learn to get started with Next.js.

Documentation

Visit https://nextjs.org/docs to view the full documentation.

Who is using Next.js?

Next.js is used by the world's leading companies. Check out the Next.js Showcase to learn more.

Community

The Next.js community can be found on GitHub Discussions, where you can ask questions, voice ideas, and share your projects.

To chat with other community members you can join the Next.js Discord.

Our Code of Conduct applies to all Next.js community channels.

Contributing

Please see our contributing.md.

Good First Issues

We have a list of good first issues that contain bugs that have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.

Authors

Security

If you believe you have found a security vulnerability in Next.js, we encourage you to responsibly disclose this and not open a public issue. We will investigate all legitimate reports. Email security@vercel.com to disclose any security vulnerabilities.

https://vercel.com/security