diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/PrivacyOfficeList.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/PrivacyOfficeList.jsx
index c339a16..b6932ca 100644
--- a/src/components/dashboard/inquiryPrivacy/privacy-office/PrivacyOfficeList.jsx
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/PrivacyOfficeList.jsx
@@ -12,10 +12,9 @@ import SecurityIcon from "@mui/icons-material/Security";
import WindowIcon from "@mui/icons-material/Window";
import { Box, Stack } from "@mui/material";
import moment from "jalali-moment";
-import { useMemo, useState } from "react";
+import { useMemo } from "react";
import RowActions from "./RowActions";
-import ActionDialog from "./RowActions/ActionsDialog";
import ShowPrimaryArea from "./ShowPrimaryArea";
const PrivacyOfficeList = () => {
@@ -31,20 +30,6 @@ const PrivacyOfficeList = () => {
if (state_id === 12) return ;
};
- const [modal, setModal] = useState({
- open: false,
- type: null, // "reject" | "confirm" | "referral"
- rowId: null,
- });
-
- const handleOpenModal = (type, rowId) => {
- setModal({ open: true, type, rowId });
- };
-
- const handleCloseModal = () => {
- setModal({ open: false, type: null, rowId: null });
- };
-
const columns = useMemo(() => {
return [
{
@@ -250,11 +235,9 @@ const PrivacyOfficeList = () => {
table_name={"PrivacyOfficeList"}
enableRowActions
positionActionsColumn={"first"}
- RowActions={(props) => }
+ RowActions={RowActions}
/>
-
-
>
);
};
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ActionsDialog.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ActionsDialog.jsx
index 75a1bf6..92afece 100644
--- a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ActionsDialog.jsx
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ActionsDialog.jsx
@@ -1,101 +1,18 @@
-import {
- Box,
- Button,
- Checkbox,
- Dialog,
- DialogActions,
- DialogContent,
- DialogTitle,
- FormControlLabel,
- TextField,
-} from "@mui/material";
-import { useEffect, useState } from "react";
-import { Controller, useForm } from "react-hook-form";
-
-const ActionDialog = ({ open, type, rowDataId, onClose }) => {
- const [needsAccessRoad, setNeedsAccessRoad] = useState(false);
- const {
- control,
- handleSubmit,
- reset,
- formState: { isSubmitting },
- } = useForm({
- defaultValues: {
- expert_description: "",
- need_payment: false,
- },
- });
-
- useEffect(() => {
- if (open) {
- reset({
- expert_description: "",
- need_payment: false,
- });
- }
- }, [open, reset]);
+import { Dialog, DialogTitle } from "@mui/material";
+import RenderActionForm from "./RenderActionForm";
+const ActionDialog = ({ open, type, rowData, onClose, mutate }) => {
const actionLabel = {
- reject: "رد درخواست",
- confirm: "تایید درخواست",
- referral: "ارجاع درخواست",
+ reject_request: "رد درخواست",
+ confirm_request: "تایید درخواست",
+ refer_request: "ارجاع درخواست",
}[type];
- const onSubmit = (formData) => {
- console.log("Row data id:", rowDataId);
- console.log("Action type:", type);
- console.log("Form data:", formData);
-
- // TODO: Implement the API call here
-
- onClose();
- };
-
return (
);
};
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ConfirmAction/index.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ConfirmAction/index.jsx
index ca0b3d5..bdb4b35 100644
--- a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ConfirmAction/index.jsx
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ConfirmAction/index.jsx
@@ -1,11 +1,11 @@
import ThumbUpIcon from "@mui/icons-material/ThumbUp";
import { IconButton, Tooltip } from "@mui/material";
-const ConfirmAction = ({ onClick }) => {
+const ConfirmAction = ({ onClick, disabled }) => {
return (
<>
-
+
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ComputePaymentForm.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ComputePaymentForm.jsx
new file mode 100644
index 0000000..d40f0a3
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ComputePaymentForm.jsx
@@ -0,0 +1,3 @@
+export default function ComputePaymentForm({ mutate }) {
+ return
ComputePaymentForm
;
+}
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ConfirmFileForm.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ConfirmFileForm.jsx
new file mode 100644
index 0000000..5f98d49
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ConfirmFileForm.jsx
@@ -0,0 +1,3 @@
+export default function ConfirmFileForm({ mutate }) {
+ return ConfirmFileForm
;
+}
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ConfirmRequestForm.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ConfirmRequestForm.jsx
new file mode 100644
index 0000000..5d0ca86
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ConfirmRequestForm.jsx
@@ -0,0 +1,3 @@
+export default function ConfirmRequestForm({ mutate }) {
+ return ConfirmRequestForm
;
+}
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ReferForm.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ReferForm.jsx
new file mode 100644
index 0000000..543bc33
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/ReferForm.jsx
@@ -0,0 +1,9 @@
+import { Box } from "@mui/material";
+
+export default function ReferForm({ mutate }) {
+ return (
+
+
+
+ );
+}
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/RejectFileForm.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/RejectFileForm.jsx
new file mode 100644
index 0000000..42080a3
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/RejectFileForm.jsx
@@ -0,0 +1,3 @@
+export default function RejectFileForm({ mutate }) {
+ return RejectFileForm
;
+}
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/RejectRequestForm.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/RejectRequestForm.jsx
new file mode 100644
index 0000000..bca7ee3
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/Forms/RejectRequestForm.jsx
@@ -0,0 +1,3 @@
+export default function RejectRequestForm({ mutate }) {
+ return RejectRequestForm
;
+}
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ReferralAction/index.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ReferralAction/index.jsx
index 7f56971..a75ef8c 100644
--- a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ReferralAction/index.jsx
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ReferralAction/index.jsx
@@ -1,11 +1,11 @@
import { Reply } from "@mui/icons-material";
import { IconButton, Tooltip } from "@mui/material";
-const ReferralAction = ({ onClick }) => {
+const ReferralAction = ({ onClick, disabled }) => {
return (
<>
-
+
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/RejectAction/index.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/RejectAction/index.jsx
index b2e40ab..edd0346 100644
--- a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/RejectAction/index.jsx
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/RejectAction/index.jsx
@@ -1,11 +1,11 @@
import ThumbDownIcon from "@mui/icons-material/ThumbDown";
import { IconButton, Tooltip } from "@mui/material";
-const RejectAction = ({ onClick }) => {
+const RejectAction = ({ onClick, disabled }) => {
return (
<>
-
+
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/RenderActionForm.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/RenderActionForm.jsx
new file mode 100644
index 0000000..d901c13
--- /dev/null
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/RenderActionForm.jsx
@@ -0,0 +1,76 @@
+import { DialogContent } from "@mui/material";
+import ComputePaymentForm from "./Forms/ComputePaymentForm";
+import ConfirmFileForm from "./Forms/ConfirmFileForm";
+import ConfirmRequestForm from "./Forms/ConfirmRequestForm";
+import ReferForm from "./Forms/ReferForm";
+import RejectFileForm from "./Forms/RejectFileForm";
+import RejectRequestForm from "./Forms/RejectRequestForm";
+
+export default function RenderActionForm({ type, rowData, mutate }) {
+ const formType = `${type}_${rowData?.state_id}`;
+
+ console.log(formType);
+
+ function renderForm() {
+ switch (formType) {
+ case "refer_request_2":
+ return ;
+ case "reject_request_2":
+ return ;
+ case "reject_request_5":
+ return ;
+ case "confirm_request_2":
+ return ;
+ case "confirm_request_5":
+ return ;
+ case "confirm_request_13":
+ return ;
+ default:
+ return <>>;
+ }
+ }
+
+ return {renderForm(formType)};
+}
+
+/*
+
+ }
+ />
+ {type === "confirm_request" && (
+ <>
+ (
+ }
+ label="نیاز به پرداخت وجه خزانه"
+ />
+ )}
+ />
+ setNeedsAccessRoad(e.target.checked)}
+ />
+ }
+ label="نیاز به راه دسترسی"
+ />
+ >
+ )}
+
+
+
+
+
+
+*/
diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/index.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/index.jsx
index 61c5a54..6cc004d 100644
--- a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/index.jsx
+++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/index.jsx
@@ -1,20 +1,54 @@
import { Box } from "@mui/material";
+import { useState } from "react";
+import ActionDialog from "./ActionsDialog";
import ConfirmAction from "./ConfirmAction";
import ReferralAction from "./ReferralAction";
import RejectAction from "./RejectAction";
-const RowActions = ({
- row: {
- original: { id },
- },
- onActionClick,
-}) => {
+const RowActions = ({ row: { original }, mutate }) => {
+ const [modal, setModal] = useState({
+ open: false,
+ type: null, // "reject_request" | "confirm_request" | "refer_request"
+ rowData: null,
+ });
+
+ const handleOpenModal = (type, rowData) => {
+ setModal({ open: true, type, rowData });
+ };
+
+ const handleCloseModal = () => {
+ setModal({ open: false, type: null, rowData: null });
+ };
+
+ const stateId = original.state_id;
+
+ const disabled = {
+ referral: stateId !== 2,
+ reject: stateId !== 2 && stateId !== 5,
+ confirm: stateId !== 2 && stateId !== 5 && stateId !== 13,
+ };
+
return (
-
- onActionClick("referral", id)} />
- onActionClick("reject", id)} />
- onActionClick("confirm", id)} />
-
+ <>
+
+ handleOpenModal("refer_request", original)}
+ disabled={disabled.referral}
+ />
+ handleOpenModal("reject_request", original)} disabled={disabled.reject} />
+ handleOpenModal("confirm_request", original)}
+ disabled={disabled.confirm}
+ />
+
+
+ >
);
};
diff --git a/src/core/utils/routes.js b/src/core/utils/routes.js
index 8572b6f..b2bb76d 100644
--- a/src/core/utils/routes.js
+++ b/src/core/utils/routes.js
@@ -240,3 +240,4 @@ export const GET_CITY_ADMIN_LIST = api + "/api/v3/harim/province_office";
export const GET_INQUIRY_PRIVACY_STATE_LIST = api + "/api/v3/harim/detail/states";
export const CITY_ADMIN_FEEDBACK = api + "/api/v3/harim/province_office/feedback";
export const GET_PRIVACY_ADMIN_LIST = api + "/api/v3/harim/harim_office";
+export const PRIVACY_ADMIN_ACTION_API = api + "/api/v3/harim/harim_office";