Skip to content

Commit 98f413e

Browse files
committed
Keep metadata outlet consistent in prerender and resume
1 parent f23f935 commit 98f413e

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

packages/next/src/server/app-render/create-component-tree.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -420,11 +420,11 @@ async function createComponentTreeInternal(
420420
? process.env.__NEXT_EDGE_PROJECT_DIR
421421
: ctx.renderOpts.dir) || ''
422422

423-
// Use the same condition to render metadataOutlet as metadata
424-
const metadataOutlet = StreamingMetadataOutlet ? (
425-
<StreamingMetadataOutlet />
426-
) : (
427-
<MetadataOutlet ready={getMetadataReady} />
423+
const metadataOutlet = (
424+
<MetadataOutlet
425+
ready={getMetadataReady}
426+
StreamingComponent={StreamingMetadataOutlet}
427+
/>
428428
)
429429

430430
const [notFoundElement, notFoundFilePath] =
@@ -1014,9 +1014,15 @@ async function createComponentTreeInternal(
10141014

10151015
async function MetadataOutlet({
10161016
ready,
1017+
StreamingComponent,
10171018
}: {
10181019
ready: () => Promise<void> & { status?: string; value?: unknown }
1020+
StreamingComponent?: React.ComponentType | null
10191021
}) {
1022+
if (StreamingComponent) {
1023+
return <StreamingComponent />
1024+
}
1025+
10201026
const r = ready()
10211027
// We can avoid a extra microtask by unwrapping the instrumented promise directly if available.
10221028
if (r.status === 'rejected') {

0 commit comments

Comments
 (0)