Files
PortFolio/src/Pages/Home/Navbar.jsx
Morph01 b9ce2ffdc2
Some checks failed
Linux arm64 / Build-and-Deploy (push) Failing after 7s
Add multi-languages support with i18next
2025-03-04 21:39:02 +01:00

122 lines
2.9 KiB
JavaScript

import { useState, useEffect } from "react";
import { Link } from "react-scroll";
import { useTranslation } from "react-i18next";
function Navbar() {
const [navActive, setNavActive] = useState(false);
const { t } = useTranslation();
const toggleNav = () => {
setNavActive(!navActive);
};
const closeMenu = () => {
setNavActive(false);
};
useEffect(() => {
const handleResize = () => {
if (window.innerWidth <= 500) {
closeMenu;
}
};
window.addEventListener("resize", handleResize);
return () => {
window.removeEventListener("resize", handleResize);
};
}, []);
useEffect(() => {
if (window.innerWidth <= 1200) {
closeMenu;
}
}, []);
return (
<nav className={`navbar ${navActive ? "active" : ""}`}>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={false}
smooth={true}
offset={-70}
duration={500}
to="heroSection"
className="navbar--logo"
style={{ cursor: 'pointer' }}
>
<img src="./img/logo.png" alt="Logo" />
</Link>
<a
className={`nav__hamburger ${navActive ? "active" : ""}`}
onClick={toggleNav}
>
<span className="nav__hamburger__line"></span>
<span className="nav__hamburger__line"></span>
<span className="nav__hamburger__line"></span>
</a>
<div className={`navbar--items ${navActive ? "active" : ""}`}>
<ul>
<li>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="heroSection"
className="navbar--content"
>
{t('navbar.home')}
</Link>
</li>
<li>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="MyPortfolio"
className="navbar--content"
>
{t('navbar.portfolio')}
</Link>
</li>
<li>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="AboutMe"
className="navbar--content"
>
{t('navbar.about')}
</Link>
</li>
</ul>
</div>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="Contact"
className="btn btn-outline-primary"
>
{t('navbar.contact')}
</Link>
</nav>
);
}
export default Navbar;