-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlayout.tsx
65 lines (59 loc) · 1.71 KB
/
layout.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import './globals.css';
import { Toaster } from 'sonner';
import { Inter } from 'next/font/google';
import type { Metadata } from 'next';
import { Analytics } from '@vercel/analytics/react';
import { EdgeStoreProvider } from '@/lib/edgestore';
import ThemeProvider from '@/components/providers/theme-provider';
import ModalProvider from '@/components/providers/modal-provider';
import ConvexClientProvider from '@/components/providers/convex-provider';
const inter = Inter({ subsets: ['latin'] })
export const metadata: Metadata = {
title: 'Jotion',
description: 'The connected workspace where better, faster work happens.',
icons: {
icon: [
{
media: '(prefers-color-scheme: light)',
url: '/icons/logo.svg',
href: '/icons/logo.svg'
},
{
media: '(prefers-color-scheme: dark)',
url: '/icons/logo-dark.svg',
href: '/icons/logo-dark.svg'
}
]
}
};
type RootLayoutProps = {
children: React.ReactNode;
};
/**
* Function representing the RootLayout component.
*
* @returns RootLayout component
*/
export default function RootLayout({ children }: RootLayoutProps) {
return (
<html lang="en" suppressHydrationWarning>
<body className={inter.className}>
<ConvexClientProvider>
<EdgeStoreProvider>
<ThemeProvider
attribute="class"
defaultTheme="system"
enableSystem
storageKey="jotion-theme"
>
{children}
<Analytics />
<ModalProvider />
<Toaster position="bottom-center" />
</ThemeProvider>
</EdgeStoreProvider>
</ConvexClientProvider>
</body>
</html>
);
}