From 5b6313f16f508882a0ea67716b7dbaa1c6967f04 Mon Sep 17 00:00:00 2001 From: dujinkim Date: Mon, 30 Jun 2025 08:28:13 +0000 Subject: (대표님) 20250630 16시 - 유저 도메인별 라우터 분리와 보안성검토 대응 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/layout/MobileMenu.tsx | 87 +++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 36 deletions(-) (limited to 'components/layout/MobileMenu.tsx') diff --git a/components/layout/MobileMenu.tsx b/components/layout/MobileMenu.tsx index 2e70aeba..dc02d2e3 100644 --- a/components/layout/MobileMenu.tsx +++ b/components/layout/MobileMenu.tsx @@ -5,29 +5,42 @@ import * as React from "react"; import Link from "next/link"; import { useRouter, usePathname } from "next/navigation"; -import { MenuSection, mainNav, additionalNav, MenuItem, mainNavVendor, additionalNavVendor } from "@/config/menuConfig"; +import { MenuSection, MenuItem } from "@/config/menuConfig"; import { cn } from "@/lib/utils"; import { Drawer, DrawerContent, DrawerTitle, DrawerTrigger } from "@/components/ui/drawer"; import { Button } from "@/components/ui/button"; +import { filterActiveMenus, filterActiveAdditionalMenus } from "@/hooks/use-active-menus"; interface MobileMenuProps { lng: string; onClose: () => void; + activeMenus?: Record; + domainMain?: MenuSection[]; // 헤더에서 계산된 도메인별 메인 메뉴 + domainAdditional?: MenuItem[]; // 헤더에서 계산된 도메인별 추가 메뉴 } -export function MobileMenu({ lng, onClose }: MobileMenuProps) { +export function MobileMenu({ + lng, + onClose, + activeMenus = {}, + domainMain = [], + domainAdditional = [] +}: MobileMenuProps) { const router = useRouter(); - - + const handleLinkClick = (href: string) => { router.push(href); onClose(); }; - const pathname = usePathname(); - const isPartnerRoute = pathname?.includes("/partners"); - const main = isPartnerRoute ? mainNavVendor : mainNav; - const additional = isPartnerRoute ? additionalNavVendor : additionalNav; + // 활성 메뉴만 필터링 (activeMenus가 빈 객체면 모든 메뉴 표시) + const main = Object.keys(activeMenus).length > 0 + ? filterActiveMenus(domainMain, activeMenus) + : domainMain; + + const additional = Object.keys(activeMenus).length > 0 + ? filterActiveAdditionalMenus(domainAdditional, activeMenus) + : domainAdditional; return ( @@ -36,42 +49,44 @@ export function MobileMenu({ lng, onClose }: MobileMenuProps) {
-