import { FC, Fragment, useState } from 'react' import { useTranslation } from 'react-i18next' import Input from '../../../components/Input' import UploadBox from '../../../components/UploadBox' import Button from '../../../components/Button' import { useDepositTransfer, useGetBankAccount } from '../hooks/useWalletData' import Select from '../../../components/Select' import PageLoading from '../../../components/PageLoading' import { useFormik } from 'formik' import { DepositTransferType } from '../types/WalletTypes' import * as Yup from 'yup' import { useSingleUpload } from '../../ticket/hooks/useTicketData' import { toast } from 'react-toastify' const CardtoCard: FC = () => { const { t } = useTranslation('global') const getBankAccount = useGetBankAccount() const depositTransfer = useDepositTransfer() const upload = useSingleUpload() const [file, setFile] = useState() const formik = useFormik({ initialValues: { amount: 0, transferReceiptUrl: '', bankAccountId: '', method: 'SHEBA' }, validationSchema: Yup.object({ amount: Yup.number().required(t('errors.required')), bankAccountId: Yup.string().required(t('errors.required')), }), onSubmit: (values) => { if (file) { const formData = new FormData() formData.append('file', file) upload.mutate(formData, { onSuccess: (data) => { depositTransfer.mutate({ ...values, amount: +values.amount, transferReceiptUrl: data.data.url }, { onSuccess: () => { formik.resetForm() setFile(undefined) toast.success(t('wallet.successful_transfer')) window.location.reload() } }) } }) } } }) return (
{ getBankAccount.isPending ? :
{t('wallet.pay_sheba')}
setFile(file[0])} />
}
) } export default CardtoCard