formatting

This commit is contained in:
Amirhossein Mahmoodi
2024-07-11 10:57:53 +03:30
parent 15a1da557a
commit c84d253721
12 changed files with 138 additions and 101 deletions

View File

@@ -1,10 +1,7 @@
import InquiryPrivacyFencingPage from "@/components/dashboard/inquiryPrivacyFencing";
const Page = () => {
return (
<InquiryPrivacyFencingPage />
);
return <InquiryPrivacyFencingPage />;
};
export default Page;
export default Page;

View File

@@ -12,4 +12,4 @@ const Layout = ({ children }) => {
</Stack>
);
};
export default Layout;
export default Layout;

View File

@@ -1,9 +1,5 @@
const Page = () => {
return (
<>
</>
);
return <></>;
};
export default Page;

View File

@@ -1,7 +1,8 @@
import { redirect } from "next/navigation";
const prefix = process.env.NODE_ENV === "production" ? "/v3" : "";
function Page() {
redirect("/dashboard", "replace");
redirect(prefix + "/dashboard", "replace");
return null;
}

View File

@@ -99,7 +99,7 @@ const DataTable_Main = (props) => {
params.set("sorting", JSON.stringify(sortData));
return `${table_url}?${params}`;
}, [table_url, filterData, pagination, columns]);
const table = useMaterialReactTable({
localization: FA_DATATABLE_LOCALIZATION,
columns,

View File

@@ -0,0 +1,10 @@
import { TextField, styled } from "@mui/material";
const LtrTextField = styled(TextField)`
.MuiInputBase-input {
/* @noflip */
direction: ltr;
}
`;
export default LtrTextField;

View File

@@ -25,7 +25,7 @@ function AskForKeepData({ filterData, sortData, user_id, page_name, table_name,
})
.filter(Boolean);
filterAction(user_id, page_name, table_name, filteredItems, columns);
sortAction(user_id, page_name, table_name, sortData, columns);
toast.dismiss({ containerId: "datatable" });
};
@@ -75,4 +75,4 @@ function AskForKeepData({ filterData, sortData, user_id, page_name, table_name,
);
}
export default AskForKeepData;
export default AskForKeepData;

View File

@@ -15,11 +15,11 @@ function selectPage(item, route) {
showSubitems: item.route === route,
};
} else if (item.Subitems && Array.isArray(item.Subitems)) {
const updatedSubitems = item.Subitems.map(subitem => selectPage(subitem, route));
const updatedSubitems = item.Subitems.map((subitem) => selectPage(subitem, route));
return {
...item,
Subitems: updatedSubitems,
showSubitems: updatedSubitems.some(subitem => subitem.showSubitems || subitem.route === route),
showSubitems: updatedSubitems.some((subitem) => subitem.showSubitems || subitem.route === route),
};
}
return item;
@@ -28,59 +28,59 @@ function selectPage(item, route) {
function reducer(state, action) {
switch (action.type) {
case "UPDATE_MENU":
const _permissions = action.permissions || []
const filteredPageMenu = filterMenuItems(state, ['all', ..._permissions])
return filteredPageMenu
const _permissions = action.permissions || [];
const filteredPageMenu = filterMenuItems(state, ["all", ..._permissions]);
return filteredPageMenu;
case "COLLAPSE_MENU":
return state.map((item) =>
action.id == item.id
? {
...item,
showSubitems: !item.showSubitems,
}
...item,
showSubitems: !item.showSubitems,
}
: item
);
case "COLLAPSE_SUB_ITEMS":
return state.map((item) => {
return item.hasSubitems
? {
...item,
Subitems: item.Subitems.map((subitem) =>
action.id === subitem.id
? {
...subitem,
showSubitems: !subitem.showSubitems,
}
: subitem
),
}
...item,
Subitems: item.Subitems.map((subitem) =>
action.id === subitem.id
? {
...subitem,
showSubitems: !subitem.showSubitems,
}
: subitem
),
}
: item;
});
case "COLLAPSE_SUB_SECOND_ITEMS":
return state.map((item) => {
return item.hasSubitems
? {
...item,
Subitems: item.Subitems.map((subitem) => {
return subitem.hasSubitems
? {
...subitem,
Subitems: subitem.Subitems.map((secondSubitem) =>
action.id === secondSubitem.id
? {
...secondSubitem,
showSubitems: !secondSubitem.showSubitems,
}
: secondSubitem
),
}
: subitem;
}),
}
...item,
Subitems: item.Subitems.map((subitem) => {
return subitem.hasSubitems
? {
...subitem,
Subitems: subitem.Subitems.map((secondSubitem) =>
action.id === secondSubitem.id
? {
...secondSubitem,
showSubitems: !secondSubitem.showSubitems,
}
: secondSubitem
),
}
: subitem;
}),
}
: item;
});
case "SELECTED":
return state.map(item => selectPage(item, action.route));
return state.map((item) => selectPage(item, action.route));
default:
throw new Error();
@@ -88,7 +88,7 @@ function reducer(state, action) {
}
const SidebarMenu = () => {
const { data: userPermissions } = usePermissions()
const { data: userPermissions } = usePermissions();
const [menuItems, dispatch] = useReducer(reducer, pageMenu);
const pathname = usePathname();
const [selectedKey, setSelectedKey] = useState(null);
@@ -99,10 +99,9 @@ const SidebarMenu = () => {
}, [userPermissions, pathname]);
useEffect(() => {
if (!userPermissions) return
dispatch({ type: 'UPDATE_MENU', permissions: userPermissions });
}, [userPermissions])
if (!userPermissions) return;
dispatch({ type: "UPDATE_MENU", permissions: userPermissions });
}, [userPermissions]);
useEffect(() => {
selectedKey &&

View File

@@ -1,7 +1,7 @@
export function filterMenuItems(items, _permissions = []) {
return items.reduce((acc, item) => {
if (item.permissions) {
if (item.permissions.some(permission => _permissions.includes(permission))) {
if (item.permissions.some((permission) => _permissions.includes(permission))) {
acc.push(item);
}
} else if (item.hasSubitems) {
@@ -14,4 +14,4 @@ export function filterMenuItems(items, _permissions = []) {
}
return acc;
}, []);
}
}

View File

@@ -1,5 +1,5 @@
import { Security } from "@mui/icons-material";
const prefix = process.env.NODE_ENV === 'production' ? '/v3' : ''
const prefix = process.env.NODE_ENV === "production" ? "/v3" : "";
export const pageMenu = [
{
@@ -8,7 +8,7 @@ export const pageMenu = [
type: "page",
route: prefix + "/dashboard",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ["all"]
permissions: ["all"],
},
{
id: "userManagement",
@@ -16,7 +16,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/user_management",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['full-user-management', 'limited-user-management']
permissions: ["full-user-management", "limited-user-management"],
},
{
id: "projectsManagment",
@@ -31,7 +31,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/rahdari_projects/finance",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-contract', 'show-contract-province'],
permissions: ["show-contract", "show-contract-province"],
},
{
id: "projectsManagmentList",
@@ -39,7 +39,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/rahdari_projects/projects_list",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ["all"]
permissions: ["all"],
},
{
id: "projectsManagmentProposal",
@@ -47,7 +47,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/rahdari_projects/proposal",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-proposal', 'show-proposal-province']
permissions: ["show-proposal", "show-proposal-province"],
},
{
id: "projectsManagmentLawmaker",
@@ -55,7 +55,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/rahdari_projects/lawmakers",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-lawmaker', 'show-lawmaker-province']
permissions: ["show-lawmaker", "show-lawmaker-province"],
},
{
id: "projectsManagmentMap",
@@ -63,7 +63,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=rahdari_projects",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ["all"]
permissions: ["all"],
},
],
},
@@ -86,7 +86,10 @@ export const pageMenu = [
label: "کارتابل",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_items/supervisor/cartable",
permissions: ['show-road-item-supervise-cartable', 'show-road-item-supervise-cartable-province']
permissions: [
"show-road-item-supervise-cartable",
"show-road-item-supervise-cartable-province",
],
},
],
},
@@ -102,14 +105,14 @@ export const pageMenu = [
label: "ثبت فعالیت",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_items/operator/create",
permissions: ['create-road-item']
permissions: ["create-road-item"],
},
{
id: "roadItemManagmentOparationCartable",
label: "کارتابل",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_items/operator/cartable",
permissions: ['create-road-item']
permissions: ["create-road-item"],
},
],
},
@@ -119,7 +122,11 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=road_items",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-road-item-supervise-cartable', 'show-road-item-supervise-cartable-province', 'create-road-item']
permissions: [
"show-road-item-supervise-cartable",
"show-road-item-supervise-cartable-province",
"create-road-item",
],
},
{
id: "roadItemManagmentReport",
@@ -127,7 +134,11 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_items/report",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-road-item-supervise-cartable', 'show-road-item-supervise-cartable-province', 'create-road-item']
permissions: [
"show-road-item-supervise-cartable",
"show-road-item-supervise-cartable-province",
"create-road-item",
],
},
],
},
@@ -150,7 +161,10 @@ export const pageMenu = [
label: "کارتابل",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/road_patrols/supervisor/cartable",
permissions: ['show-road-patrol-supervise-cartable', 'show-road-patrol-supervise-cartable-province']
permissions: [
"show-road-patrol-supervise-cartable",
"show-road-patrol-supervise-cartable-province",
],
},
],
},
@@ -166,14 +180,14 @@ export const pageMenu = [
label: "ثبت اقدام",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_patrols/operator/create",
permissions: ['add-road-patrol']
permissions: ["add-road-patrol"],
},
{
id: "roadPatrolManagmentOparationCartable",
label: "کارتابل",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_patrols/operator/cartable",
permissions: ['add-road-patrol']
permissions: ["add-road-patrol"],
},
],
},
@@ -183,7 +197,11 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=road_patrols",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['add-road-patrol', 'show-road-patrol-supervise-cartable', 'show-road-patrol-supervise-cartable-province']
permissions: [
"add-road-patrol",
"show-road-patrol-supervise-cartable",
"show-road-patrol-supervise-cartable-province",
],
},
{
id: "roadPatrolManagmentReport",
@@ -191,7 +209,11 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_patrols/report",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['add-road-patrol', 'show-road-patrol-supervise-cartable', 'show-road-patrol-supervise-cartable-province']
permissions: [
"add-road-patrol",
"show-road-patrol-supervise-cartable",
"show-road-patrol-supervise-cartable-province",
],
},
],
},
@@ -207,23 +229,23 @@ export const pageMenu = [
label: "احداث و بهره برداری دیوارکشی و مستحدثات",
type: "page",
route: prefix + "/dashboard/inquiry_privacy/fencing",
permissions: ['all']
permissions: ["all"],
},
{
id: "inquiryPrivacyManagmentRoad",
label: "احداث راه دسترسی اختصاصی",
type: "page",
route: prefix + "/dashboard/inquiry_privacy/road",
permissions: ['all']
permissions: ["all"],
},
{
id: "inquiryPrivacyManagmentInfrastructure",
label: "احداث و بهره برداری تاسیسات زیربنایی",
type: "page",
route: prefix + "/dashboard/inquiry_privacy/infrastructure",
permissions: ['all']
permissions: ["all"],
},
]
],
},
{
id: "safetyAndPrivacyManagment",
@@ -244,14 +266,18 @@ export const pageMenu = [
label: "ثبت فعالیت",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/safety_and_privacy/operator/first_step",
permissions: ['add-safety-and-privacy']
permissions: ["add-safety-and-privacy"],
},
{
id: "safetyAndPrivacyManagmentOparationCartable",
label: "کارتابل",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/safety_and_privacy/operator/cartable",
permissions: ['show-safety-and-privacy-operator-cartable', 'show-safety-and-privacy-operator-cartable-province', 'show-safety-and-privacy-operator-cartable-edarate-shahri']
permissions: [
"show-safety-and-privacy-operator-cartable",
"show-safety-and-privacy-operator-cartable-province",
"show-safety-and-privacy-operator-cartable-edarate-shahri",
],
},
],
},
@@ -261,8 +287,12 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=safety_and_privacy",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-safety-and-privacy-operator-cartable', 'show-safety-and-privacy-operator-cartable-province',
'show-safety-and-privacy-operator-cartable-edarate-shahri', 'add-safety-and-privacy']
permissions: [
"show-safety-and-privacy-operator-cartable",
"show-safety-and-privacy-operator-cartable-province",
"show-safety-and-privacy-operator-cartable-edarate-shahri",
"add-safety-and-privacy",
],
},
{
id: "safetyAndPrivacyManagmentReport",
@@ -270,8 +300,12 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/safety_and_privacy/report",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-safety-and-privacy-operator-cartable', 'show-safety-and-privacy-operator-cartable-province',
'show-safety-and-privacy-operator-cartable-edarate-shahri', 'add-safety-and-privacy']
permissions: [
"show-safety-and-privacy-operator-cartable",
"show-safety-and-privacy-operator-cartable-province",
"show-safety-and-privacy-operator-cartable-edarate-shahri",
"add-safety-and-privacy",
],
},
],
},
@@ -294,7 +328,7 @@ export const pageMenu = [
label: "کارتابل",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_observations/supervisor/cartable",
permissions: ['supervise-fast-react', 'supervise-fast-react-province']
permissions: ["supervise-fast-react", "supervise-fast-react-province"],
},
],
},
@@ -304,7 +338,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_observations",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-fast-react', 'show-fast-react-province', 'show-fast-react-edarate-shahri']
permissions: ["show-fast-react", "show-fast-react-province", "show-fast-react-edarate-shahri"],
},
{
id: "roadObservationsManagmentOparation",
@@ -318,7 +352,7 @@ export const pageMenu = [
label: "کارتابل",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_observations/operator/cartable",
permissions: ['show-fast-react', 'show-fast-react-province', 'show-fast-react-edarate-shahri']
permissions: ["show-fast-react", "show-fast-react-province", "show-fast-react-edarate-shahri"],
},
],
},
@@ -328,7 +362,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=road_observations",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ["all"]
permissions: ["all"],
},
{
id: "roadObservationsManagmentReport",
@@ -336,7 +370,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_observations/report/index",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ["all"]
permissions: ["all"],
},
],
},
@@ -353,7 +387,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/winter_camp",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-camp', 'show-camp-province']
permissions: ["show-camp", "show-camp-province"],
},
{
id: "winterCampManagmentFirstRing",
@@ -361,7 +395,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=camp",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-camp', 'show-camp-province']
permissions: ["show-camp", "show-camp-province"],
},
{
id: "winterCampManagmentReport",
@@ -369,7 +403,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=campNew",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ['show-camp', 'show-camp-province']
permissions: ["show-camp", "show-camp-province"],
},
],
},
@@ -392,7 +426,7 @@ export const pageMenu = [
label: "کارتابل",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/receipt",
permissions: ["all"]
permissions: ["all"],
},
],
},
@@ -402,7 +436,7 @@ export const pageMenu = [
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/receipt/report",
icon: <Security sx={{ width: "inherit", height: "inherit" }} />,
permissions: ["all"]
permissions: ["all"],
},
],
},

View File

@@ -3,4 +3,4 @@ const api = process.env.NEXT_PUBLIC_API_URL;
export const GET_USER_ROUTE = api + "/webapi/user/get-permission";
export const GET_LOGIN_ROUTE = api + "/login_dev";
export const GET_PERMISSIONS_ROUTE = api + "/webapi/user/get-permission";
export const GET_PERMISSIONS_ROUTE = api + "/webapi/user/get-permission";

View File

@@ -3,16 +3,16 @@ import useSWR from "swr";
import useRequest from "./useRequest";
export const usePermissions = () => {
const request = useRequest()
const request = useRequest();
const fetcher = async (url) => {
try {
const response = await request(url)
return response.data.data
const response = await request(url);
return response.data.data;
} catch (error) {
throw new Error();
}
};
return useSWR(GET_PERMISSIONS_ROUTE, fetcher, { keepPreviousData: true });
}
};