Skip to content

Commit e0bd797

Browse files
CopilotIzumiSy
andauthored
refactor(nextjs-example): use next/script for initial appearance preload
Agent-Logs-Url: https://github.com/tailor-platform/app-shell/sessions/08329a5f-d86d-4778-8393-a5757806ebae Co-authored-by: IzumiSy <982850+IzumiSy@users.noreply.github.com>
1 parent 8e189e4 commit e0bd797

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

docs/api/use-theme.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,13 +185,16 @@ The package exports **`getInitialAppearanceScript()`** which returns a tiny scri
185185

186186
```tsx
187187
// app/layout.tsx (Next.js App Router)
188+
import Script from "next/script";
188189
import { getInitialAppearanceScript } from "@tailor-platform/app-shell/initial-appearance";
189190

190191
export default function RootLayout({ children }) {
191192
return (
192193
<html lang="en" suppressHydrationWarning>
193194
<head>
194-
<script dangerouslySetInnerHTML={{ __html: getInitialAppearanceScript() }} />
195+
<Script id="app-shell-initial-appearance" strategy="beforeInteractive">
196+
{getInitialAppearanceScript()}
197+
</Script>
195198
</head>
196199
<body>{children}</body>
197200
</html>

examples/nextjs-app/src/app/layout.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { Metadata } from "next";
2+
import Script from "next/script";
23
import { Geist, Geist_Mono } from "next/font/google";
34
import { getInitialAppearanceScript } from "@tailor-platform/app-shell/initial-appearance";
45
import "@tailor-platform/app-shell/styles";
@@ -28,7 +29,9 @@ export default function RootLayout({
2829
<html lang="en" suppressHydrationWarning>
2930
<head>
3031
{/* Apply stored appearance before paint to avoid FOUC + hydration warnings. */}
31-
<script dangerouslySetInnerHTML={{ __html: getInitialAppearanceScript() }} />
32+
<Script id="app-shell-initial-appearance" strategy="beforeInteractive">
33+
{getInitialAppearanceScript()}
34+
</Script>
3235
</head>
3336
<body className={`${geistSans.variable} ${geistMono.variable} antialiased`}>{children}</body>
3437
</html>

0 commit comments

Comments
 (0)