"use client"; import { useState } from "react"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { cn } from "@/lib/utils"; import { Button } from "@/components/ui/button"; import Image from "next/image"; import { Menu, X, Github } from "lucide-react"; import LanguageSwitcher from "@/components/LanguageSwitcher"; import { Messages } from "@/types/messages"; import ThemeToggle from "@/components/web/ThemeToggle"; /** * Props interface for the Header component */ interface HeaderProps { messages: Messages; lang: string; } /** * Header component providing navigation, language switching, and GitHub link * Features responsive design with mobile menu support */ const Header = ({ messages, lang }: HeaderProps) => { const pathname = usePathname(); const [isOpen, setIsOpen] = useState(false); // Configuration for navigation items const navItems = [ { href: `/${lang}`, label: messages.text.Header.Home_dis }, { href: `/${lang}/features`, label: messages.text.Header.Features_dis }, { href: `/${lang}/blog`, label: messages.text.Header.Blog_dis }, { href: `/${lang}/about`, label: messages.text.Header.About_dis }, { href: `/${lang}/help`, label: messages.text.Header.Help_dis }, { href: `/${lang}/faq`, label: messages.text.Header.FAQ_dis }, { href: `/${lang}/terms`, label: messages.text.Header.Terms_dis }, { href: `/${lang}/privacy`, label: messages.text.Header.Privacy_dis }, ]; // GitHub repository URL const githubUrl = "https://github.com/david-bai00/PrivyDrop"; return (
{/* Logo and site name */} PrivyDrop Logo PrivyDrop {/* Desktop navigation and controls */}
{/* Desktop GitHub link and language switcher */}
{/* Mobile menu controls */}
{/* Mobile navigation menu */} {isOpen && ( )}
); }; export default Header;