Payload's admin panel ships its own root layout rendering html/body. Next allows multiple root layouts only when no app/layout.tsx exists, so the site's routes move into their own group. Route groups are invisible to routing: every public URL is unchanged, verified against the build's route table. The metadata file conventions deliberately stay at the app/ root. Moving them into the group renamed /icon.png to /icon-4usi79.png (likewise apple-icon and opengraph-image) and dropped /robots.txt altogether, which would have broken the /icon.png cache-control rule, the outputFileTracingIncludes entry for the share card, and robots.txt. darkThemeSafety reads app/globals.css off disk rather than importing it, so it needed its own path fix — a grep for import specifiers misses it, and it fails as an unrunnable suite rather than a failed assertion. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017YmbBhr8s7GusjDE12hrZM
19 lines
731 B
TypeScript
19 lines
731 B
TypeScript
import { absoluteUrl } from '@/lib/site';
|
|
import type { Metadata } from 'next';
|
|
import { AdmissionsView } from '@/components/AdmissionsView';
|
|
|
|
export const dynamic = 'force-static';
|
|
|
|
export const metadata: Metadata = {
|
|
// Deadlines and offer days are what gets searched, and what this page is
|
|
// genuinely best at — the countdowns are live.
|
|
title: { absolute: 'School Admissions Deadlines & Offer Days | schoolcompare' },
|
|
description:
|
|
'Every key date for primary and secondary school admissions in England, with live countdowns to the application deadline and National Offer Day.',
|
|
alternates: { canonical: absoluteUrl('/admissions') },
|
|
};
|
|
|
|
export default function AdmissionsPage() {
|
|
return <AdmissionsView />;
|
|
}
|