39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import './globals.css';
|
|
import type { Metadata, Viewport } from 'next';
|
|
import { cookies } from 'next/headers';
|
|
import { SidebarPreferenceProvider } from '@/components/providers/sidebar-preference-provider';
|
|
import { QueryProvider } from '@/components/providers/query-provider';
|
|
import {
|
|
SIDEBAR_PREFERENCE_KEY,
|
|
parseSidebarPreference
|
|
} from '@/lib/sidebar-preference';
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'Fiscal Clone',
|
|
description: 'Futuristic fiscal intelligence terminal with durable tasks and AI SDK integration.'
|
|
};
|
|
|
|
export const viewport: Viewport = {
|
|
width: 'device-width',
|
|
initialScale: 1,
|
|
viewportFit: 'cover',
|
|
themeColor: '#121417'
|
|
};
|
|
|
|
export default async function RootLayout({ children }: { children: React.ReactNode }) {
|
|
const cookieStore = await cookies();
|
|
const initialSidebarCollapsed = parseSidebarPreference(
|
|
cookieStore.get(SIDEBAR_PREFERENCE_KEY)?.value
|
|
);
|
|
|
|
return (
|
|
<html lang="en">
|
|
<body>
|
|
<SidebarPreferenceProvider initialSidebarCollapsed={initialSidebarCollapsed}>
|
|
<QueryProvider>{children}</QueryProvider>
|
|
</SidebarPreferenceProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|