Fix sidebar hydration flash

This commit is contained in:
2026-03-12 16:29:28 -04:00
parent b39bc9eccd
commit b9a1d8ba40
4 changed files with 74 additions and 12 deletions

View File

@@ -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>
);