import React, { useState, useEffect } from "react"; import { Link } from "react-router-dom"; import logo from "/images/logo.jpeg"; import { IoNotifications, IoPerson } from "react-icons/io5"; import Hamburger from "hamburger-react"; import { FaSignOutAlt } from "react-icons/fa"; const Navbar = ({ userData, sidebarIsVisible, setSidebarIsVisible }) => { // Mouse cursor tracking for the pull-down effect const [showNavbar, setShowNavbar] = useState(false); const [isSmallScreen, setIsSmallScreen] = useState(false); const handleLogout = async () => { let res = await fetch(`${import.meta.env.VITE_APP_API_URL}/logout`, { method: "GET", credentials: "include", }); return res; }; const userDesignation = userData.designation; const userName = userData.userName; const [profileData] = useState({ name: userName, university: "Somaiya Vidyavihar University", role: userDesignation, }); const links = []; const handleResize = () => { if (window.innerWidth < 768) { setShowNavbar(true); setIsSmallScreen(true); } else { setShowNavbar(false); setIsSmallScreen(false); } }; useEffect(() => { // Set initial visibility based on screen width handleResize(); // Add event listener to handle resize window.addEventListener("resize", handleResize); // Cleanup the event listener on component unmount return () => { window.removeEventListener("resize", handleResize); }; }, []); const handleMouseMove = (e) => { if (e.clientY < 60 && !isSmallScreen) { setShowNavbar(true); } else { setShowNavbar(false); } }; useEffect(() => { // Add event listener for mousemove only for large screens if (!isSmallScreen) { window.addEventListener("mousemove", handleMouseMove); } // Clean up the event listener return () => { window.removeEventListener("mousemove", handleMouseMove); }; }, [isSmallScreen]); return ( <>
{/* Navbar with the pull-down effect */}
); }; export default Navbar;