diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json index 35fa040..c7b9d16 100644 --- a/public/locales/fa/app.json +++ b/public/locales/fa/app.json @@ -122,6 +122,8 @@ "reject": "عدم تایید", "context": "آیا از عدم تایید این آیتم اطمینان دارید", "button-reject": "عدم تایید", - "button-cancel": "بستن" + "button-cancel": "بستن", + "description": "توضیحات", + "description_error": "وارد کردن توضیحات الزامی است!" } } diff --git a/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx b/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx index 738428a..43c6bb3 100644 --- a/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx +++ b/src/components/dashboard/passenger-office/Form/ConfirmForm.jsx @@ -9,16 +9,10 @@ import { } from "@mui/material"; import { useTranslations } from "next-intl"; -const ConfirmForm = ({ - open, - handleClose, - handleDelete, - rowId, - confirmData, -}) => { +const ConfirmForm = ({ open, handleClose, rowId, confirmData }) => { const t = useTranslations(); const handleConfirm = () => { - handleDelete(); + handleClose(); confirmData(CONFIRM_PASSENGER_OFFICE, rowId); }; return ( diff --git a/src/components/dashboard/passenger-office/Form/RejectForm.jsx b/src/components/dashboard/passenger-office/Form/RejectForm.jsx index 5c8ec93..149c480 100644 --- a/src/components/dashboard/passenger-office/Form/RejectForm.jsx +++ b/src/components/dashboard/passenger-office/Form/RejectForm.jsx @@ -6,23 +6,63 @@ import { DialogContentText, DialogActions, Button, + TextField, } from "@mui/material"; import { useTranslations } from "next-intl"; +import { useFormik } from "formik"; +import * as Yup from "yup"; +import { useState } from "react"; -const RejectForm = ({ open, handleClose, handleDelete, rowId, rejectData }) => { +const RejectForm = ({ open, handleClose, rowId, rejectData }) => { const t = useTranslations(); - const handleRejectRequest = () => { - handleDelete(); - rejectData(REJECT_PASSENGER_OFFICE, rowId); + const [description, setDescription] = useState(""); + + const validationSchema = Yup.object().shape({ + description: Yup.string().required(t("RejectDialog.description_error")), + }); + + const formik = useFormik({ + initialValues: { + description: "", + }, + validationSchema, + onSubmit: () => { + const formData = new FormData(); + formData.append("expert_description", description); + handleClose(); + rejectData(REJECT_PASSENGER_OFFICE, rowId, formData); + }, + }); + + const handleDescriptionChange = (event) => { + setDescription(event.target.value); + formik.handleChange(event); }; + return ( {t("RejectDialog.reject")} {t("RejectDialog.context")} + - ); }; + export default RejectForm; diff --git a/src/components/dashboard/passenger-office/TableRowActions.jsx b/src/components/dashboard/passenger-office/TableRowActions.jsx index 586a976..e9e815e 100644 --- a/src/components/dashboard/passenger-office/TableRowActions.jsx +++ b/src/components/dashboard/passenger-office/TableRowActions.jsx @@ -14,8 +14,6 @@ const TableRowActions = ({ row }) => { handleOpenRejectDialog, handleCloseConfirmDialog, handleCloseRejectDialog, - handleConfirmDialog, - handleRejectDialog, rowId, confirmData, rejectData, @@ -30,23 +28,25 @@ const TableRowActions = ({ row }) => { > - + {openConfirmDialog && ( + + )} handleOpenRejectDialog(row)}> - + {openRejectDialog && ( + + )} ); }; diff --git a/src/lib/app/hooks/useDatatable.jsx b/src/lib/app/hooks/useDatatable.jsx index cdc84d8..e7730bc 100644 --- a/src/lib/app/hooks/useDatatable.jsx +++ b/src/lib/app/hooks/useDatatable.jsx @@ -57,10 +57,10 @@ const useDataTable = () => { }); }, []); - const rejectData = useCallback(async (url, rowID) => { - dispatch({ type: "REJECT_DATA", url: url, rowID: rowID }); + const rejectData = useCallback(async (url, rowID, values) => { + dispatch({ type: "REJECT_DATA", url: url, rowID: rowID, values: values }); axios - .post(`${url}/${rowID}`, { + .post(`${url}/${rowID}`,values, { headers: { authorization: `Bearer ${token}` }, }) .then(() => { @@ -80,10 +80,6 @@ const useDataTable = () => { const handleCloseConfirmDialog = () => { setOpenConfirmDialog(false); }; - - const handleConfirmDialog = () => { - setOpenConfirmDialog(false); - }; //End Confirm Data // Reject Data @@ -95,19 +91,13 @@ const useDataTable = () => { const handleCloseRejectDialog = () => { setOpenRejectDialog(false); }; - - const handleRejectDialog = () => { - setOpenRejectDialog(false); - }; // End Reject Data const contextValue = { handleOpenConfirmDialog, handleCloseConfirmDialog, - handleConfirmDialog, handleOpenRejectDialog, handleCloseRejectDialog, - handleRejectDialog, rowId, openConfirmDialog, openRejectDialog,