From f31b67f676caed969e41df5095a459a75bd81615 Mon Sep 17 00:00:00 2001
From: Swapnil Bendal <84583651+Swapnil155@users.noreply.github.com>
Date: Mon, 20 Jan 2025 18:04:55 +0530
Subject: [PATCH 1/3] Enhance comment validation in deletion request approval
and refactor code for clarity
---
.../DeletionRequestApprove.jsx | 141 ++++++++++--------
.../WithDrawal/DrawalView/ViewHistory.jsx | 2 +-
2 files changed, 77 insertions(+), 66 deletions(-)
diff --git a/src/Pages/AccountDeletion/DeletionRequestApprove.jsx b/src/Pages/AccountDeletion/DeletionRequestApprove.jsx
index 1e72564..639ba94 100644
--- a/src/Pages/AccountDeletion/DeletionRequestApprove.jsx
+++ b/src/Pages/AccountDeletion/DeletionRequestApprove.jsx
@@ -21,32 +21,48 @@ import React, { useEffect, useState } from "react";
import * as yup from "yup";
import { yupResolver } from "@hookform/resolvers/yup";
import { useForm } from "react-hook-form";
-import { useGetDepositRequestByIdQuery, useGetDepositRequestQuery, useUpdateDepositRequestMutation } from "../../Services/deposit.request.service";
+import {
+ useGetDepositRequestByIdQuery,
+ useGetDepositRequestQuery,
+ useUpdateDepositRequestMutation,
+} from "../../Services/deposit.request.service";
import FullscreenLoaders from "../../Components/Loaders/FullscreenLoaders";
import ToastBox from "../../Components/ToastBox";
import { useGetDrawalRequestQuery } from "../../Services/drawal.request.service";
-import { useApproveDepositRequestMutation, useGetDeleteRequestByIdQuery } from "../../Services/delete.request.service";
+import {
+ useApproveDepositRequestMutation,
+ useGetDeleteRequestByIdQuery,
+} from "../../Services/delete.request.service";
const FILE_TYPES = ["image/jpeg", "image/png", "image/gif"];
export const conformModalSchema = yup.object().shape({
- adminComment: yup.string().notRequired(),
+ adminComment: yup
+ .string()
+ .min(2, "Comment contain at least 2 character")
+ .max(150, "Comment contain at less then 150 character")
+ .notRequired(),
});
-const DeletionRequestApprove = ({ isOpen, onClose, firstField, id, data:requestData }) => {
- const toast = useToast()
+const DeletionRequestApprove = ({
+ isOpen,
+ onClose,
+ firstField,
+ id,
+ data: requestData,
+}) => {
+ const toast = useToast();
const [file, setFile] = useState();
- const [isBtnLoading , setIsBtnLoading] = useState(false)
- const [isBtnLoadingReject , setIsBtnLoadingReject] = useState(false)
- const [isReject , setIsReject] = useState(false)
+ const [isBtnLoading, setIsBtnLoading] = useState(false);
+ const [isBtnLoadingReject, setIsBtnLoadingReject] = useState(false);
+ const [isReject, setIsReject] = useState(false);
- const fileredData = requestData?.find((item)=> item?.id === id)
- const [ updateApproveRequest ] = useApproveDepositRequestMutation()
- const { data, isLoading } = useGetDeleteRequestByIdQuery(id, {
+ const fileredData = requestData?.find((item) => item?.id === id);
+ const [updateApproveRequest] = useApproveDepositRequestMutation();
+ const { data, isLoading } = useGetDeleteRequestByIdQuery(id, {
skip: !id,
});
-
const {
register,
reset,
@@ -58,51 +74,38 @@ const DeletionRequestApprove = ({ isOpen, onClose, firstField, id, data:requestD
useEffect(() => {
reset({
- comment:fileredData?.comment
- })
-
-
- }, [requestData, id])
-
- const onSubmit = async(data) => {
- setIsBtnLoading(isReject?false:true)
- setIsBtnLoadingReject(isReject)
+ comment: fileredData?.comment,
+ });
+ }, [requestData, id]);
+
+ const onSubmit = async (data) => {
+ setIsBtnLoading(isReject ? false : true);
+ setIsBtnLoadingReject(isReject);
const approveReq = {
- adminComment:data?.adminComment,
- deletionStatus: isReject?"Reject": "Approved"
- }
+ adminComment: data?.adminComment,
+ deletionStatus: isReject ? "Reject" : "Approved",
+ };
- try {
- const res = await updateApproveRequest({ id ,data:approveReq })
-
-
- if (res?.error) {
- toast({
- render: () => (
-
- ),
- });
- heandleOnClose()
- }else if(res?.data?.statusCode === 200) {
- toast({
- render: () => (
-
- ),
- });
- heandleOnClose()
- }
-
- } catch (error) {
-
- }
+ try {
+ const res = await updateApproveRequest({ id, data: approveReq });
+ if (res?.error) {
+ toast({
+ render: () => (
+
+ ),
+ });
+ heandleOnClose();
+ } else if (res?.data?.statusCode === 200) {
+ toast({
+ render: () => ,
+ });
+ heandleOnClose();
+ }
+ } catch (error) {}
};
- const onReject = () => {
-
- }
-
-
+ const onReject = () => {};
useEffect(() => {
if (data) {
@@ -112,16 +115,20 @@ const DeletionRequestApprove = ({ isOpen, onClose, firstField, id, data:requestD
}
}, [data, reset]);
- const heandleOnClose = () =>{
- reset()
- onClose()
- setIsBtnLoading(false)
- setIsReject(false)
- setIsBtnLoadingReject(false)
- }
+ const heandleOnClose = () => {
+ reset();
+ onClose();
+ setIsBtnLoading(false);
+ setIsReject(false);
+ setIsBtnLoadingReject(false);
+ };
return (
-
+
@@ -133,7 +140,10 @@ const DeletionRequestApprove = ({ isOpen, onClose, firstField, id, data:requestD
- Investor Comment {fileredData?.currencyCode}
+
+ Investor Comment{" "}
+ {fileredData?.currencyCode}
+
{/*
Admin Comment
@@ -180,8 +191,8 @@ const DeletionRequestApprove = ({ isOpen, onClose, firstField, id, data:requestD
type="submit"
size={"sm"}
rounded={"sm"}
- variant={'ghost'}
- onClick={()=> setIsReject(true)}
+ variant={"ghost"}
+ onClick={() => setIsReject(true)}
isLoading={isBtnLoadingReject}
>
Reject
diff --git a/src/Pages/WithDrawal/DrawalView/ViewHistory.jsx b/src/Pages/WithDrawal/DrawalView/ViewHistory.jsx
index a8b8929..83b9f71 100644
--- a/src/Pages/WithDrawal/DrawalView/ViewHistory.jsx
+++ b/src/Pages/WithDrawal/DrawalView/ViewHistory.jsx
@@ -133,7 +133,7 @@ const ViewHistory = () => {
"Status",
];
- const extractedArray = filteredData?.map((item, index) => ({
+ const extractedArray = data?.data?.rows?.map((item, index) => ({
// id: item?.id,
"Sr.no": (
Date: Mon, 20 Jan 2025 18:07:09 +0530
Subject: [PATCH 2/3] Add validation mode to form and adjust comment input
margin
---
src/Pages/AccountDeletion/DeletionRequestApprove.jsx | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/Pages/AccountDeletion/DeletionRequestApprove.jsx b/src/Pages/AccountDeletion/DeletionRequestApprove.jsx
index 639ba94..79d9588 100644
--- a/src/Pages/AccountDeletion/DeletionRequestApprove.jsx
+++ b/src/Pages/AccountDeletion/DeletionRequestApprove.jsx
@@ -70,6 +70,7 @@ const DeletionRequestApprove = ({
formState: { errors },
} = useForm({
resolver: yupResolver(conformModalSchema),
+ mode: "all",
});
useEffect(() => {
@@ -176,6 +177,7 @@ const DeletionRequestApprove = ({
size="sm"
placeholder={"Enter your comment...."}
resize={"none"}
+ mb={2}
/>
{errors.adminComment && (
From efddfe6d7afe2d48c4b881afa187502a17b2c3d5 Mon Sep 17 00:00:00 2001
From: Swapnil Bendal <84583651+Swapnil155@users.noreply.github.com>
Date: Mon, 20 Jan 2025 18:40:20 +0530
Subject: [PATCH 3/3] Fix data extraction in DeletionRequest component to use
correct data structure
---
src/Pages/AccountDeletion/DeletionRequest.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Pages/AccountDeletion/DeletionRequest.jsx b/src/Pages/AccountDeletion/DeletionRequest.jsx
index 6d6fd0a..f90c867 100644
--- a/src/Pages/AccountDeletion/DeletionRequest.jsx
+++ b/src/Pages/AccountDeletion/DeletionRequest.jsx
@@ -101,7 +101,7 @@ const DeletionRequest = () => {
"Action"
];
- const extractedArray = filteredData?.map((item, index) => ({
+ const extractedArray = data?.data?.rows?.map((item, index) => ({
id: item?.id,
"Sr No.": (