import { Badge, Box, Button, FormControl, FormErrorMessage, FormLabel, Input, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, Text, Textarea, useDisclosure, useToast, } from "@chakra-ui/react"; import React, { useEffect, useState } from "react"; import * as yup from "yup"; import { yupResolver } from "@hookform/resolvers/yup"; import { Controller, useForm } from "react-hook-form"; import { useGetDepositRequestByIdQuery, useGetDepositRequestQuery, useUpdateDepositRequestMutation, } from "../../../Services/deposit.request.service"; import FullscreenLoaders from "../../../Components/Loaders/FullscreenLoaders"; import ToastBox from "../../../Components/ToastBox"; import CurrencyInput, { formatCurrency } from "../../../Components/CurrencyInput"; const FILE_TYPES = ["image/jpeg", "image/png", "image/gif"]; export const conformModalSchema = yup.object().shape({ investorAmount: yup.string().required("Investor amount is required"), comment: yup.string().notRequired(), supporting_FileName: yup.mixed().required("File is required"), // .test("fileType", "Unsupported File Format", (value) => { // return value && FILE_TYPES.includes(value.type); // }), }); const RequestApproveModal = ({ isOpen, onClose, firstField, id, data: requestData, }) => { const toast = useToast(); const [file, setFile] = useState(); const [isBtnLoading, setIsBtnLoading] = useState(false); const [updateDepositRequest] = useUpdateDepositRequestMutation(); const { data, isLoading } = useGetDepositRequestByIdQuery(id, { skip: !id, }); console.log(data?.data?.investorAmount); const { control, register, reset, watch, handleSubmit, formState: { errors }, } = useForm({ resolver: yupResolver(conformModalSchema), }); useEffect(() => { if (data) { const investorAmount = parseFloat(data?.data?.investorAmount); reset({ investorAmount: investorAmount, accountName: data?.data?.accountName, }); } }, [id, data, reset]); const onSubmit = async (data) => { setIsBtnLoading(true); const formData = new FormData(); formData.append("investorAmount", data.investorAmount); formData.append("comment", data.comment); const file = data.supporting_FileName["0"]; formData.append("supporting_FileName", file); try { const res = await updateDepositRequest({ id, data: formData }); if (res?.error) { toast({ render: () => ( ), }); setIsBtnLoading(false); } else if (res?.data?.statusCode === 200) { toast({ render: () => , }); setIsBtnLoading(false); } } catch (error) {} heandleOnClose(); }; const heandleOnClose = () => { reset(); onClose(); }; return ( Confirm {isLoading ? ( ) : ( {/* Deposit Amount {data?.data?.currencyCode} {errors.investorAmount && ( {errors.investorAmount.message} )} */} Deposit Amount ( )} /> {errors.investorAmount && ( {errors.investorAmount.message} )} Upload Supporting {errors.supporting_FileName && ( {errors.supporting_FileName.message} )} Comments