From d26f0c733c2c4d73e57b17e88c3af7f80a583922 Mon Sep 17 00:00:00 2001 From: AmirHossein Mahmoodi Date: Sun, 13 Apr 2025 14:14:45 +0330 Subject: [PATCH] fixed bug --- .../roadSafety/operator/OperatorList.jsx | 121 +++++++++--------- 1 file changed, 62 insertions(+), 59 deletions(-) diff --git a/src/components/dashboard/roadSafety/operator/OperatorList.jsx b/src/components/dashboard/roadSafety/operator/OperatorList.jsx index facec54..865b3d2 100644 --- a/src/components/dashboard/roadSafety/operator/OperatorList.jsx +++ b/src/components/dashboard/roadSafety/operator/OperatorList.jsx @@ -19,7 +19,8 @@ import useSafetyAndPrivacyGetItems from "@/lib/hooks/useSafetyAndPrivacyGetItems const OperatorList = () => { const { data: userPermissions } = usePermissions(); - const hasCountryPermission = userPermissions?.includes("show-fast-react"); + const hasCountryPermission = userPermissions?.includes("show-safety-and-privacy-operator-cartable"); + const hasProvincePermission = userPermissions?.includes("show-safety-and-privacy-operator-cartable-province"); const { user } = useAuth(); const statusOptions = [ { value: "", label: "همه وضعیت ها" }, @@ -37,7 +38,7 @@ const OperatorList = () => { ]; const columns = useMemo(() => { - const dynamicColumns = { + const ProvinceColumn = { header: "استان", id: "province_id", enableColumnFilter: true, @@ -72,6 +73,63 @@ const OperatorList = () => { }, Cell: ({ row }) => <>{row.original.province_fa}, }; + const EdareShahriColumn = { + header: "اداره", + id: "edare_shahri_id", + enableColumnFilter: true, + datatype: "numeric", + filterMode: "equals", + dependencyId: hasCountryPermission ? "province_id" : null, + grow: false, + size: 120, + ColumnSelectComponent: (props) => { + const { edaratList, loadingEdaratList, errorEdaratList } = useEdaratLists( + hasCountryPermission ? props.dependencyFieldValue.value : user.province_id + ); + const [prevDependency, setPrevDependency] = useState( + hasCountryPermission ? props.dependencyFieldValue.value : user.province_id + ); + + const getColumnSelectOptions = useMemo(() => { + if (hasCountryPermission && props.dependencyFieldValue.value === "") { + return [{ value: "empty", label: "ابتدا استان را انتخاب کنید" }]; + } + if (loadingEdaratList) { + return [{ value: "loading", label: "در حال بارگذاری..." }]; + } + if (errorEdaratList) { + return [{ value: "error", label: "خطا در بارگذاری" }]; + } + return [ + { value: "", label: "کل ادارات" }, + ...edaratList.map((edare) => ({ + value: edare.id, + label: edare.name_fa, + })), + ]; + }, [edaratList, loadingEdaratList, errorEdaratList]); + useEffect(() => { + if (hasCountryPermission) return; + if (prevDependency === props.dependencyFieldValue?.value) return; + props.handleChange({ ...props.filterParameters, value: "" }); + setPrevDependency(props.dependencyFieldValue?.value); + }, [props.dependencyFieldValue?.value, hasCountryPermission]); + return ( + + ); + }, + Cell: ({ row }) => <>{row.original.edare_shahri_name}, + }; return [ { accessorKey: "id", @@ -85,64 +143,9 @@ const OperatorList = () => { grow: false, size: 100, }, - ...(hasCountryPermission ? [dynamicColumns] : []), - { - header: "اداره", - id: "edare_shahri_id", - enableColumnFilter: true, - datatype: "numeric", - filterMode: "equals", - dependencyId: hasCountryPermission ? "province_id" : null, - grow: false, - size: 120, - ColumnSelectComponent: (props) => { - const { edaratList, loadingEdaratList, errorEdaratList } = useEdaratLists( - hasCountryPermission ? props.dependencyFieldValue.value : user.province_id - ); - const [prevDependency, setPrevDependency] = useState( - hasCountryPermission ? props.dependencyFieldValue.value : user.province_id - ); + ...(hasCountryPermission ? [ProvinceColumn] : []), + ...(hasProvincePermission ? [EdareShahriColumn] : []), - const getColumnSelectOptions = useMemo(() => { - if (hasCountryPermission && props.dependencyFieldValue.value === "") { - return [{ value: "empty", label: "ابتدا استان را انتخاب کنید" }]; - } - if (loadingEdaratList) { - return [{ value: "loading", label: "در حال بارگذاری..." }]; - } - if (errorEdaratList) { - return [{ value: "error", label: "خطا در بارگذاری" }]; - } - return [ - { value: "", label: "کل ادارات" }, - ...edaratList.map((edare) => ({ - value: edare.id, - label: edare.name_fa, - })), - ]; - }, [edaratList, loadingEdaratList, errorEdaratList]); - useEffect(() => { - if (hasCountryPermission) return; - if (prevDependency === props.dependencyFieldValue?.value) return; - props.handleChange({ ...props.filterParameters, value: "" }); - setPrevDependency(props.dependencyFieldValue?.value); - }, [props.dependencyFieldValue?.value, hasCountryPermission]); - return ( - - ); - }, - Cell: ({ row }) => <>{row.original.edare_shahri_name}, - }, { header: "اطلاعات فعالیت", id: "info",