From 1fa2af41398736ceb2397021f1bca7c1f2734302 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Thu, 18 Jun 2026 10:27:11 +0330 Subject: [PATCH] remove from sidebar pager --- src/shared/SideBar.tsx | 568 +++++++++++++++++++---------------------- 1 file changed, 260 insertions(+), 308 deletions(-) diff --git a/src/shared/SideBar.tsx b/src/shared/SideBar.tsx index 830b4cb..e65794c 100644 --- a/src/shared/SideBar.tsx +++ b/src/shared/SideBar.tsx @@ -1,173 +1,151 @@ -import { type FC, useEffect } from 'react' -import LogoImage from '../assets/images/logo.svg' -import LogoSmall from '../assets/images/logo-small.png' -import { useTranslation } from 'react-i18next' -import { DocumentText, Home2, Logout, People, Setting2, TicketDiscount, Calendar, Security, Card, SecurityUser, TruckFast, Element3, Star1, NotificationBing, SmsEdit } 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 ProductsSubMenu from './components/ProductsSubMenu' -import OrdersSubMenu from './components/OrdersSubMenu' -import CustomersSubMenu from './components/CustomersSubMenu' -import DiscountSubMenu from './components/DiscountSubMenu' -import { SideBarItemHasSubMenu } from '../config/SideBarSubMenu' -import { usePermissions } from '@/hooks/usePermissions' -import { PermissionEnum } from '@/pages/roles/enum/Enum' -import Skeleton from 'react-loading-skeleton' +import { usePermissions } from "@/hooks/usePermissions"; +import { PermissionEnum } from "@/pages/roles/enum/Enum"; +import { Calendar, Card, DocumentText, Element3, Home2, Logout, People, Security, SecurityUser, Setting2, SmsEdit, Star1, TicketDiscount, TruckFast } from "iconsax-react"; +import { type FC, useEffect } from "react"; +import { useTranslation } from "react-i18next"; +import Skeleton from "react-loading-skeleton"; +import { useLocation } from "react-router-dom"; +import LogoSmall from "../assets/images/logo-small.png"; +import LogoImage from "../assets/images/logo.svg"; +import { Pages } from "../config/Pages"; +import { SideBarItemHasSubMenu } from "../config/SideBarSubMenu"; +import { clx } from "../helpers/utils"; +import CustomersSubMenu from "./components/CustomersSubMenu"; +import DiscountSubMenu from "./components/DiscountSubMenu"; +import OrdersSubMenu from "./components/OrdersSubMenu"; +import ProductsSubMenu from "./components/ProductsSubMenu"; +import SideBarItem from "./SideBarItem"; +import { useSharedStore } from "./store/sharedStore"; const SideBar: FC = () => { + const { t } = useTranslation("global"); + const { openSidebar, setOpenSidebar, hasSubMenu, setSubMenuName, setSubtMenu, subMenuName } = useSharedStore(); + const location = useLocation(); + const { checkPermission, isLoading } = usePermissions(); - const { t } = useTranslation('global') - const { openSidebar, setOpenSidebar, hasSubMenu, setSubMenuName, setSubtMenu, subMenuName } = useSharedStore() - const location = useLocation() - const { checkPermission, isLoading } = usePermissions() + const isActive = (name: string) => { + return location.pathname.includes(name); + }; - 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]); - useEffect(() => { - const split = location.pathname.split('/') + const iconSizeSideBar = 20; - if (SideBarItemHasSubMenu.includes(split[1])) { - setSubMenuName(split[1]) - setSubtMenu(true) - } else { - setSubMenuName('') - setSubtMenu(false) - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [location.pathname]) + return ( + <> + {openSidebar &&
setOpenSidebar(false)} />} +
+
{!hasSubMenu ? : }
- const iconSizeSideBar = 20 +
+
{t("sidebar.menu")}
- - return ( - <> - { - openSidebar &&
setOpenSidebar(false)} /> - } -
-
- { - !hasSubMenu ? - - : - - } + {isLoading ? ( +
+ {Array.from({ length: 8 }).map((_, index) => ( +
+
+ + +
+ ))} +
+ ) : ( +
+ {checkPermission(PermissionEnum.MANAGE_REPORTS) && ( + } + title={t("sidebar.mainpage")} + isActive={isActive("dashboard")} + link={Pages.dashboard} + activeName="" + /> + )} -
-
- {t('sidebar.menu')} -
+ {checkPermission(PermissionEnum.MANAGE_ORDERS) && ( + } + title={t("sidebar.orders")} + isActive={isActive("orders")} + link={Pages.orders.list} + name="orders" + activeName="orders" + /> + )} - {isLoading ? ( -
- {Array.from({ length: 8 }).map((_, index) => ( -
-
- - -
-
- ))} -
- ) : ( -
- {checkPermission(PermissionEnum.MANAGE_REPORTS) && ( - } - title={t('sidebar.mainpage')} - isActive={isActive('dashboard')} - link={Pages.dashboard} - activeName='' - /> - )} + {checkPermission(PermissionEnum.MANAGE_FOODS) && ( + } + title={t("sidebar.foods")} + isActive={isActive("products")} + link={Pages.products.list} + activeName="products" + /> + )} - {checkPermission(PermissionEnum.MANAGE_ORDERS) && ( - } - title={t('sidebar.orders')} - isActive={isActive('orders')} - link={Pages.orders.list} - name='orders' - activeName='orders' - /> - )} + {checkPermission(PermissionEnum.MANAGE_SCHEDULES) && ( + } + title={t("sidebar.schedule")} + isActive={isActive("schedule")} + link={Pages.schedule.list} + name="schedule" + activeName="schedule" + /> + )} - {checkPermission(PermissionEnum.MANAGE_FOODS) && ( - } - title={t('sidebar.foods')} - isActive={isActive('products')} - link={Pages.products.list} - activeName='products' - /> - )} + {checkPermission(PermissionEnum.MANAGE_PAYMENTS) && ( + } + title={t("sidebar.payment_methods")} + isActive={isActive("payment_methods")} + link={Pages.payment_methods.list} + name="payment_methods" + activeName="payment_methods" + /> + )} - {checkPermission(PermissionEnum.MANAGE_SCHEDULES) && ( - } - title={t('sidebar.schedule')} - isActive={isActive('schedule')} - link={Pages.schedule.list} - name='schedule' - activeName='schedule' - /> - )} + {checkPermission(PermissionEnum.MANAGE_USERS) && ( + } + title={t("sidebar.customers")} + isActive={isActive("customers")} + link={Pages.customers.list} + name="customers" + activeName="customers" + /> + )} - {checkPermission(PermissionEnum.MANAGE_PAYMENTS) && ( - } - title={t('sidebar.payment_methods')} - isActive={isActive('payment_methods')} - link={Pages.payment_methods.list} - name='payment_methods' - activeName='payment_methods' - /> - )} + {checkPermission(PermissionEnum.MANAGE_REVIEWS) && ( + } + title={t("sidebar.reviews")} + isActive={isActive("reviews")} + link={Pages.reviews.list} + name="reviews" + activeName="reviews" + /> + )} - {checkPermission(PermissionEnum.MANAGE_USERS) && ( - } - title={t('sidebar.customers')} - isActive={isActive('customers')} - link={Pages.customers.list} - name='customers' - activeName='customers' - /> - )} - - {checkPermission(PermissionEnum.MANAGE_REVIEWS) && ( - } - title={t('sidebar.reviews')} - isActive={isActive('reviews')} - link={Pages.reviews.list} - name='reviews' - activeName='reviews' - /> - )} - - {checkPermission(PermissionEnum.MANAGE_PAGER) && ( + {/* {checkPermission(PermissionEnum.MANAGE_PAGER) && ( } title={t('sidebar.pagers')} @@ -176,53 +154,53 @@ const SideBar: FC = () => { name='pagers' activeName='pagers' /> - )} + )} */} - {checkPermission(PermissionEnum.MANAGE_ADMINS) && ( - } - title={t('sidebar.admins')} - isActive={isActive('admins')} - link={Pages.admins.list} - name='admins' - activeName='admins' - /> - )} + {checkPermission(PermissionEnum.MANAGE_ADMINS) && ( + } + title={t("sidebar.admins")} + isActive={isActive("admins")} + link={Pages.admins.list} + name="admins" + activeName="admins" + /> + )} - {checkPermission(PermissionEnum.MANAGE_DELIVERY) && ( - } - title={t('sidebar.shipment_methods')} - isActive={isActive('shipment_methods')} - link={Pages.shipment_methods.list} - name='shipment_methods' - activeName='shipment_methods' - /> - )} + {checkPermission(PermissionEnum.MANAGE_DELIVERY) && ( + } + title={t("sidebar.shipment_methods")} + isActive={isActive("shipment_methods")} + link={Pages.shipment_methods.list} + name="shipment_methods" + activeName="shipment_methods" + /> + )} - {checkPermission(PermissionEnum.MANAGE_COUPONS) && ( - } - title={t('sidebar.discount')} - isActive={isActive('discounts')} - link={Pages.coupons.list} - name='discounts' - activeName='discounts' - /> - )} + {checkPermission(PermissionEnum.MANAGE_COUPONS) && ( + } + title={t("sidebar.discount")} + isActive={isActive("discounts")} + link={Pages.coupons.list} + name="discounts" + activeName="discounts" + /> + )} - {checkPermission(PermissionEnum.MANAGE_ROLES) && ( - } - title={t('sidebar.roles')} - isActive={isActive('roles')} - link={Pages.roles.list} - name='roles' - activeName='roles' - /> - )} + {checkPermission(PermissionEnum.MANAGE_ROLES) && ( + } + title={t("sidebar.roles")} + isActive={isActive("roles")} + link={Pages.roles.list} + name="roles" + activeName="roles" + /> + )} - {/* { + {/* { checkPermission(PermissionEnum.MANAGE_SETTINGS) && ( } @@ -234,34 +212,23 @@ const SideBar: FC = () => { /> ) } */} -
- )} +
+ )} -
- {t('sidebar.other')} -
+
{t("sidebar.other")}
- {isLoading ? ( -
-
-
- - -
-
-
- ) : ( -
- {/* {checkPermission(PermissionEnum.VIEW_REPORTS) && ( + {isLoading ? ( +
+
+
+ + +
+
+
+ ) : ( +
+ {/* {checkPermission(PermissionEnum.VIEW_REPORTS) && ( } title={t('sidebar.statistics')} @@ -270,7 +237,7 @@ const SideBar: FC = () => { activeName='statistics' /> )} */} - {/* {checkPermission(PermissionEnum.MANAGE_CONTACTS) && ( + {/* {checkPermission(PermissionEnum.MANAGE_CONTACTS) && ( } title={t('sidebar.comments')} @@ -280,93 +247,78 @@ const SideBar: FC = () => { /> )} */} - {checkPermission(PermissionEnum.MANAGE_REPORTS) && ( - } - title={t('sidebar.reports')} - isActive={isActive('reports')} - link={Pages.reports.list} - activeName='reports' - /> - )} -
- )} - -
- {isLoading ? ( -
-
-
- - -
-
-
-
- - -
-
-
- ) : ( - <> -
- {checkPermission(PermissionEnum.MANAGE_SETTINGS) && ( - } - title={t('sidebar.setting')} - isActive={isActive('setting')} - link={Pages.setting} - activeName='settings' - /> - )} -
-
- } - title={t('sidebar.logout')} - isActive={isActive('logout')} - link={`#`} - isLogout - activeName='' - /> -
- - )} -
-
+ {checkPermission(PermissionEnum.MANAGE_REPORTS) && ( + } + title={t("sidebar.reports")} + isActive={isActive("reports")} + link={Pages.reports.list} + activeName="reports" + /> + )}
+ )} - { - hasSubMenu && (openSidebar || window.innerWidth > 1139) && -
- { - subMenuName === 'products' ? - - : subMenuName === 'orders' ? - - : subMenuName === 'customers' ? - - : subMenuName === 'discounts' ? - - : null - } +
+ {isLoading ? ( +
+
+
+ + +
- } - - ) -} +
+
+ + +
+
+
+ ) : ( + <> +
+ {checkPermission(PermissionEnum.MANAGE_SETTINGS) && ( + } + title={t("sidebar.setting")} + isActive={isActive("setting")} + link={Pages.setting} + activeName="settings" + /> + )} +
+
+ } + title={t("sidebar.logout")} + isActive={isActive("logout")} + link={`#`} + isLogout + activeName="" + /> +
+ + )} +
+
+
-export default SideBar \ No newline at end of file + {hasSubMenu && (openSidebar || window.innerWidth > 1139) && ( +
+ {subMenuName === "products" ? ( + + ) : subMenuName === "orders" ? ( + + ) : subMenuName === "customers" ? ( + + ) : subMenuName === "discounts" ? ( + + ) : null} +
+ )} + + ); +}; + +export default SideBar;