diff --git a/src/Components/Loaders/FullscreenLoaders.jsx b/src/Components/Loaders/FullscreenLoaders.jsx index 3e5e613..e7ff6ac 100644 --- a/src/Components/Loaders/FullscreenLoaders.jsx +++ b/src/Components/Loaders/FullscreenLoaders.jsx @@ -1,7 +1,7 @@ import { Box, Spinner, Text } from "@chakra-ui/react"; import React from "react"; -const FullscreenLoaders = () => { +const FullscreenLoaders = ({height}) => { return ( { flexDirection={'column'} alignItems={"center"} w={"100%"} - h={"100vh"} + h={height ? height: "100vh"} gap={4} > { const [searchTerm, setSearchTerm] = useState(""); const [isLoading, setIsLoading] = useState(true); const [deleteAlert, setDeleteAlert] = useState(false); - const [actionId, setActionId] = useState(false); + const [actionId, setActionId] = useState(""); const [mouseEntered, setMouseEntered] = useState(false); const [mouseEnteredId, setMouseEnteredId] = useState(""); const { @@ -126,130 +126,138 @@ const DepositRequest = () => { return nameMatches; }); - const extractedArray= - filteredData?.map((item, index) => ({ - // id: item?.id, - "Sr.no": ( - - {index + 1} + const extractedArray = filteredData?.map((item, index) => ({ + // id: item?.id, + "Sr.no": ( + + {index + 1} + + ), + "Client ID": ( + + {item?.principal?.investor_details?.clientReference_id} + + ), + "First Name": ( + + + {item?.principal?.firstName} - ), - "Client ID": ( - - {item?.principal?.investor_details?.clientReference_id} + + ), + "Last Name": ( + + + {item?.principal?.lastName} - ), - "First Name": ( - - - {item?.principal?.firstName} - - - ), - "Last Name": ( - - - {item?.principal?.lastName} - - - ), - Country: ( - - - {item?.principal?.investor_details?.country?.countryName} - - - ), - "Phone Number": ( - - - {item?.principal?.mobileNumber} - - - ), - "Amount in Investor currency": ( - - - {item?.investorAmount} - - - ), - "Deposit Date": ( - - {formatDate(item?.createdAt)} + + ), + Country: ( + + + {item?.principal?.investor_details?.country?.countryName} - ), - Action: ( - - + ), + "Phone Number": ( + + + {item?.principal?.mobileNumber} + + + ), + "Amount in Investor currency": ( + + + {item?.investorAmount} + + + ), + "Deposit Date": ( + + {formatDate(item?.createdAt)} + + ), + Action: ( + + + + + + + + + ), + })); const handleDelete = () => { const IOtype = investmentType.filter( @@ -263,7 +271,6 @@ const DepositRequest = () => { }, 100); setIsLoading(true); }; - return ( @@ -324,9 +331,14 @@ const DepositRequest = () => { - + ); }; diff --git a/src/Pages/Deposit/DepositRequest/DepositRequestApprove.jsx b/src/Pages/Deposit/DepositRequest/DepositRequestApprove.jsx index a6c5ce8..517ae79 100644 --- a/src/Pages/Deposit/DepositRequest/DepositRequestApprove.jsx +++ b/src/Pages/Deposit/DepositRequest/DepositRequestApprove.jsx @@ -14,126 +14,198 @@ import { Text, Textarea, useDisclosure, + useToast, } from "@chakra-ui/react"; -import React from "react"; +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, useUpdateDepositRequestMutation } from "../../../Services/deposit.request.service"; +import FullscreenLoaders from "../../../Components/Loaders/FullscreenLoaders"; +import ToastBox from "../../../Components/ToastBox"; + +const FILE_TYPES = ["image/jpeg", "image/png", "image/gif"]; export const conformModalSchema = yup.object().shape({ - fees: yup.string().required("File name is required"), - totalAmount: yup.string().required("File name is required"), + investorAmount: yup.string().required("Investor amount is required"), + comment: yup.string().required("Comment is required"), + supporting_FileName: yup.mixed().required("File is required"), + // .test("fileType", "Unsupported File Format", (value) => { + // return value && FILE_TYPES.includes(value.type); + // }), }); -const DepositRequestApprove = ({ isOpen, onClose, firstField }) => { +const DepositRequestApprove = ({ isOpen, onClose, firstField, id }) => { + const toast = useToast() + const [file, setFile] = useState(); + const [isBtnLoading , setIsBtnLoading] = useState(false) + + const [ updateDepositRequest ] = useUpdateDepositRequestMutation() + const { register, + reset, handleSubmit, formState: { errors }, } = useForm({ resolver: yupResolver(conformModalSchema), }); - const onSubmit = (data) => { - setFile(data.document[0]); + const onSubmit = async(data) => { + setIsBtnLoading(true) + const formData = new FormData(); - const newDocument = { - ...data, - document: data.document[0].name, // Store the document name - status: true, - id: uuidv4(), - createdAt: new Date().toISOString(), - Type: getFileIcon(file.type), - }; + formData.append("investorAmount", data.investorAmount); + formData.append("comment", data.comment); + const file = data.supporting_FileName["0"]; + formData.append("supporting_FileName", file); - setCreate((prevCreate) => [...prevCreate, newDocument]); - onClose(); + + try { + const res = await updateDepositRequest({ id ,data: formData}) + console.log(res); + + if (res?.error) { + toast({ + render: () => ( + + ), + }); + setIsBtnLoading(false) + }else if(res?.data?.statusCode === 200) { + toast({ + render: () => ( + + ), + }); + setIsBtnLoading(false) + } + + } catch (error) { + + } + + heandleOnClose(); + console.log(data); }; const handleFileChange = (event) => { const selectedFile = event.target.files[0]; setFile(selectedFile); + console.log(file); }; + const { data, isLoading } = + (id, { + skip: !id, + }); + + useEffect(() => { + if (data) { + reset({ + investorAmount: data?.data?.investorAmount, + }); + } + }, [data, reset]); + + const heandleOnClose = () =>{ + reset() + onClose() + } + return ( - + + Confirm - - - - Deposit Amount (SAR) - - - - Upload Supporting* - - {errors.fees && ( - - {errors.fees.message} - - )} - - - Comments -