mirror of
https://github.com/hanzoai/next.js.git
synced 2026-10-30 14:46:38 +00:00
Extracted from #94595 . The root layout includes a timestamp that we use to check if the root layout changed during a navigation, but it was unnecessarily using `await connection(); Date.now()` when a `performance.now()`would be enough. Changing it to not introduce a random dynamic hole which could affect validation in some way. This change revealed that some client component tests were implicitly relying on the dynamic timestamp component as a workaround for NAR-800 . I've added a workaround dynamic component to each of the relevant tests, those can be removed when we fix the bug.
29 lines
715 B
TypeScript
29 lines
715 B
TypeScript
import { ReactNode, Suspense } from 'react'
|
|
import { RootLayoutTimestamp } from '../shared'
|
|
|
|
export default function RootLayout({ children }: { children: ReactNode }) {
|
|
return (
|
|
// We're mostly interested in checking client navigations,
|
|
// so to avoid having to give each test case a valid static shell,
|
|
// we put a Suspense above the body.
|
|
<Suspense fallback={<div>Root suspense boundary...</div>}>
|
|
<html>
|
|
<body style={{ fontFamily: 'monospace' }}>
|
|
<Header />
|
|
<hr />
|
|
{children}
|
|
</body>
|
|
</html>
|
|
</Suspense>
|
|
)
|
|
}
|
|
|
|
function Header() {
|
|
return (
|
|
<header>
|
|
<a href="/">Home</a>
|
|
<RootLayoutTimestamp />
|
|
</header>
|
|
)
|
|
}
|