38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import type { Metadata } from 'next';
|
|
import { Geist, Geist_Mono } from 'next/font/google';
|
|
import { ThemeProvider } from '@/providers/theme-provider';
|
|
import './globals.css';
|
|
|
|
const geistSans = Geist({
|
|
variable: '--font-geist-sans',
|
|
subsets: ['latin', 'cyrillic']
|
|
});
|
|
|
|
const geistMono = Geist_Mono({
|
|
variable: '--font-geist-mono',
|
|
subsets: ['latin']
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: {
|
|
default: 'Документация',
|
|
template: '%s — Docs'
|
|
},
|
|
description: 'Документация по интеграции, OAuth 2.0, развёртыванию и REST API Identity Provider.'
|
|
};
|
|
|
|
const themeScript = `(function(){try{var t=localStorage.getItem('docs-theme');var dark=t==='dark'||(t!=='light'&&window.matchMedia('(prefers-color-scheme: dark)').matches);document.documentElement.classList.toggle('dark',dark);}catch(e){}})();`;
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<html lang="ru" suppressHydrationWarning>
|
|
<head>
|
|
<script dangerouslySetInnerHTML={{ __html: themeScript }} />
|
|
</head>
|
|
<body className={`${geistSans.variable} ${geistMono.variable} min-h-screen antialiased`}>
|
|
<ThemeProvider>{children}</ThemeProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|