import React, { useEffect, useState } from 'react'; import { FaAngleDown, FaAngleRight } from 'react-icons/fa'; import { GiHamburgerMenu } from 'react-icons/gi'; import { Link, useLocation } from 'react-router-dom'; import { RoutesLinks } from '../../Routes'; import { useTranslation } from 'react-i18next'; import KarimLogo from './KarimLogo'; import { useWindowSize } from '../../Hooks/useWindowSize'; import Etaxi from './Etaxi'; import { usePageState } from '../../lib/state mangment/LayoutPagestate'; interface SidebarProps {} const Sidebar: React.FC = () => { const { pathname } = useLocation(); // const {isOpenAddModel ,isOpenEditModel} = usePageState(state => state) // useEffect(() => { // if(isOpenAddModel || isOpenEditModel){ // setIsOpenSide(true); // document.getElementById('DashboardLayout_Body')?.classList.add('DashboardLayout_Body_Open'); // } // }, [isOpenAddModel ,isOpenEditModel]) const [isOpenSide, setIsOpenSide] = useState(false); const [openDropdown, setOpenDropdown] = useState(null); const [t] = useTranslation(); const windowSize = useWindowSize() const handleHamburgerMenu = () => { setIsOpenSide(true); document.getElementById('DashboardLayout_Body')?.classList.add('DashboardLayout_Body_Open'); }; const handleImg = () => { setIsOpenSide(false); document.getElementById('DashboardLayout_Body')?.classList.remove('DashboardLayout_Body_Open'); setOpenDropdown(null); }; const handleDropdown = (index: number) => { setOpenDropdown((prev) => (prev === index ? null : index)); }; return (
{/* */}
{RoutesLinks?.map((item: any, index: number) => { const isActive = pathname === item?.href; const isDropdownOpen = openDropdown === index; if (item?.hidden) { return null; } if (item?.href ) { return ( {React.cloneElement(item.icon, { size: 30 })}
{t(`${item?.name}`)}
); } else { return (
handleDropdown(index)} className={ isDropdownOpen ? 'SideBar_Link DropDown DropDown_SideBar_Link Open' : 'SideBar_Link DropDown' } > {React.cloneElement(item.icon, { size: 30 })}
{t(`${item?.name}`)}
{isDropdownOpen ? : }
{isDropdownOpen && item?.children?.map((child: any, childIndex: number) => { if (child?.href) { return ( {React.cloneElement(child.icon, { size: 30 })}
{t(`${child?.name}`)}
); } return null; })}
); } })}
); }; export default Sidebar;