"use client"; import * as React from "react"; import Link from "next/link"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Avatar, AvatarImage, AvatarFallback } from "@/components/ui/avatar"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, } from "@/components/ui/navigation-menu"; import { SearchIcon, BellIcon, Menu } from "lucide-react"; import { useParams, usePathname } from "next/navigation"; import { cn } from "@/lib/utils"; import Image from "next/image"; import { mainNav, additionalNav, MenuSection, MenuItem, mainNavVendor, additionalNavVendor } from "@/config/menuConfig"; // 메뉴 구성 임포트 import { MobileMenu } from "./MobileMenu"; import { CommandMenu } from "./command-menu"; import { useSession } from "next-auth/react"; import { customSignOut } from "@/lib/auth/custom-signout"; import GroupedMenuRenderer from "./GroupedMenuRender"; import { useTranslation } from '@/i18n/client'; export function HeaderSimple() { const params = useParams(); const lng = params?.lng as string; const pathname = usePathname(); const { data: session } = useSession(); const { t } = useTranslation(lng, 'menu'); const userName = session?.user?.name || ""; const domain = session?.user?.domain || ""; const initials = userName .split(" ") .map((word) => word[0]?.toUpperCase()) .join(""); const [isMobileMenuOpen, setIsMobileMenuOpen] = React.useState(false); // 모바일 메뉴 상태 const toggleMobileMenu = () => { setIsMobileMenuOpen(!isMobileMenuOpen); }; const isPartnerRoute = pathname?.includes("/partners"); const main = isPartnerRoute ? mainNavVendor : mainNav; const additional = isPartnerRoute ? additionalNavVendor : additionalNav; const basePath = `/${lng}${isPartnerRoute ? "/partners" : "/evcp"}`; return ( <> {/*
*/}
{/* 햄버거 메뉴 버튼 (모바일) */} {/* 로고 영역 - 항상 표시 */}
EVCP Logo {isPartnerRoute ? "Data Room" : pathname?.includes("/evcp") ? "eVCP 삼성중공업" : "eVCP"}
{/* 네비게이션 메뉴 - 내부 스크롤 적용, 드롭다운은 제약 없이 표시 */}
{/* 우측 영역 - 고정 너비와 우선순위로 항상 표시되도록 함 */}
{/* 데스크탑에서는 CommandMenu, 모바일에서는 검색 아이콘만 */} {!pathname?.includes("/partners/data-room") && (
)} {/* */} {/* 알림 버튼 */} {/* */} {/* 사용자 메뉴 (DropdownMenu) */} {initials || "?"} My Account Settings customSignOut({ callbackUrl: `${window.location.origin}${basePath}` })}> Logout
{/* 모바일 메뉴 */} {isMobileMenuOpen && }
); } const ListItem = React.forwardRef< React.ElementRef<"a">, React.ComponentPropsWithoutRef<"a"> >(({ className, title, children, ...props }, ref) => { return (
  • {title}
    {children && (

    {children}

    )}
  • ); }); ListItem.displayName = "ListItem";