import React from "react"; import { SPACING } from "../../../../data/spacing"; import { Grid } from "../../../../components/grid/Grid"; import { NavLink } from "../../../../components/nav-link/NavLink"; import LinkItem from "../../../../components/link-item/LinkItem"; import { VscBroadcast, VscPerson } from "react-icons/vsc"; import { ROUTE_ADMINX_DELEGATES_MANAGEMENT, ROUTE_ADMINX_DISPENSERS_INVENTORY, ROUTE_ADMINX_DISPENSERS_KILLHOUSES, ROUTE_ADMINX_DISPENSERS_MANAGEMENT, ROUTE_ADMINX_DISPENSERS_MANAGEMENT_V2, ROUTE_ADMINX_DISPENSERS_STEWARDS, ROUTE_ADMINX_DISPENSERS_STOCK, ROUTE_ADMINX_SALE_DESTRIBUTION_DETAILS, ROUTE_ADMINX_TRANSACTIONS, ROUTE_CITY_DISPENSERS_INVENTORY, ROUTE_CITY_REQUEST_DISTRIBUTION, ROUTE_CITY_REQUEST_TRANSACTIONS, ROUTE_PROVINCE_DISPENSERS_INVENTORY, ROUTE_PROVINCE_DISPENSERS_KILLHOUSES, ROUTE_PROVINCE_DISPENSERS_MANAGEMENT, ROUTE_PROVINCE_DISPENSERS_STEWARDS, ROUTE_PROVINCE_FINANCIAL_TRANSACTIONS, ROUTE_PROVINCE_SALE_DESTRIBUTION_DETAILS, ROUTE_PROVINCE_SUPERVISOR_DISPENSERS_INVENTORY, ROUTE_PROVINCE_SUPERVISOR_DISPENSERS_STOCK, ROUTE_PROVINCE_SUPERVISOR_REQUEST_DISTRIBUTION, ROUTE_PROVINCE_SUPERVISOR_REQUEST_TRANSACTIONS, ROUTE_PROVINCE_TRANSACTIONS, ROUTE_SLAUGHTER_DISPENSERS_KILLHOUSES, ROUTE_SLAUGHTER_DISPENSERS_MANAGEMENT, ROUTE_SLAUGHTER_DISPENSERS_STEWARDS, ROUTE_SUPER_ADMIN_DESTRIBUTION_DETAILS, ROUTE_SUPER_ADMIN_DISPENSERS_INVENTORY, ROUTE_SUPER_ADMIN_DISPENSERS_KILLHOUSES, ROUTE_SUPER_ADMIN_DISPENSERS_MANAGEMENT, ROUTE_SUPER_ADMIN_DISPENSERS_STEWARDS, ROUTE_SUPER_ADMIN_DISPENSERS_STOCK, ROUTE_SUPER_ADMIN_TRANSACTIONS, } from "../../../../routes/routes"; import { useLocation } from "react-router-dom"; import { getRoleFromUrl } from "../../../../utils/getRoleFromUrl"; import { FaMoneyBill, FaStore, FaWarehouse } from "react-icons/fa"; import BadgeIcon from "@mui/icons-material/Badge"; const ROUTE_MAP = { management: { KillHouse: ROUTE_SLAUGHTER_DISPENSERS_MANAGEMENT, AdminX: ROUTE_ADMINX_DISPENSERS_MANAGEMENT, SuperAdmin: ROUTE_SUPER_ADMIN_DISPENSERS_MANAGEMENT, AdminXX: ROUTE_ADMINX_DISPENSERS_MANAGEMENT_V2, AdminXXX: ROUTE_ADMINX_DELEGATES_MANAGEMENT, default: ROUTE_PROVINCE_DISPENSERS_MANAGEMENT, }, killhouses: { KillHouse: ROUTE_SLAUGHTER_DISPENSERS_KILLHOUSES, AdminX: ROUTE_ADMINX_DISPENSERS_KILLHOUSES, SuperAdmin: ROUTE_SUPER_ADMIN_DISPENSERS_KILLHOUSES, default: ROUTE_PROVINCE_DISPENSERS_KILLHOUSES, }, stewards: { KillHouse: ROUTE_SLAUGHTER_DISPENSERS_STEWARDS, AdminX: ROUTE_ADMINX_DISPENSERS_STEWARDS, SuperAdmin: ROUTE_SUPER_ADMIN_DISPENSERS_STEWARDS, default: ROUTE_PROVINCE_DISPENSERS_STEWARDS, }, inventory: { AdminX: ROUTE_ADMINX_DISPENSERS_INVENTORY, SuperAdmin: ROUTE_SUPER_ADMIN_DISPENSERS_INVENTORY, CityPoultry: ROUTE_CITY_DISPENSERS_INVENTORY, ProvinceSupervisor: ROUTE_PROVINCE_SUPERVISOR_DISPENSERS_INVENTORY, default: ROUTE_PROVINCE_DISPENSERS_INVENTORY, }, distribution: { AdminX: ROUTE_ADMINX_SALE_DESTRIBUTION_DETAILS, SuperAdmin: ROUTE_SUPER_ADMIN_DESTRIBUTION_DETAILS, ProvinceOperator: ROUTE_PROVINCE_SALE_DESTRIBUTION_DETAILS, CityPoultry: ROUTE_CITY_REQUEST_DISTRIBUTION, ProvinceSupervisor: ROUTE_PROVINCE_SUPERVISOR_REQUEST_DISTRIBUTION, default: ROUTE_PROVINCE_TRANSACTIONS, }, transactions: { AdminX: ROUTE_ADMINX_TRANSACTIONS, SuperAdmin: ROUTE_SUPER_ADMIN_TRANSACTIONS, ProvinceFinancial: ROUTE_PROVINCE_FINANCIAL_TRANSACTIONS, CityPoultry: ROUTE_CITY_REQUEST_TRANSACTIONS, ProvinceSupervisor: ROUTE_PROVINCE_SUPERVISOR_REQUEST_TRANSACTIONS, default: ROUTE_PROVINCE_TRANSACTIONS, }, stock: { AdminX: ROUTE_ADMINX_DISPENSERS_STOCK, SuperAdmin: ROUTE_SUPER_ADMIN_DISPENSERS_STOCK, ProvinceSupervisor: ROUTE_PROVINCE_SUPERVISOR_DISPENSERS_STOCK, }, }; const getRoute = (routeType, role) => { const routeMap = ROUTE_MAP[routeType]; return routeMap[role] || routeMap.default || null; }; const isActive = (pathname, route) => (pathname === route ? "true" : null); export const SlaughterHouseDispensersOperations = () => { const { pathname } = useLocation(); const role = getRoleFromUrl(); const isKillHouse = role === "KillHouse"; const isAdminX = role === "AdminX"; const hasStockAccess = [ "AdminX", "SuperAdmin", "ProvinceSupervisor", ].includes(role); const managementRoute = getRoute("management", role); const managementRouteV2 = getRoute("management", "AdminXX"); const managementRouteDelegates = getRoute("management", "AdminXXX"); const killhousesRoute = getRoute("killhouses", role); const stewardsRoute = getRoute("stewards", role); const inventoryRoute = getRoute("inventory", role); const distributionRoute = getRoute("distribution", role); const transactionsRoute = getRoute("transactions", role); const stockRoute = getRoute("stock", role); return ( {isAdminX && ( } title="مدیریت نمایندگان" description="مدیریت نمایندگان" /> } title="مدیریت توزیع کنندگان دوم" description="مدیریت توزیع کنندگان دوم" /> } title="مدیریت توزیع کنندگان" description="مدیریت توزیع کنندگان" /> {!isKillHouse && ( } title="مدیریت کشتارگاه ها" description="مدیریت کشتارگاه ها" /> )} {!isKillHouse && ( } title="مدیریت مباشرین" description="مدیریت مباشرین" /> )} )} {!isKillHouse && inventoryRoute && ( } title="توزیع/فروش کشتارگاه" description="توزیع/فروش کشتارگاه" /> )} {!isKillHouse && distributionRoute && ( } title=" توزیع/فروش مباشر" description=" توزیع/فروش مباشر" /> )} {!isKillHouse && transactionsRoute && ( } title="مدیریت انبار صنوف" description="تراکنش ها" /> )} {hasStockAccess && stockRoute && ( } title="مانده انبار" description="مانده انبار" /> )} ); };