29 lines
892 B
TypeScript
29 lines
892 B
TypeScript
/**
|
|
* Root-Layout (plan.md Abschnitt 13).
|
|
*/
|
|
import type { Metadata } from 'next';
|
|
import './globals.css';
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'Kalendartool',
|
|
description: 'Einfaches Kalender- und Reservierungstool',
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{ children: React.ReactNode }>) {
|
|
return (
|
|
<html lang="de" suppressHydrationWarning>
|
|
<head>
|
|
{/* Theme vor dem ersten Paint anwenden, damit kein heller
|
|
Flash im Dark-Mode sichtbar ist. */}
|
|
<script
|
|
dangerouslySetInnerHTML={{
|
|
__html: `(function(){try{var t=localStorage.getItem('calendar-theme');var d=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(!t&&d)){document.documentElement.classList.add('dark');}}catch(e){}})();`,
|
|
}}
|
|
/>
|
|
</head>
|
|
<body>{children}</body>
|
|
</html>
|
|
);
|
|
} |