diff --git a/src/components/dashboard/roadSafety/reports/reportPage/index.jsx b/src/components/dashboard/roadSafety/reports/reportPage/index.jsx index 2c604e2..dff0300 100644 --- a/src/components/dashboard/roadSafety/reports/reportPage/index.jsx +++ b/src/components/dashboard/roadSafety/reports/reportPage/index.jsx @@ -11,6 +11,7 @@ import useSafetyAndPrivacyGetItems from "@/lib/hooks/useSafetyAndPrivacyGetItems import { Box, LinearProgress, Stack } from "@mui/material"; import { useEffect, useMemo, useState } from "react"; import ReportLists from "./ReportLists"; +import { useAuth } from "@/lib/contexts/auth"; const statusOptions = [ { value: "", label: "همه وضعیت ها" }, @@ -30,6 +31,7 @@ const axisOptions = [ const ReportPage = () => { const { data: userPermissions } = usePermissions(); const hasProvincesPermission = userPermissions.includes("show-safety-and-privacy-operator-cartable"); + const { user } = useAuth() const requestServer = useRequest(); const [data, setData] = useState(null); const [isLoading, setLoading] = useState(true); @@ -167,18 +169,36 @@ const ReportPage = () => { return acc; }, {}) ); + useEffect(() => { const fetchData = async () => { + try { setLoading(true); + const province_id = hasProvincesPermission + ? filterData.province_id.value + : user.province_id; + + const adjustedFilterData = hasProvincesPermission + ? filterData + : { + ...filterData, + province_id: { + id: "province_id", + filterMode: "equals", + datatype: "numeric", + value: province_id, + }, + }; + + const filters = DataTableFilterDataStructure(adjustedFilterData, isArrayEmpty); + const params = new URLSearchParams(); - const filters = DataTableFilterDataStructure(filterData, isArrayEmpty); params.set("filters", JSON.stringify(filters || [])); - const query = params.toString(); - const province_id = filterData.province_id.value; + if (province_id === "") { try { - const response = await requestServer(`${GET_ROAD_SAFETY_PROVINCE_ACTIVITY_REPORT}?${query}`); + const response = await requestServer(`${GET_ROAD_SAFETY_PROVINCE_ACTIVITY_REPORT}?${params.toString()}`); const result = response.data.data; const nationalReportForItem = result.activities.find((report) => report.province_id === -1); const nationalReport = { @@ -198,10 +218,13 @@ const ReportPage = () => { }; }), ]); - } catch (e) {} + } catch (e) { + console.log(e); + } } else { + params.set("province_id", province_id); try { - const response = await requestServer(`${GET_ROAD_SAFETY_CITY_ACTIVITY_REPORT}?${params}`); + const response = await requestServer(`${GET_ROAD_SAFETY_CITY_ACTIVITY_REPORT}?${params.toString()}`); const result = response.data.data; const nationalReportForItem = result.activities.find( (report) => report.edare_shahri_id == "-1" @@ -222,7 +245,7 @@ const ReportPage = () => { }; }), ]); - } catch (e) {} + } catch (e) { console.log(e); } } } catch (error) { console.log(error);