import React, { useState, useEffect } from "react"; import { useTranslation } from "react-i18next"; import { Link } from "react-scroll"; import "../../index.css"; const Navbar = () => { const { t, i18n } = useTranslation(); const [menuOpen, setMenuOpen] = useState(false); const [activeSection, setActiveSection] = useState("home"); const [isDarkMode, setIsDarkMode] = useState(false); useEffect(() => { const savedTheme = localStorage.getItem("theme"); const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches; const shouldEnableDarkMode = savedTheme === "dark" || (!savedTheme && prefersDark); setIsDarkMode(shouldEnableDarkMode); if (shouldEnableDarkMode) { document.documentElement.classList.add("dark"); } }, []); const toggleMenu = () => { setMenuOpen(!menuOpen); }; const toggleDarkMode = () => { const newDarkMode = !isDarkMode; setIsDarkMode(newDarkMode); if (newDarkMode) { document.documentElement.classList.add("dark"); localStorage.setItem("theme", "dark"); } else { document.documentElement.classList.remove("dark"); localStorage.setItem("theme", "light"); } }; useEffect(() => { const handleScroll = () => { const sections = ["home", "services", "about", "contact", "sections"]; const scrollPosition = window.scrollY + 120; // offset to detect current section for (const section of sections) { const element = document.getElementById(section) || document.querySelector(`[name="${section}"]`); if (element) { const offsetTop = element.offsetTop; const offsetHeight = element.offsetHeight; if (scrollPosition >= offsetTop && scrollPosition < offsetTop + offsetHeight) { setActiveSection(section); break; } } } }; window.addEventListener("scroll", handleScroll); return () => window.removeEventListener("scroll", handleScroll); }, []); useEffect(() => { if (i18n.language === "ar") { document.documentElement.dir = "rtl"; document.documentElement.lang = "ar"; } else { document.documentElement.dir = "ltr"; document.documentElement.lang = i18n.language; } }, [i18n.language]); const navItems = [ { key: "home", label: t("nav.home", "الرئيسية") }, { key: "services", label: t("nav.services", "الخدمات") }, { key: "about", label: t("nav.about", "من نحن") }, { key: "sections", label: t("nav.sections", "الأقسام") }, { key: "contact", label: t("nav.contact", "تواصل معنا") }, ]; const toggleLang = () => { const newLang = i18n.language === "ar" ? "en" : "ar"; i18n.changeLanguage(newLang); }; return ( ); }; export default Navbar;