diff --git a/.env b/.env index d62a7ef..ed70d10 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ VITE_TOKEN_NAME = 'dsc_token' VITE_REFRESH_TOKEN_NAME = 'dsc_refresh_token' -# VITE_BASE_URL = 'https://danak-dsc-api.run.danakcorp.com' -VITE_BASE_URL = 'http://192.168.0.221:4000' \ No newline at end of file +VITE_BASE_URL = 'https://danak-dsc-api.run.danakcorp.com' +# VITE_BASE_URL = 'http://192.168.0.221:4000' \ No newline at end of file diff --git a/src/langs/fa.json b/src/langs/fa.json index ec6761f..69ed9c0 100644 --- a/src/langs/fa.json +++ b/src/langs/fa.json @@ -277,12 +277,14 @@ "submit_slip": "ثبت فیش", "sheba": "شبا", "pay_sheba": "پرداخت شبا", + "select_sheba": "انتخاب شماره شبا", "enter_sheba_deposit": "مبلغ شبا شده شده را وارد کنید", "all_cards": "تمام کارت های عضو شتاب", "error_select_price": "لطفا مبلغ مورد نظر خود را انتخاب کنید", "error_min_price": "حداقل مبلغ ۱۰۰ هزار تومان می باشد", "transfer_to_getway": "در حال انتقال به درگاه پرداخت", - "select_bank_account": "انتخاب کارت" + "select_bank_account": "انتخاب کارت", + "successful_transfer": "درخواست انتقال وجه با موفقیت انجام شد" }, "notif": { "natification": "اعلان ها" diff --git a/src/pages/wallet/components/CardtoCard.tsx b/src/pages/wallet/components/CardtoCard.tsx index c76d6d5..cb1abe7 100644 --- a/src/pages/wallet/components/CardtoCard.tsx +++ b/src/pages/wallet/components/CardtoCard.tsx @@ -10,6 +10,7 @@ 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 = () => { @@ -36,7 +37,13 @@ const CardtoCard: FC = () => { formData.append('file', file) upload.mutate(formData, { onSuccess: (data) => { - depositTransfer.mutate({ ...values, transferReceiptUrl: data.data.url }) + depositTransfer.mutate({ ...values, amount: +values.amount, transferReceiptUrl: data.data.url }, { + onSuccess: () => { + formik.resetForm() + setFile(undefined) + toast.success(t('wallet.successful_transfer')) + } + }) } }) } diff --git a/src/pages/wallet/components/Sheba.tsx b/src/pages/wallet/components/Sheba.tsx index 15ea594..da7b878 100644 --- a/src/pages/wallet/components/Sheba.tsx +++ b/src/pages/wallet/components/Sheba.tsx @@ -1,41 +1,112 @@ -import { FC } from 'react' +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 Sheba: FC = () => { +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 (
-
- {t('wallet.pay_sheba')} -
+ { + getBankAccount.isPending ? + + : + +
+ {t('wallet.pay_sheba')} +
-
- -
+
+ +
-
-
+
+ setFile(file[0])} + /> +
+ +
+
+ +
+ }
) } -export default Sheba \ No newline at end of file +export default CardtoCard \ No newline at end of file