Fix sidebar hydration flash
This commit is contained in:
@@ -1,6 +1,12 @@
|
||||
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',
|
||||
@@ -14,11 +20,18 @@ export const viewport: Viewport = {
|
||||
themeColor: '#121417'
|
||||
};
|
||||
|
||||
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
||||
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>
|
||||
<QueryProvider>{children}</QueryProvider>
|
||||
<SidebarPreferenceProvider initialSidebarCollapsed={initialSidebarCollapsed}>
|
||||
<QueryProvider>{children}</QueryProvider>
|
||||
</SidebarPreferenceProvider>
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user