feat(intake): minimal layout with no app shell
Phase 8a Task 9. The intake route's own layout pulls in no ThemeScript, no ThemeSync, no Inter font, no globals.css — so the public route ships without the signed-in app shell. Deviation from plan: this layout does NOT redefine <html>/<body>. Next.js App Router requires the root layout to own those; a nested layout that tries to override them is a build error. The intent (public route is its own thing, no app shell) is preserved.
This commit is contained in:
parent
a5bd613757
commit
5137a6dda2
1 changed files with 30 additions and 0 deletions
30
src/app/intake/layout.tsx
Normal file
30
src/app/intake/layout.tsx
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
import type { Metadata } from "next";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Submit a request",
|
||||
description: "Send a request to the developer without signing in.",
|
||||
};
|
||||
|
||||
/**
|
||||
* The intake route's own layout, separate from src/app/layout.tsx.
|
||||
*
|
||||
* The public route must not ship the full client-board app shell, its fonts,
|
||||
* its theme machinery or its analytics — those belong on a signed-in page. A
|
||||
* service worker can cache a smaller payload faster, and offline, and there is
|
||||
* no sidebar to render for an anonymous visitor anyway.
|
||||
*
|
||||
* Deviation from the spec: this layout does NOT render its own <html>/<body>.
|
||||
* The root layout owns those exclusively in Next.js App Router; a nested
|
||||
* layout that tries to redefine them is a build error. The intent is preserved
|
||||
* anyway — this layout pulls in no ThemeScript, no ThemeSync, no Inter font,
|
||||
* no globals.css — so the public route ships without the signed-in app shell.
|
||||
*
|
||||
* Plan 8b adds the manifest link and the iOS-specific meta tags. They live
|
||||
* here, not in src/app/layout.tsx, for the same reason — the public route
|
||||
* is its own thing.
|
||||
*/
|
||||
export default function IntakeLayout({
|
||||
children,
|
||||
}: Readonly<{ children: React.ReactNode }>) {
|
||||
return <>{children}</>;
|
||||
}
|
||||
Loading…
Reference in a new issue