Files
PortFolio/src/Pages/Home/Navbar.jsx

124 lines
2.9 KiB
JavaScript

import { useState, useEffect } from "react";
import { Link } from "react-scroll";
function Navbar() {
const [navActive, setNavActive] = useState(false);
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" : ""}`}>
<div>
<img src="/logo.svg" alt="Logoipsum" />
</div>
<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"
>
Home
</Link>
</li>
<li>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="MyPortfolio"
className="navbar--content"
>
Portfolio
</Link>
</li>
<li>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="AboutMe"
className="navbar--content"
>
About Me
</Link>
</li>
<li>
<Link
onClick={closeMenu}
activeClass="navbar--active-content"
spy={true}
smooth={true}
offset={-70}
duration={500}
to="testimonial"
className="navbar--content"
>
Testimonials
</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"
>
Contact Me
</Link>
</nav>
);
}
export default Navbar;