fixed bug sidebar

This commit is contained in:
AmirHossein Mahmoodi
2024-01-14 11:22:06 +03:30
parent 6d36462663
commit 31fc8da65d
2 changed files with 27 additions and 40 deletions

View File

@@ -9,15 +9,12 @@ function reducer(state, action) {
switch (action.type) {
case "COLLAPSE_MENU":
return state.map((itemsArr) => itemsArr.map((item) => action.key === item.key ? {
...item,
showSubItem: !item.showSubItem
...item, showSubItem: !item.showSubItem
} : item));
case "SELECTED":
return state.map((itemsArr) => itemsArr.map((item) => {
return item.type === "page" ? {
...item,
selected: action.route === item.route,
routing: false
...item, selected: action.route === item.route, routing: false
} : item.subItem && Array.isArray(item.subItem) ? {
...item, subItem: item.subItem.map((subitem) => ({
...subitem, selected: subitem.route === action.route, routing: false
@@ -27,9 +24,7 @@ function reducer(state, action) {
case "SELECTING":
return state.map((itemsArr) => itemsArr.map((item) => {
return item.type === "page" ? {
...item,
selected: action.route === item.route,
routing: action.route === item.route
...item, selected: action.route === item.route, routing: action.route === item.route
} : item.subItem && Array.isArray(item.subItem) ? {
...item, subItem: item.subItem.map((subitem) => ({
...subitem, selected: subitem.route === action.route, routing: subitem.route === action.route
@@ -70,15 +65,16 @@ export default function SidebarList({handleDrawerToggle}) {
return (<List dense={true} sx={{overflow: "scroll", p: 0}}>
{itemMenu.map((itemArr, index) => (<Fragment key={index}>
{itemArr.map((item) => <Fragment key={item.key}>
{(user?.permissions?.includes(item.permission) || item.permission === "all") && <SidebarListItem
{itemArr.map((item) => <Fragment key={item.key}>
{(item.permissions.some((permission) => user?.permissions?.includes(permission)) || item.permissions.includes('all')) &&
<SidebarListItem
item={item}
dispatch={dispatch}
handleDrawerToggle={handleDrawerToggle}
/>}
</Fragment>)}
<Divider/>
</Fragment>))}
</Fragment>)}
<Divider/>
</Fragment>))}
</List>
);

View File

@@ -24,7 +24,7 @@ const sidebarMenu = [
route: "/dashboard",
icon: <SpaceDashboardIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "all",
permissions: ["all"],
},
{
key: "sidebar.reports",
@@ -33,7 +33,7 @@ const sidebarMenu = [
route: "/dashboard/reports",
icon: <AssessmentIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "view_reports_navgan",
permissions: ["view_reports_navgan"],
},
{
key: "sidebar.loan-history",
@@ -42,16 +42,7 @@ const sidebarMenu = [
route: "/dashboard/loan-history",
icon: <SecurityIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "view_navgan_loans",
},
{
key: "sidebar.loan-history-province",
name: "loan-history",
type: "page",
route: "/dashboard/loan-history",
icon: <SecurityIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "view_navgan_loans_province",
permissions: ["view_navgan_loans", "view_navgan_loans_province"],
},
], [
{
@@ -62,7 +53,7 @@ const sidebarMenu = [
route: "/dashboard/passenger-office-chief",
icon: <AirlineSeatReclineNormalIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_passenger_office_navgan",
permissions: ["manage_passenger_office_navgan"],
},
{
key: "sidebar.machinery-expert",
@@ -72,7 +63,7 @@ const sidebarMenu = [
route: "/dashboard/machinery-expert",
icon: <DirectionsCarFilledIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_machinery_navgan",
permissions: ["manage_machinery_navgan"],
},
{
key: "sidebar.passenger-boss",
@@ -82,7 +73,7 @@ const sidebarMenu = [
route: "/dashboard/passenger-boss",
icon: <AssignmentIndIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_province_working_group_navgan",
permissions: ["manage_province_working_group_navgan"],
},
{
@@ -93,7 +84,7 @@ const sidebarMenu = [
route: "/dashboard/transportation-assistant",
icon: <DirectionsRailwayIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_transportation_navgan",
permissions: ["manage_transportation_navgan"],
},
{
key: "sidebar.navgan-province-manager",
@@ -103,7 +94,7 @@ const sidebarMenu = [
route: "/dashboard/navgan-province-manager",
icon: <DesktopWindowsIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_province_affairs_navgan",
permissions: ["manage_province_affairs_navgan"],
},
{
key: "sidebar.navgan-loan-management",
@@ -113,7 +104,7 @@ const sidebarMenu = [
route: "/dashboard/navgan-loan-management",
icon: <PaidIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_navgan_loan",
permissions: ["manage_navgan_loan"],
},
], [
{
@@ -124,7 +115,7 @@ const sidebarMenu = [
route: "/dashboard/province-head-expert",
icon: <GavelIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_province_headquarter_refahi",
permissions: ["manage_province_headquarter_refahi"],
},
{
key: "sidebar.inspector-expert",
@@ -134,7 +125,7 @@ const sidebarMenu = [
route: "/dashboard/inspector-expert",
icon: <GradingIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_inspector_refahi",
permissions: ["manage_inspector_refahi"],
},
{
key: "sidebar.commercial-chief",
@@ -144,7 +135,7 @@ const sidebarMenu = [
route: "/dashboard/commercial-chief",
icon: <BusinessCenterIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_commercial_refahi",
permissions: ["manage_commercial_refahi"],
},
{
key: "sidebar.development-assistant",
@@ -154,7 +145,7 @@ const sidebarMenu = [
route: "/dashboard/development-assistant",
icon: <Diversity3Icon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_development_refahi",
permissions: ["manage_development_refahi"],
},
{
key: "sidebar.refahi-province-manager",
@@ -164,7 +155,7 @@ const sidebarMenu = [
route: "/dashboard/refahi-province-manager",
icon: <SupervisedUserCircleIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_province_affairs_refahi",
permissions: ["manage_province_affairs_refahi"],
},
{
key: "sidebar.refahi-loan-management",
@@ -174,7 +165,7 @@ const sidebarMenu = [
route: "/dashboard/refahi-loan-management",
icon: <PaidIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_refahi_loan",
permissions: ["manage_refahi_loan"],
},
], [
{
@@ -185,7 +176,7 @@ const sidebarMenu = [
route: "/dashboard/expert-management",
icon: <ManageAccountsIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_experts",
permissions: ["manage_experts"],
},
{
key: "sidebar.user-management",
@@ -195,7 +186,7 @@ const sidebarMenu = [
route: "/dashboard/user-management",
icon: <PersonIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_users",
permissions: ["manage_users"],
},
{
key: "sidebar.role-management",
@@ -205,7 +196,7 @@ const sidebarMenu = [
route: "/dashboard/role-management",
icon: <AccessibilityIcon sx={{width: 'inherit', height: 'inherit'}}/>,
selected: false,
permission: "manage_roles",
permissions: ["manage_roles"],
}
],
];