import { useState } from 'react'; import { motion } from 'framer-motion'; import { Menu, X, Sun, Moon, Globe } from 'lucide-react'; import { useLanguage } from '../contexts/LanguageContext'; import { useNavigate, useLocation, Link } from 'react-router-dom'; interface HeaderProps { darkMode: boolean; toggleDarkMode: () => void; } const Header = ({ darkMode, toggleDarkMode }: HeaderProps) => { const [isMenuOpen, setIsMenuOpen] = useState(false); const { language, setLanguage, t } = useLanguage(); const navigate = useNavigate(); const location = useLocation(); const menuItems = [ { id: 'home', name: t('nav.home'), href: '#hero' }, { id: 'about', name: t('nav.about'), href: '#about' }, { id: 'skills', name: t('nav.skills'), href: '#skills' }, { id: 'projects', name: t('nav.projects'), href: '#projects' }, { id: 'education', name: t('nav.education'), href: '#education' }, { id: 'contact', name: t('nav.contact'), href: '#contact' } ]; const handleNavigation = (href: string) => { setIsMenuOpen(false); if (location.pathname === `/${language}` || location.pathname === `/${language}/`) { // Already on home, just scroll const element = document.querySelector(href); if (element) { element.scrollIntoView({ behavior: 'smooth' }); } } else { // Not on home, navigate then scroll (using a simple timeout for simplicity or hash) navigate(`/${language}`); // Small timeout to allow navigation to render Home before scrolling setTimeout(() => { const element = document.querySelector(href); if (element) { element.scrollIntoView({ behavior: 'smooth' }); } }, 100); } }; const toggleLanguage = () => { setLanguage(language === 'fr' ? 'en' : 'fr'); }; return ( ); }; export default Header;