Fix: Hydration mismatch by extracting MobileSidebar and using isMounted check

This commit is contained in:
2025-12-03 21:55:26 +03:00
parent 53b8a87580
commit f670d8220f
3 changed files with 38 additions and 28 deletions

View File

@@ -1,19 +1,13 @@
'use client'
import { MainNav } from "@/components/main-nav"
import { UserNav } from "@/components/user-nav"
import { Building, Menu } from "lucide-react"
import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"
import { Button } from "@/components/ui/button"
import { useState } from "react"
import { Building } from "lucide-react"
import { MobileSidebar } from "@/components/mobile-sidebar"
export default function DashboardLayout({
children,
}: {
children: React.ReactNode
}) {
const [isMobileOpen, setIsMobileOpen] = useState(false)
return (
<div className="flex min-h-screen bg-gray-50/50 dark:bg-gray-900/50">
{/* Desktop Sidebar */}
@@ -26,17 +20,7 @@ export default function DashboardLayout({
{/* Header */}
<header className="sticky top-0 z-40 h-16 glass border-b px-4 md:px-6 flex items-center justify-between">
<div className="flex items-center gap-2 md:hidden">
<Sheet open={isMobileOpen} onOpenChange={setIsMobileOpen}>
<SheetTrigger asChild>
<Button variant="ghost" size="icon" className="md:hidden">
<Menu className="h-6 w-6" />
<span className="sr-only">Menüyü </span>
</Button>
</SheetTrigger>
<SheetContent side="left" className="p-0 w-72">
<MainNav onNavClick={() => setIsMobileOpen(false)} />
</SheetContent>
</Sheet>
<MobileSidebar />
<div className="flex items-center font-bold text-lg">
<Building className="mr-2 h-5 w-5 text-primary" />
WeddingOS