'use client'; import PerfectScrollbar from 'react-perfect-scrollbar'; import { useDispatch, useSelector } from 'react-redux'; import Link from 'next/link'; import { toggleSidebar } from '@/store/themeConfigSlice'; import AnimateHeight from 'react-animate-height'; import { IRootState } from '@/store'; import { useState, useEffect } from 'react'; import IconCaretsDown from '@/components/icon/icon-carets-down'; import IconMenuComponents from '@/components/icon/menu/icon-menu-components'; import { usePathname } from 'next/navigation'; import { getTranslation } from '@/i18n'; import IconCaretDown from '../icon/icon-caret-down'; import IconMinus from '../icon/icon-minus'; const Sidebar = () => { const dispatch = useDispatch(); const { t } = getTranslation(); const pathname = usePathname(); const [currentMenu, setCurrentMenu] = useState(''); const [errorSubMenu, setErrorSubMenu] = useState(false); const themeConfig = useSelector((state: IRootState) => state.themeConfig); const semidark = useSelector((state: IRootState) => state.themeConfig.semidark); const toggleMenu = (value: string) => { setCurrentMenu((oldValue) => { return oldValue === value ? '' : value; }); }; useEffect(() => { const selector = document.querySelector('.sidebar ul a[href="' + window.location.pathname + '"]'); if (selector) { selector.classList.add('active'); const ul: any = selector.closest('ul.sub-menu'); if (ul) { let ele: any = ul.closest('li.menu').querySelectorAll('.nav-link') || []; if (ele.length) { ele = ele[0]; setTimeout(() => { ele.click(); }); } } } }, []); useEffect(() => { setActiveRoute(); if (window.innerWidth < 1024 && themeConfig.sidebar) { dispatch(toggleSidebar()); } }, [pathname]); const setActiveRoute = () => { let allLinks = document.querySelectorAll('.sidebar ul a.active'); for (let i = 0; i < allLinks.length; i++) { const element = allLinks[i]; element?.classList.remove('active'); } const selector = document.querySelector('.sidebar ul a[href="' + window.location.pathname + '"]'); selector?.classList.add('active'); }; return (
); }; export default Sidebar;