"use client"; import Image from "next/image"; import { useContext, useEffect, useState } from "react"; import cover from "../../public/images/navbar/n1.jpg"; import divider from "../../public/images/divider.png"; import logoWhite from "../../public/images/logo-white.png"; import logoBlack from "../../public/images/logo.png"; import SearchSideBar from "@comp/Category/Mobile/Component/SearchSideBar/page"; import AppContext from "@ctx/AppContext"; import Link from "next/link"; import PersianNumber from "plugins/PersianNumber"; import BottomSheetCart from "plugins/bottomSheet/BottomSheetCart"; import CartNavbar from "./CartNavbar/page"; import { debounce } from "lodash"; import { useRouter } from "next/navigation"; import ResultSearchBar from "./ResultSearchBar/page"; const Navbar = ({ theme }) => { const [open, setOpen] = useState(false); const CTX = useContext(AppContext); const router = useRouter(); const dataNav = CTX.state.navData; const profile = CTX.state.profile; const cart = CTX.state.cart; const searchResultCategoryData = CTX.state.searchResultData.categories; const searchResultProductData = CTX.state.searchResultData.products; const [navItemHover, setNavItemHover] = useState(null); const [isDesktop, setIsDesktop] = useState(null); const [closeNavbar, setClosNavbar] = useState(false); const [isScrolled, setIsScrolled] = useState(false); const [smallDashboard, setSmallDashboard] = useState(false); const [searchResultShow, setSearchResultShow] = useState(false); const [searchValue, setSearchValue] = useState(""); const handleItemNavber = (index) => { setNavItemHover(index); }; const handleRemoveSearch = () => { CTX.setSearchResultData([]); setSearchValue(""); setSearchResultShow(false); }; useEffect(() => { const handleResize = () => { setIsDesktop(window.innerWidth > 1000); // You can adjust the width threshold as needed }; // Set initial window size handleResize(); // Add event listener to handle window resize window.addEventListener("resize", handleResize); // Remove event listener on component unmount return () => { window.removeEventListener("resize", handleResize); }; }, []); useEffect(() => { const handleScroll = () => { const scrollTop = window.scrollY; setIsScrolled(scrollTop > 200); }; window.addEventListener("scroll", handleScroll); return () => { window.removeEventListener("scroll", handleScroll); }; }, []); useEffect(() => { // Define a function to send the request const sendRequest = async () => { CTX.fetchSearchResult(searchValue); setSearchResultShow(true); }; // Set a timer to send the request after 2000 milliseconds of inactivity const timer = setTimeout(() => { if (searchValue.trim() !== "") { sendRequest(); } }, 1000); // Clean up function to clear the timer on component unmount or when searchTerm changes return () => clearTimeout(timer); }, [searchValue]); const handleInputChange = (event) => { setSearchValue(event.target.value); }; return ( <> {isDesktop && (
{profile?.firstName} {profile?.lastName}
داشبورد
پیگیری سفارش
آدرس ها{" "}
همکاری در فروش{" "}
خروج{" "}
handleItemNavber(index)} onMouseLeave={() => setNavItemHover(null)} key={index} > {e.name}{" "}
))}بمب امروز
{e.name}
{e.children.length > 0 && ({child.name}
))}چرا آرایشی وسمه ؟
{profile?.firstName} {profile?.lastName}
{" "}داشبورد
پیگیری سفارش
آدرس ها{" "}
همکاری در فروش{" "}
خروج{" "}
سبد خرید