import { type FC, useEffect } from 'react' import LogoImage from '../assets/images/logo.svg' import LogoSmall from '../assets/images/logo-small.svg' import { useTranslation } from 'react-i18next' import { DocumentText, Home2, Logout, Message, NotificationStatus, People, Setting2, TicketDiscount, Chart, Calendar, Security, Card, SecurityUser, TruckFast, Element3 } from 'iconsax-react' import SideBarItem from './SideBarItem' import { useLocation } from 'react-router-dom' import { Pages } from '../config/Pages' import { useSharedStore } from './store/sharedStore' import { clx } from '../helpers/utils' import FoodsSubMenu from './components/FoodsSubMenu' import OrdersSubMenu from './components/OrdersSubMenu' import CustomersSubMenu from './components/CustomersSubMenu' import DiscountSubMenu from './components/DiscountSubMenu' import { SideBarItemHasSubMenu } from '../config/SideBarSubMenu' const SideBar: FC = () => { const { t } = useTranslation('global') const { openSidebar, setOpenSidebar, hasSubMenu, setSubMenuName, setSubtMenu, subMenuName } = useSharedStore() const location = useLocation() const isActive = (name: string) => { return location.pathname.includes(name) } useEffect(() => { const split = location.pathname.split('/') if (SideBarItemHasSubMenu.includes(split[1])) { setSubMenuName(split[1]) setSubtMenu(true) } else { setSubMenuName('') setSubtMenu(false) } // eslint-disable-next-line react-hooks/exhaustive-deps }, [location.pathname]) const iconSizeSideBar = 20 return ( <> { openSidebar &&
setOpenSidebar(false)} /> }
{ !hasSubMenu ? : }
{t('sidebar.menu')}
} title={t('sidebar.mainpage')} isActive={isActive('dashboard')} link={Pages.dashboard} activeName='' /> } title={t('sidebar.foods')} isActive={isActive('foods')} link={Pages.foods.list} activeName='foods' /> } title={t('sidebar.schedule')} isActive={isActive('schedule')} link={Pages.schedule.list} name='schedule' activeName='schedule' /> } title={t('sidebar.payment_methods')} isActive={isActive('payment_methods')} link={Pages.payment_methods.list} name='payment_methods' activeName='payment_methods' /> } title={t('sidebar.orders')} isActive={isActive('orders')} link={Pages.orders.list} name='orders' activeName='orders' /> } title={t('sidebar.customers')} isActive={isActive('customers')} link={Pages.customers.list} name='customers' activeName='customers' /> } title={t('sidebar.admins')} isActive={isActive('admins')} link={Pages.admins.list} name='admins' activeName='admins' /> } title={t('sidebar.shipment_methods')} isActive={isActive('shipment_methods')} link={Pages.shipment_methods.list} name='shipment_methods' activeName='shipment_methods' /> } title={t('sidebar.discount')} isActive={isActive('discounts')} link={Pages.coupons.list} name='discounts' activeName='discounts' /> } title={t('sidebar.roles')} isActive={isActive('roles')} link={Pages.roles.list} name='roles' activeName='roles' />
{t('sidebar.other')}
} title={t('sidebar.announcements')} isActive={isActive('announcements')} link={Pages.announcements.list} activeName='announcements' /> } title={t('sidebar.reports')} isActive={isActive('reports')} link={Pages.reports.list} activeName='reports' /> } title={t('sidebar.comments')} isActive={isActive('comments')} link={Pages.comments.list} activeName='comments' />
} title={t('sidebar.setting')} isActive={isActive('setting')} link={Pages.setting} activeName='settings' />
} title={t('sidebar.logout')} isActive={isActive('logout')} link={`#`} isLogout activeName='' />
{ hasSubMenu && (openSidebar || window.innerWidth > 1139) &&
{ subMenuName === 'foods' ? : subMenuName === 'orders' ? : subMenuName === 'customers' ? : subMenuName === 'discounts' ? : null }
} ) } export default SideBar