diff --git a/app/(admin)/MobileNav.tsx b/app/(admin)/MobileNav.tsx new file mode 100644 index 0000000..a0a0065 --- /dev/null +++ b/app/(admin)/MobileNav.tsx @@ -0,0 +1,97 @@ +"use client"; + +import { useEffect, useState } from "react"; +import Link from "next/link"; +import { usePathname } from "next/navigation"; +import { Menu, X } from "lucide-react"; + +import { cn } from "@/lib/utils"; +import { navItems } from "./nav-config"; + +export function MobileNav() { + const [isOpen, setIsOpen] = useState(false); + const pathname = usePathname(); + + useEffect(() => { + setIsOpen(false); + }, [pathname]); + + useEffect(() => { + if (!isOpen) { + document.body.style.overflow = ""; + return; + } + + document.body.style.overflow = "hidden"; + + function handleKeyDown(e: KeyboardEvent) { + if (e.key === "Escape") setIsOpen(false); + } + + document.addEventListener("keydown", handleKeyDown); + return () => { + document.removeEventListener("keydown", handleKeyDown); + }; + }, [isOpen]); + + return ( + <> + + + {/* 배경 오버레이 — 탭하면 닫힘 */} +