diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/PrivacyOfficeList.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/PrivacyOfficeList.jsx index 913c803..27a8f85 100644 --- a/src/components/dashboard/inquiryPrivacy/privacy-office/PrivacyOfficeList.jsx +++ b/src/components/dashboard/inquiryPrivacy/privacy-office/PrivacyOfficeList.jsx @@ -1,5 +1,6 @@ import CustomSelectByDependency from "@/core/components/DataTable/filter/fieldsType/CustomSelectByDependency"; import DataTableWithAuth from "@/core/components/DataTableWithAuth"; +import { GET_PRIVACY_ADMIN_LIST } from "@/core/utils/routes"; import useInquiryPrivacyState from "@/lib/hooks/useInquiryPrivacyState"; import AutorenewIcon from "@mui/icons-material/Autorenew"; import DangerousIcon from "@mui/icons-material/Dangerous"; @@ -11,9 +12,10 @@ 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 } from "react"; +import { useMemo, useState } from "react"; import RowActions from "./RowActions"; -import { GET_PRIVACY_ADMIN_LIST } from "@/core/utils/routes"; + +import ActionDialog from "./RowActions/ActionsDialog"; import ShowPrimaryArea from "./ShowPrimaryArea"; const PrivacyOfficeList = () => { @@ -28,6 +30,21 @@ const PrivacyOfficeList = () => { if (state_id === 10) return ; if (state_id === 12) return ; }; + + const [modal, setModal] = useState({ + open: false, + type: null, // "reject" | "confirm" | "referral" + row: null, + }); + + const handleOpenModal = (type, row) => { + setModal({ open: true, type, row }); + }; + + const handleCloseModal = () => { + setModal({ open: false, type: null, row: null }); + }; + const columns = useMemo(() => { return [ { @@ -233,9 +250,16 @@ const PrivacyOfficeList = () => { table_name={"PrivacyOfficeList"} enableRowActions positionActionsColumn={"first"} - RowActions={RowActions} + RowActions={(props) => } /> + + ); }; diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ActionsDialog.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ActionsDialog.jsx new file mode 100644 index 0000000..1dae411 --- /dev/null +++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ActionsDialog.jsx @@ -0,0 +1,76 @@ +import { + Box, + Button, + Checkbox, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + FormControlLabel, + TextField, +} from "@mui/material"; +import { useEffect, useState } from "react"; + +const ActionDialog = ({ open, type, rowDataId, onClose }) => { + const [description, setDescription] = useState(""); + const [checked, setChecked] = useState(false); + + useEffect(() => { + if (open) { + setDescription(""); + setChecked(false); + } + }, [open]); + + const actionLabel = { + reject: "رد درخواست", + confirm: "تایید درخواست", + referral: "ارجاع درخواست", + }[type]; + + const handleSubmit = () => { + console.log("Row data id: ", rowDataId); + console.log("Action type: ", type); + console.log("Desctiption: ", description); + console.log("Checked: ", checked); + + // TODO: Implement api call + + onClose(); + }; + + return ( + + {actionLabel} + + + + setDescription(e.target.value)} + /> + + setChecked(e.target.checked)} />} + label="تایید انجام عملیات" + /> + + + + + + + + + ); +}; + +export default ActionDialog; 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 c2a0cfc..ca0b3d5 100644 --- a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ConfirmAction/index.jsx +++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ConfirmAction/index.jsx @@ -1,13 +1,11 @@ import ThumbUpIcon from "@mui/icons-material/ThumbUp"; import { IconButton, Tooltip } from "@mui/material"; -import { useState } from "react"; -const ConfirmAction = ({ rowId, mutate }) => { - const [openConfirmDialog, setOpenConfirmDialog] = useState(false); +const ConfirmAction = ({ onClick }) => { return ( <> - setOpenConfirmDialog(true)}> + diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ReferralAction/index.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ReferralAction/index.jsx new file mode 100644 index 0000000..28667cf --- /dev/null +++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/ReferralAction/index.jsx @@ -0,0 +1,15 @@ +import { Reply } from "@mui/icons-material"; +import { IconButton, Tooltip } from "@mui/material"; + +const ReferralAction = ({ onClick }) => { + return ( + <> + + + + + + + ); +}; +export default ReferralAction; 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 c16a405..b2e40ab 100644 --- a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/RejectAction/index.jsx +++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/RejectAction/index.jsx @@ -1,13 +1,11 @@ import ThumbDownIcon from "@mui/icons-material/ThumbDown"; import { IconButton, Tooltip } from "@mui/material"; -import { useState } from "react"; -const RejectAction = ({ rowId, mutate }) => { - const [openRejectDialog, setOpenRejectDialog] = useState(false); +const RejectAction = ({ onClick }) => { return ( <> - setOpenRejectDialog(true)}> + diff --git a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/index.jsx b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/index.jsx index 06ea132..b45eb01 100644 --- a/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/index.jsx +++ b/src/components/dashboard/inquiryPrivacy/privacy-office/RowActions/index.jsx @@ -1,13 +1,16 @@ import { Box } from "@mui/material"; import ConfirmAction from "./ConfirmAction"; +import ReferralAction from "./ReferralAction"; import RejectAction from "./RejectAction"; -const RowActions = ({ row, mutate }) => { +const RowActions = ({ row, onActionClick }) => { return ( - - - + + onActionClick("referral", row)} /> + onActionClick("reject", row)} /> + onActionClick("confirm", row)} /> ); }; + export default RowActions;