diff --git a/src/Components/Popups/ConfirmReversalPopups.jsx b/src/Components/Popups/ConfirmReversalPopups.jsx
new file mode 100644
index 0000000..b97551c
--- /dev/null
+++ b/src/Components/Popups/ConfirmReversalPopups.jsx
@@ -0,0 +1,183 @@
+import {
+ Box,
+ Button,
+ Checkbox,
+ FormControl,
+ FormLabel,
+ Input,
+ Modal,
+ ModalBody,
+ ModalCloseButton,
+ ModalContent,
+ ModalFooter,
+ ModalHeader,
+ ModalOverlay,
+ Text,
+ Textarea,
+} from "@chakra-ui/react";
+import React, { useState } from "react";
+import PropTypes from "prop-types";
+
+import * as yup from "yup";
+import { yupResolver } from "@hookform/resolvers/yup";
+import { useForm } from "react-hook-form";
+import ReactQuill from "react-quill";
+
+export const conformModalSchema = yup.object().shape({
+ comments: yup
+ .string()
+ .min(2, "Minimum length should be 150 characters.")
+ .max(150, "Maximum length should be 150 characters.")
+ .matches(/^[^\d]+$/, "Sponsor Name cannot contain numbers")
+ .required("Comment is required"),
+});
+
+const ConfirmReversalPopups = ({
+ isOpen,
+ onClose,
+ handleConfirm,
+ isLoading,
+}) => {
+ const {
+ watch,
+ register,
+ reset,
+ handleSubmit,
+ formState: { errors },
+ } = useForm({
+ resolver: yupResolver(conformModalSchema),
+ mode: "all",
+ });
+
+ const [emailApproval, setEmailApproval] = useState(false);
+
+
+ const modules = {
+ toolbar: [
+ // [{ header: "1" }, { header: "2" },
+ // // { font: [] }
+ // ],
+ // [{ size: [] }],
+ ["bold", "italic", "underline", "strike", "blockquote"],
+ [{ list: "ordered" }, { list: "bullet" }],
+ ["clean"],
+ ],
+ };
+
+ return (
+
+
+
+ Approve
+
+ {
+ handleConfirm(data);
+ reset();
+ onClose();
+ })}
+ >
+
+
+ Comment
+
+ {errors.comments ? (
+
+ {errors.comments.message}
+
+ ) : (
+
+ Maximum length should be 150 characters. You have entered{" "}
+ {watch()?.comments?.length || 0} characters.
+
+ )}
+
+ setEmailApproval(e.target.checked)}
+ >
+
+ Send an email to the user upon approval
+
+
+ {emailApproval && (
+
+
+
+ Subject
+
+
+
+
+
+ Message
+
+
+
+
+ )}
+
+
+
+
+
+
+
+
+ );
+};
+
+ConfirmReversalPopups.propTypes = {
+ isOpen: PropTypes.bool.isRequired,
+ onClose: PropTypes.func.isRequired,
+ handelApproved: PropTypes.func.isRequired,
+ isLoading: PropTypes.func.isRequired,
+};
+
+export default ConfirmReversalPopups;
diff --git a/src/Pages/BankDepositRequest/BankDepositRequest.jsx b/src/Pages/BankDepositRequest/BankDepositRequest.jsx
index 259dd61..cd47f28 100644
--- a/src/Pages/BankDepositRequest/BankDepositRequest.jsx
+++ b/src/Pages/BankDepositRequest/BankDepositRequest.jsx
@@ -330,19 +330,58 @@ const BankDepositRequest = () => {
}
};
+ const handleConfirm = async (data) => {
+ setIsReversalLoading.on(); // Start loading
+ try {
+ const { error, data: responseData } = await rejectbankDepositRequest({
+ id: actionId,
+ data,
+ });
+
+ if (error) {
+ throw error; // Explicitly handle the error
+ }
+
+ // Success: Perform necessary actions
+ refetch();
+ toast({
+ render: () => (
+
+ ),
+ });
+ onRejectClose();
+ } catch (error) {
+ // Handle errors
+ toast({
+ render: () => (
+
+ ),
+ });
+ console.error("Error:", error);
+ } finally {
+ setIsReversalLoading.off(); // Ensure loading is toggled off
+ }
+ };
+
+
return (
{/* */}
diff --git a/src/Pages/ReversalFawateerDeposit/ReversalFawateerDeposit.jsx b/src/Pages/ReversalFawateerDeposit/ReversalFawateerDeposit.jsx
index b5e70ec..be5ea72 100644
--- a/src/Pages/ReversalFawateerDeposit/ReversalFawateerDeposit.jsx
+++ b/src/Pages/ReversalFawateerDeposit/ReversalFawateerDeposit.jsx
@@ -24,9 +24,10 @@ import { OPACITY_ON_LOAD } from "../../Layout/animations";
import { useGetFawateerForMakerRequestQuery } from "../../Services/fawateer.request.service";
import ConfirmModal from "./ConfirmModal";
import RejectModal from "./RejectModal";
-import { useGetFawateerDepositMasterQuery, useRejectFawateerRequestMutation } from "../../Services/reversal.fawateer.deposit.service";
+import { useApproveFawateerRequestMutation, useGetFawateerDepositMasterQuery, useRejectFawateerRequestMutation } from "../../Services/reversal.fawateer.deposit.service";
import RejectReversalPopups from "../../Components/Popups/RejectReversalPopups";
import ToastBox from "../../Components/ToastBox";
+import ConfirmReversalPopups from "../../Components/Popups/ConfirmReversalPopups";
const ReversalFawateerDeposit = () => {
const toast = useToast();
@@ -43,6 +44,8 @@ import ToastBox from "../../Components/ToastBox";
const [rejectFawateerRequest] = useRejectFawateerRequestMutation();
+ const [approveFawateerRequest] = useApproveFawateerRequestMutation();
+
const [pageSize, setPageSize] = useState(TABLE_PAGINATION?.size);
const [currentPage, setCurrentPage] = useState(TABLE_PAGINATION?.page);
@@ -351,12 +354,11 @@ import ToastBox from "../../Components/ToastBox";
alertHandler={handleDelete}
isLoading={isLoading}
/>
-