mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
prefetching is now controlled with the prefetch export and this option is inert on the instant export. this removes the prefetch option as a valid property on the instant config type. also updates the ts plugin for this export and adds the definition for the previously landed prefetch export
33 lines
967 B
TypeScript
33 lines
967 B
TypeScript
// This layout has runtime prefetching enabled. Static parents above it should
|
|
// be able to inline through it and into the static child below, because this
|
|
// layout acts as a transparent pass-through — its slot in the bundle is null
|
|
// but the chain isn't broken.
|
|
import { ReactNode, Suspense } from 'react'
|
|
import { cookies } from 'next/headers'
|
|
|
|
export const unstable_instant = {
|
|
samples: [{ cookies: [{ name: 'theme', value: 'default' }] }],
|
|
}
|
|
export const unstable_prefetch = 'force-runtime'
|
|
|
|
async function DynamicContent() {
|
|
const cookieStore = await cookies()
|
|
const theme = cookieStore.get('theme')?.value ?? 'default'
|
|
return <p id="layout-runtime-passthrough">Runtime layout (theme: {theme})</p>
|
|
}
|
|
|
|
export default function RuntimePassthroughLayout({
|
|
children,
|
|
}: {
|
|
children: ReactNode
|
|
}) {
|
|
return (
|
|
<div>
|
|
<Suspense fallback={<p>Loading layout...</p>}>
|
|
<DynamicContent />
|
|
</Suspense>
|
|
{children}
|
|
</div>
|
|
)
|
|
}
|