@bigbinary/neeto-payments-frontend 6.3.5 → 6.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/javascript/src/translations/ar.json +3 -3
- package/app/javascript/src/translations/bg.json +3 -3
- package/app/javascript/src/translations/ca.json +3 -3
- package/app/javascript/src/translations/cs.json +3 -3
- package/app/javascript/src/translations/da.json +3 -3
- package/app/javascript/src/translations/de.json +3 -3
- package/app/javascript/src/translations/en.json +3 -3
- package/app/javascript/src/translations/es-MX.json +3 -3
- package/app/javascript/src/translations/es.json +3 -3
- package/app/javascript/src/translations/et.json +3 -3
- package/app/javascript/src/translations/fi.json +3 -3
- package/app/javascript/src/translations/fil.json +3 -3
- package/app/javascript/src/translations/fr.json +3 -3
- package/app/javascript/src/translations/he.json +3 -3
- package/app/javascript/src/translations/hi.json +3 -3
- package/app/javascript/src/translations/hr.json +3 -3
- package/app/javascript/src/translations/hu.json +3 -3
- package/app/javascript/src/translations/id.json +3 -3
- package/app/javascript/src/translations/it.json +3 -3
- package/app/javascript/src/translations/ja.json +3 -3
- package/app/javascript/src/translations/ko.json +3 -3
- package/app/javascript/src/translations/nl.json +3 -3
- package/app/javascript/src/translations/pl.json +3 -3
- package/app/javascript/src/translations/pt-BR.json +3 -3
- package/app/javascript/src/translations/pt.json +3 -3
- package/app/javascript/src/translations/ro.json +3 -3
- package/app/javascript/src/translations/ru.json +3 -3
- package/app/javascript/src/translations/sk.json +3 -3
- package/app/javascript/src/translations/sl.json +3 -3
- package/app/javascript/src/translations/sv.json +3 -3
- package/app/javascript/src/translations/th.json +3 -3
- package/app/javascript/src/translations/tr.json +3 -3
- package/app/javascript/src/translations/uk.json +3 -3
- package/app/javascript/src/translations/vi.json +3 -3
- package/app/javascript/src/translations/zh-CN.json +3 -3
- package/app/javascript/src/translations/zh-TW.json +3 -3
- package/dist/ManualUpiPayment.js +96 -21
- package/dist/ManualUpiPayment.js.map +1 -1
- package/dist/ManualUpiPaymentConfirmButton.js +1 -1
- package/dist/ManualUpiPaymentRejectButton.js +1 -1
- package/dist/cjs/ManualUpiPayment.js +96 -21
- package/dist/cjs/ManualUpiPayment.js.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/v2/ManualUpiPayment.js +88 -14
- package/dist/cjs/v2/ManualUpiPayment.js.map +1 -1
- package/dist/cjs/v2/index.js +1 -0
- package/dist/cjs/v2/index.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/{usePaymentApi-C8fRdHmK.js → usePaymentApi-CjtkL3IU.js} +2 -2
- package/dist/{usePaymentApi-C8fRdHmK.js.map → usePaymentApi-CjtkL3IU.js.map} +1 -1
- package/dist/v2/ManualUpiPayment.js +88 -14
- package/dist/v2/ManualUpiPayment.js.map +1 -1
- package/dist/v2/ManualUpiPaymentConfirmButton.js +1 -1
- package/dist/v2/ManualUpiPaymentRejectButton.js +1 -1
- package/dist/v2/index.js +2 -1
- package/dist/v2/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"sixCharacters": "Transakčný ID by malo mať 6 znakov",
|
|
153
153
|
"identifierOrScreenshot": "Zadajte ID transakcie alebo nahrajte snímku obrazovky platby"
|
|
154
154
|
},
|
|
155
|
-
"vpaText": "
|
|
156
|
-
"vpaText_other": "
|
|
155
|
+
"vpaText": "Prosím, zaplaťte hore uvedenú sumu na nasledujúce UPI ID. Akonáhle je platba dokončená, zadajte UPI transakčný ID alebo nahrajte snímku obrazovky platby.",
|
|
156
|
+
"vpaText_other": "Prosím, zaplaťte hore uvedenú sumu na ktorékoľvek z nasledujúcich UPI ID. Akonáhle je platba dokončená, zadajte UPI transakčný ID alebo nahrajte snímku obrazovky platby.",
|
|
157
157
|
"buttons": {
|
|
158
158
|
"submit": "Odoslať",
|
|
159
159
|
"back": "Späť",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"screenshot": {
|
|
165
165
|
"label": "Nahrajte snímku obrazovky platby",
|
|
166
166
|
"alt": "Snímka obrazovky platby",
|
|
167
|
-
"uploadText": "Kliknite
|
|
167
|
+
"uploadText": "Kliknite sem pre nahratie snímky obrazovky platby",
|
|
168
168
|
"formatHint": "PNG, JPG do {{maxSize}}MB",
|
|
169
169
|
"tooLarge": "Veľkosť súboru musí byť menšia ako {{maxSize}}MB"
|
|
170
170
|
}
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"sixCharacters": "Transakcijska številka mora imeti 6 znakov",
|
|
153
153
|
"identifierOrScreenshot": "Prosimo, vnesite identifikacijsko številko transakcije ali naložite plačilno sliko zaslona"
|
|
154
154
|
},
|
|
155
|
-
"vpaText": "
|
|
156
|
-
"vpaText_other": "
|
|
155
|
+
"vpaText": "Prosimo, plačajte zgoraj omenjeno vsoto na naslednji UPI ID. Ko je plačilo končano, vpišite UPI transakcijsko ID ali naložite posnetek zaslona plačila.",
|
|
156
|
+
"vpaText_other": "Prosimo, plačajte zgoraj omenjeno vsoto na katerikoli od naslednjih UPI ID-jev. Ko je plačilo končano, vpišite UPI transakcijsko ID ali naložite posnetek zaslona plačila.",
|
|
157
157
|
"buttons": {
|
|
158
158
|
"submit": "Pošlji",
|
|
159
159
|
"back": "Nazaj",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"screenshot": {
|
|
165
165
|
"label": "Naloži sliko zaslona plačila",
|
|
166
166
|
"alt": "Slika zaslona plačila",
|
|
167
|
-
"uploadText": "Kliknite za nalaganje
|
|
167
|
+
"uploadText": "Kliknite tukaj za nalaganje posnetka zaslona plačila",
|
|
168
168
|
"formatHint": "PNG, JPG do {{maxSize}}MB",
|
|
169
169
|
"tooLarge": "Velikost datoteke mora biti manjša od {{maxSize}}MB"
|
|
170
170
|
}
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"sixCharacters": "Transaktions-ID ska ha 6 tecken",
|
|
153
153
|
"identifierOrScreenshot": "Vänligen ange ett transaktions-ID eller ladda upp en betalningsskärmdump"
|
|
154
154
|
},
|
|
155
|
-
"vpaText": "
|
|
156
|
-
"vpaText_other": "
|
|
155
|
+
"vpaText": "Vänligen betala det ovan angivna beloppet till följande UPI-ID. När betalningen är genomförd, ange UPI-transaktions-ID eller ladda upp betalningsskärmdump.",
|
|
156
|
+
"vpaText_other": "Vänligen betala det ovan angivna beloppet till något av följande UPI-ID:n. När betalningen är genomförd, ange UPI-transaktions-ID eller ladda upp betalningsskärmdump.",
|
|
157
157
|
"buttons": {
|
|
158
158
|
"submit": "Skicka",
|
|
159
159
|
"back": "Tillbaka",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"screenshot": {
|
|
165
165
|
"label": "Ladda upp betalningsskärmdump",
|
|
166
166
|
"alt": "Betalningsskärmdump",
|
|
167
|
-
"uploadText": "Klicka för att ladda upp betalningsskärmdump",
|
|
167
|
+
"uploadText": "Klicka här för att ladda upp betalningsskärmdump",
|
|
168
168
|
"formatHint": "PNG, JPG upp till {{maxSize}}MB",
|
|
169
169
|
"tooLarge": "Filstorleken måste vara mindre än {{maxSize}}MB"
|
|
170
170
|
}
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"sixCharacters": "รหัสรายการต้องมี 6 ตัวอักษร",
|
|
153
153
|
"identifierOrScreenshot": "กรุณาใส่หมายเลขการทำธุรกรรมหรืออัปโหลดภาพหน้าจอการชำระเงิน"
|
|
154
154
|
},
|
|
155
|
-
"vpaText": "
|
|
156
|
-
"vpaText_other": "
|
|
155
|
+
"vpaText": "กรุณาชำระจำนวนเงินที่กล่าวถึงข้างต้นไปยัง UPI ID ต่อไปนี้ เมื่อการชำระเงินเสร็จสิ้น ให้ป้อนหมายเลขธุรกรรม UPI หรืออัปโหลดภาพหน้าจอการชำระเงิน",
|
|
156
|
+
"vpaText_other": "กรุณาชำระจำนวนเงินที่กล่าวถึงข้างต้นไปยัง UPI ID ใด ๆ ต่อไปนี้ เมื่อการชำระเงินเสร็จสิ้น ให้ป้อนหมายเลขธุรกรรม UPI หรืออัปโหลดภาพหน้าจอการชำระเงิน",
|
|
157
157
|
"buttons": {
|
|
158
158
|
"submit": "ส่ง",
|
|
159
159
|
"back": "กลับ",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"screenshot": {
|
|
165
165
|
"label": "อัปโหลดภาพหน้าจอการชำระเงิน",
|
|
166
166
|
"alt": "ภาพหน้าจอการชำระเงิน",
|
|
167
|
-
"uploadText": "
|
|
167
|
+
"uploadText": "คลิกที่นี่เพื่ออัปโหลดภาพหน้าจอการชำระเงิน",
|
|
168
168
|
"formatHint": "PNG, JPG ขนาดสูงสุด {{maxSize}}MB",
|
|
169
169
|
"tooLarge": "ขนาดไฟล์ต้องน้อยกว่า {{maxSize}}MB"
|
|
170
170
|
}
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"sixCharacters": "İşlem kimliği 6 karakter olmalıdır",
|
|
153
153
|
"identifierOrScreenshot": "Lütfen bir işlem kimliği girin veya bir ödeme ekran görüntüsü yükleyin"
|
|
154
154
|
},
|
|
155
|
-
"vpaText": "
|
|
156
|
-
"vpaText_other": "
|
|
155
|
+
"vpaText": "Lütfen yukarıda belirtilen tutarı aşağıdaki UPI ID'sine ödeyin. Ödeme tamamlandıktan sonra, UPI işlem kimliğini girin veya ödeme ekran görüntüsünü yükleyin.",
|
|
156
|
+
"vpaText_other": "Lütfen yukarıda belirtilen tutarı aşağıdaki UPI ID'lerinden herhangi birine ödeyin. Ödeme tamamlandıktan sonra, UPI işlem kimliğini girin veya ödeme ekran görüntüsünü yükleyin.",
|
|
157
157
|
"buttons": {
|
|
158
158
|
"submit": "Gönder",
|
|
159
159
|
"back": "Geri",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"screenshot": {
|
|
165
165
|
"label": "Ödeme ekran görüntüsü yükleyin",
|
|
166
166
|
"alt": "Ödeme ekran görüntüsü",
|
|
167
|
-
"uploadText": "Ödeme ekran
|
|
167
|
+
"uploadText": "Ödeme ekran görüntüsünü yüklemek için buraya tıklayın",
|
|
168
168
|
"formatHint": "{{maxSize}}MB'a kadar PNG, JPG",
|
|
169
169
|
"tooLarge": "Dosya boyutu {{maxSize}}MB'tan küçük olmalıdır"
|
|
170
170
|
}
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"sixCharacters": "Ідентифікатор транзакції має містити 6 символів",
|
|
153
153
|
"identifierOrScreenshot": "Будь ласка, введіть ID транзакції або завантажте скріншот платежу"
|
|
154
154
|
},
|
|
155
|
-
"vpaText": "
|
|
156
|
-
"vpaText_other": "
|
|
155
|
+
"vpaText": "Будь ласка, сплатіть зазначену вище суму за наступним ідентифікатором UPI. Після завершення платежу введіть ідентифікатор транзакції UPI або завантажте скріншот платежу.",
|
|
156
|
+
"vpaText_other": "Будь ласка, сплатіть зазначену вище суму за будь-яким з наступних ідентифікаторів UPI. Після завершення платежу введіть ідентифікатор транзакції UPI або завантажте скріншот платежу.",
|
|
157
157
|
"buttons": {
|
|
158
158
|
"submit": "Надіслати",
|
|
159
159
|
"back": "Назад",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"screenshot": {
|
|
165
165
|
"label": "Завантажити скріншот платежу",
|
|
166
166
|
"alt": "Скріншот платежу",
|
|
167
|
-
"uploadText": "
|
|
167
|
+
"uploadText": "Натисніть тут, щоб завантажити скріншот платежу",
|
|
168
168
|
"formatHint": "PNG, JPG до {{maxSize}}МБ",
|
|
169
169
|
"tooLarge": "Розмір файлу має бути менше {{maxSize}}МБ"
|
|
170
170
|
}
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"sixCharacters": "ID giao dịch phải có 6 ký tự",
|
|
153
153
|
"identifierOrScreenshot": "Vui lòng nhập ID giao dịch hoặc tải lên ảnh chụp màn hình thanh toán"
|
|
154
154
|
},
|
|
155
|
-
"vpaText": "
|
|
156
|
-
"vpaText_other": "
|
|
155
|
+
"vpaText": "Vui lòng thanh toán số tiền đã đề cập ở trên cho ID UPI sau. Sau khi thanh toán hoàn tất, hãy nhập ID giao dịch UPI hoặc tải lên ảnh chụp màn hình thanh toán.",
|
|
156
|
+
"vpaText_other": "Vui lòng thanh toán số tiền đã đề cập ở trên cho bất kỳ ID UPI nào trong số sau. Sau khi thanh toán hoàn tất, hãy nhập ID giao dịch UPI hoặc tải lên ảnh chụp màn hình thanh toán.",
|
|
157
157
|
"buttons": {
|
|
158
158
|
"submit": "Gửi",
|
|
159
159
|
"back": "Quay lại",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"screenshot": {
|
|
165
165
|
"label": "Tải lên ảnh chụp màn hình thanh toán",
|
|
166
166
|
"alt": "Ảnh chụp màn hình thanh toán",
|
|
167
|
-
"uploadText": "
|
|
167
|
+
"uploadText": "Nhấn vào đây để tải lên ảnh chụp màn hình thanh toán",
|
|
168
168
|
"formatHint": "PNG, JPG tối đa {{maxSize}}MB",
|
|
169
169
|
"tooLarge": "Kích thước tệp phải nhỏ hơn {{maxSize}}MB"
|
|
170
170
|
}
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"sixCharacters": "交易ID应为6个字符",
|
|
153
153
|
"identifierOrScreenshot": "请输入交易ID或上传付款截图"
|
|
154
154
|
},
|
|
155
|
-
"vpaText": "
|
|
156
|
-
"vpaText_other": "
|
|
155
|
+
"vpaText": "请将上述金额支付到以下 UPI ID。完成付款后,输入 UPI 交易 ID 或上传付款截图。",
|
|
156
|
+
"vpaText_other": "请将上述金额支付到以下任一 UPI ID。完成付款后,输入 UPI 交易 ID 或上传付款截图。",
|
|
157
157
|
"buttons": {
|
|
158
158
|
"submit": "提交",
|
|
159
159
|
"back": "返回",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"screenshot": {
|
|
165
165
|
"label": "上传付款截图",
|
|
166
166
|
"alt": "付款截图",
|
|
167
|
-
"uploadText": "
|
|
167
|
+
"uploadText": "点击这里上传付款截图",
|
|
168
168
|
"formatHint": "PNG, JPG 最大 {{maxSize}}MB",
|
|
169
169
|
"tooLarge": "文件大小必须小于 {{maxSize}}MB"
|
|
170
170
|
}
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"sixCharacters": "交易 ID 必須有 6 個字符",
|
|
153
153
|
"identifierOrScreenshot": "請輸入交易 ID 或上傳付款截圖"
|
|
154
154
|
},
|
|
155
|
-
"vpaText": "
|
|
156
|
-
"vpaText_other": "
|
|
155
|
+
"vpaText": "請將上述金額支付到以下的 UPI ID。付款完成後,輸入 UPI 交易 ID 或上傳付款截圖。",
|
|
156
|
+
"vpaText_other": "請將上述金額支付到以下任何 UPI ID。付款完成後,輸入 UPI 交易 ID 或上傳付款截圖。",
|
|
157
157
|
"buttons": {
|
|
158
158
|
"submit": "提交",
|
|
159
159
|
"back": "返回",
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
"screenshot": {
|
|
165
165
|
"label": "上傳付款截圖",
|
|
166
166
|
"alt": "付款截圖",
|
|
167
|
-
"uploadText": "
|
|
167
|
+
"uploadText": "點擊這裡上傳付款截圖",
|
|
168
168
|
"formatHint": "PNG, JPG 最大 {{maxSize}}MB",
|
|
169
169
|
"tooLarge": "檔案大小必須小於 {{maxSize}}MB"
|
|
170
170
|
}
|
package/dist/ManualUpiPayment.js
CHANGED
|
@@ -2,16 +2,17 @@ import { useRef, useState, useMemo, useEffect } from 'react';
|
|
|
2
2
|
import { DirectUpload } from '@rails/activestorage';
|
|
3
3
|
import { isPresent, isNotPresent, noop } from 'neetocist';
|
|
4
4
|
import { Close } from '@bigbinary/neeto-icons';
|
|
5
|
-
import { Typography, Button, Toastr } from '@bigbinary/neetoui';
|
|
6
|
-
import { Form, Input, ActionBlock } from '@bigbinary/neetoui/formik';
|
|
7
5
|
import QRCodeImage from 'qrcode.react';
|
|
8
6
|
import { pluck } from 'ramda';
|
|
9
7
|
import { useTranslation } from 'react-i18next';
|
|
10
|
-
import {
|
|
8
|
+
import { a as useCreateUpiPayment } from './usePaymentApi-CjtkL3IU.js';
|
|
9
|
+
import { Typography, Button, Toastr } from '@bigbinary/neetoui';
|
|
10
|
+
import { Form, ActionBlock } from '@bigbinary/neetoui/formik';
|
|
11
11
|
import { k as getQrCodeValue } from './index-CajHy3NQ.js';
|
|
12
12
|
import { t } from 'i18next';
|
|
13
13
|
import * as yup from 'yup';
|
|
14
|
-
import {
|
|
14
|
+
import { useField } from 'formik';
|
|
15
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
15
16
|
import '@tanstack/react-query';
|
|
16
17
|
import 'neetocommons/react-utils';
|
|
17
18
|
import 'axios';
|
|
@@ -26,6 +27,7 @@ const DIRECT_UPLOAD_URL = "/rails/active_storage/direct_uploads";
|
|
|
26
27
|
const INITIAL_VALUES = {
|
|
27
28
|
identifier: ""
|
|
28
29
|
};
|
|
30
|
+
const UPI_TRANSACTION_ID_LENGTH = 12;
|
|
29
31
|
const buildValidationSchema = screenshotFile => yup.object({
|
|
30
32
|
identifier: yup.number().typeError(t("neetoPayments.validations.invalidField", {
|
|
31
33
|
entity: t("neetoPayments.common.transactionId")
|
|
@@ -36,6 +38,79 @@ const buildValidationSchema = screenshotFile => yup.object({
|
|
|
36
38
|
}), value => isNotPresent(value) || value?.toString().length === 12)
|
|
37
39
|
});
|
|
38
40
|
|
|
41
|
+
const toSlots = value => Array.from({
|
|
42
|
+
length: UPI_TRANSACTION_ID_LENGTH
|
|
43
|
+
}, (_, index) => value[index] ?? "");
|
|
44
|
+
const UpiTransactionIdInput = ({
|
|
45
|
+
name = "identifier"
|
|
46
|
+
}) => {
|
|
47
|
+
const {
|
|
48
|
+
t
|
|
49
|
+
} = useTranslation();
|
|
50
|
+
const [, meta, helpers] = useField(name);
|
|
51
|
+
const inputsRef = useRef([]);
|
|
52
|
+
const [slots, setSlots] = useState(() => toSlots((meta.initialValue ?? "").toString()));
|
|
53
|
+
const sync = nextSlots => {
|
|
54
|
+
setSlots(nextSlots);
|
|
55
|
+
helpers.setValue(nextSlots.join(""));
|
|
56
|
+
};
|
|
57
|
+
const setDigit = (index, digit) => sync(slots.map((slot, i) => i === index ? digit : slot));
|
|
58
|
+
const focusBox = index => inputsRef.current[index]?.focus();
|
|
59
|
+
const handleChange = (index, event) => {
|
|
60
|
+
const sanitized = event.target.value.replace(/\D/g, "");
|
|
61
|
+
setDigit(index, sanitized ? sanitized[sanitized.length - 1] : "");
|
|
62
|
+
if (sanitized && index < UPI_TRANSACTION_ID_LENGTH - 1) focusBox(index + 1);
|
|
63
|
+
};
|
|
64
|
+
const handleKeyDown = (index, event) => {
|
|
65
|
+
if (event.key === "Backspace" && !slots[index] && index > 0) {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
setDigit(index - 1, "");
|
|
68
|
+
focusBox(index - 1);
|
|
69
|
+
} else if (event.key === "ArrowLeft" && index > 0) {
|
|
70
|
+
focusBox(index - 1);
|
|
71
|
+
} else if (event.key === "ArrowRight" && index < UPI_TRANSACTION_ID_LENGTH - 1) {
|
|
72
|
+
focusBox(index + 1);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const handlePaste = event => {
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
const pasted = event.clipboardData.getData("text").replace(/\D/g, "").slice(0, UPI_TRANSACTION_ID_LENGTH);
|
|
78
|
+
if (!pasted) return;
|
|
79
|
+
sync(toSlots(pasted));
|
|
80
|
+
focusBox(Math.min(pasted.length, UPI_TRANSACTION_ID_LENGTH - 1));
|
|
81
|
+
};
|
|
82
|
+
const showError = meta.touched && meta.error;
|
|
83
|
+
return /*#__PURE__*/jsxs("div", {
|
|
84
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
85
|
+
className: "mb-2",
|
|
86
|
+
style: "body2",
|
|
87
|
+
weight: "medium",
|
|
88
|
+
children: t("neetoPayments.upi.payment.transaction.label")
|
|
89
|
+
}), /*#__PURE__*/jsx("div", {
|
|
90
|
+
className: "flex flex-wrap gap-2",
|
|
91
|
+
onPaste: handlePaste,
|
|
92
|
+
children: slots.map((slot, index) => /*#__PURE__*/jsx("input", {
|
|
93
|
+
autoComplete: "off",
|
|
94
|
+
className: "h-10 w-8 neeto-ui-rounded border neeto-ui-border-gray-300 text-center text-base focus:neeto-ui-border-gray-500 focus:outline-none",
|
|
95
|
+
"data-testid": `upi-transaction-id-box-${index}`,
|
|
96
|
+
inputMode: "numeric",
|
|
97
|
+
maxLength: 1,
|
|
98
|
+
ref: element => inputsRef.current[index] = element,
|
|
99
|
+
type: "text",
|
|
100
|
+
value: slot,
|
|
101
|
+
onBlur: () => helpers.setTouched(true),
|
|
102
|
+
onChange: event => handleChange(index, event),
|
|
103
|
+
onFocus: event => event.target.select(),
|
|
104
|
+
onKeyDown: event => handleKeyDown(index, event)
|
|
105
|
+
}, index))
|
|
106
|
+
}), showError && /*#__PURE__*/jsx(Typography, {
|
|
107
|
+
className: "neeto-ui-text-error-500 mt-1",
|
|
108
|
+
style: "body3",
|
|
109
|
+
children: meta.error
|
|
110
|
+
})]
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
|
|
39
114
|
const ManualUpiPayment = ({
|
|
40
115
|
fee,
|
|
41
116
|
payableId,
|
|
@@ -125,42 +200,41 @@ const ManualUpiPayment = ({
|
|
|
125
200
|
dirty
|
|
126
201
|
}) => /*#__PURE__*/jsxs(Fragment, {
|
|
127
202
|
children: [/*#__PURE__*/jsx(Typography, {
|
|
128
|
-
|
|
203
|
+
className: "neeto-ui-text-gray-600",
|
|
204
|
+
style: "body2",
|
|
129
205
|
children: t("neetoPayments.upi.payment.vpaText", {
|
|
130
206
|
count: vpaIds.length
|
|
131
207
|
})
|
|
132
208
|
}), isPresent(vpaIds) && /*#__PURE__*/jsx("div", {
|
|
133
|
-
className: "
|
|
209
|
+
className: "flex flex-wrap gap-8",
|
|
134
210
|
children: vpaIds.map(vpaId => /*#__PURE__*/jsxs("div", {
|
|
135
211
|
className: "flex flex-col items-center justify-center",
|
|
136
212
|
children: [/*#__PURE__*/jsx(QRCodeImage, {
|
|
137
213
|
size: 256,
|
|
138
214
|
style: {
|
|
139
|
-
width:
|
|
140
|
-
height:
|
|
215
|
+
width: 120,
|
|
216
|
+
height: 120
|
|
141
217
|
},
|
|
142
218
|
value: getQrCodeValue(vpaId, amountToUpi)
|
|
143
219
|
}), /*#__PURE__*/jsx(Typography, {
|
|
144
220
|
className: "w-full mt-2 text-center wrap-break-word",
|
|
145
221
|
style: "body2",
|
|
222
|
+
weight: "medium",
|
|
146
223
|
children: vpaId
|
|
147
224
|
})]
|
|
148
225
|
}, vpaId))
|
|
149
|
-
}), /*#__PURE__*/jsx(
|
|
150
|
-
|
|
151
|
-
name: "identifier",
|
|
152
|
-
placeholder: t("neetoPayments.upi.payment.transaction.placeholder"),
|
|
153
|
-
type: "number"
|
|
226
|
+
}), /*#__PURE__*/jsx(UpiTransactionIdInput, {
|
|
227
|
+
name: "identifier"
|
|
154
228
|
}), /*#__PURE__*/jsxs("div", {
|
|
155
229
|
className: "flex items-center gap-3",
|
|
156
230
|
children: [/*#__PURE__*/jsx("hr", {
|
|
157
|
-
className: "flex-1 border-gray-300"
|
|
231
|
+
className: "flex-1 neeto-ui-border-gray-300"
|
|
158
232
|
}), /*#__PURE__*/jsx(Typography, {
|
|
159
|
-
className: "text-gray-500 uppercase",
|
|
233
|
+
className: "neeto-ui-text-gray-500 uppercase",
|
|
160
234
|
style: "body2",
|
|
161
235
|
children: t("neetoPayments.common.or")
|
|
162
236
|
}), /*#__PURE__*/jsx("hr", {
|
|
163
|
-
className: "flex-1 border-gray-300"
|
|
237
|
+
className: "flex-1 neeto-ui-border-gray-300"
|
|
164
238
|
})]
|
|
165
239
|
}), /*#__PURE__*/jsxs("div", {
|
|
166
240
|
children: [/*#__PURE__*/jsx(Typography, {
|
|
@@ -172,7 +246,7 @@ const ManualUpiPayment = ({
|
|
|
172
246
|
className: "relative inline-block",
|
|
173
247
|
children: [/*#__PURE__*/jsx("img", {
|
|
174
248
|
alt: t("neetoPayments.upi.payment.screenshot.alt"),
|
|
175
|
-
className: "max-h-40 rounded border border-gray-200",
|
|
249
|
+
className: "max-h-40 neeto-ui-rounded border neeto-ui-border-gray-200",
|
|
176
250
|
src: screenshotPreview
|
|
177
251
|
}), /*#__PURE__*/jsx(Button, {
|
|
178
252
|
className: "absolute -right-2 -top-2 neeto-ui-rounded-full neeto-ui-bg-white neeto-ui-shadow-sm",
|
|
@@ -182,7 +256,7 @@ const ManualUpiPayment = ({
|
|
|
182
256
|
onClick: handleRemoveScreenshot
|
|
183
257
|
})]
|
|
184
258
|
}) : /*#__PURE__*/jsxs("div", {
|
|
185
|
-
className: "flex cursor-pointer flex-col items-center justify-center rounded border-2 border-dashed border-gray-300 p-6 transition-colors hover:border-gray-400",
|
|
259
|
+
className: "flex cursor-pointer flex-col items-center justify-center neeto-ui-rounded border-2 border-dashed neeto-ui-border-gray-300 p-6 transition-colors hover:neeto-ui-border-gray-400",
|
|
186
260
|
role: "button",
|
|
187
261
|
tabIndex: 0,
|
|
188
262
|
onClick: () => fileInputRef.current?.click(),
|
|
@@ -192,13 +266,14 @@ const ManualUpiPayment = ({
|
|
|
192
266
|
}
|
|
193
267
|
},
|
|
194
268
|
children: [/*#__PURE__*/jsx("i", {
|
|
195
|
-
className: "ri-upload-2-line text-2xl text-gray-400"
|
|
269
|
+
className: "ri-upload-2-line text-2xl neeto-ui-text-gray-400"
|
|
196
270
|
}), /*#__PURE__*/jsx(Typography, {
|
|
197
|
-
className: "mt-1 text-
|
|
271
|
+
className: "mt-1 text-blue-600 hover:underline",
|
|
198
272
|
style: "body3",
|
|
273
|
+
weight: "medium",
|
|
199
274
|
children: t("neetoPayments.upi.payment.screenshot.uploadText")
|
|
200
275
|
}), /*#__PURE__*/jsx(Typography, {
|
|
201
|
-
className: "text-gray-400",
|
|
276
|
+
className: "neeto-ui-text-gray-400",
|
|
202
277
|
style: "nano",
|
|
203
278
|
children: t("neetoPayments.upi.payment.screenshot.formatHint", {
|
|
204
279
|
maxSize: MAX_SCREENSHOT_SIZE_MB
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ManualUpiPayment.js","sources":["../app/javascript/src/components/ManualUpiPayment/constants.js","../app/javascript/src/components/ManualUpiPayment/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isPresent, isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nexport const ACCEPTED_SCREENSHOT_FORMATS = \"image/png,image/jpeg,image/jpg\";\n\nexport const MAX_SCREENSHOT_SIZE_MB = 5;\n\nexport const DIRECT_UPLOAD_URL = \"/rails/active_storage/direct_uploads\";\n\nexport const INITIAL_VALUES = { identifier: \"\" };\n\nexport const buildValidationSchema = screenshotFile =>\n yup.object({\n identifier: yup\n .number()\n .typeError(\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n })\n )\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n )\n .test(\n \"identifier-or-screenshot\",\n t(\"neetoPayments.upi.payment.transaction.identifierOrScreenshot\"),\n value => isPresent(value) || isPresent(screenshotFile)\n )\n .test(\n \"is-integer\",\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n }),\n value => isNotPresent(value) || Number.isInteger(value)\n )\n .test(\n \"len\",\n t(\"neetoPayments.validations.length\", { length: 12 }),\n value => isNotPresent(value) || value?.toString().length === 12\n ),\n });\n","import { useRef, useState, useMemo, useEffect } from \"react\";\n\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { noop, isPresent } from \"neetocist\";\nimport { Close } from \"neetoicons\";\nimport { Button, Toastr, Typography } from \"neetoui\";\nimport { ActionBlock, Form, Input } from \"neetoui/formik\";\nimport QRCodeImage from \"qrcode.react\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateUpiPayment } from \"hooks/reactQuery/manualUpi/usePaymentApi\";\nimport { getQrCodeValue } from \"utils\";\n\nimport {\n buildValidationSchema,\n ACCEPTED_SCREENSHOT_FORMATS,\n MAX_SCREENSHOT_SIZE_MB,\n DIRECT_UPLOAD_URL,\n INITIAL_VALUES,\n} from \"./constants\";\n\nconst ManualUpiPayment = ({\n fee,\n payableId,\n tip,\n amount,\n discountCode,\n customAmount,\n handleCancel,\n payableType = null,\n onBeforePayment = noop,\n onFailedPayment = noop,\n onSuccessfulPayment = noop,\n}) => {\n const { t } = useTranslation();\n const fileInputRef = useRef(null);\n const [screenshotFile, setScreenshotFile] = useState(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const screenshotPreview = useMemo(\n () => (screenshotFile ? URL.createObjectURL(screenshotFile) : null),\n [screenshotFile]\n );\n\n useEffect(\n () => () => {\n if (screenshotPreview) URL.revokeObjectURL(screenshotPreview);\n },\n [screenshotPreview]\n );\n\n const vpaIds = pluck(\"address\", fee?.vpas);\n const amountToUpi = customAmount || amount;\n\n const { isPending, mutate: createPayment } = useCreateUpiPayment({\n onSuccess: onSuccessfulPayment,\n onError: onFailedPayment,\n });\n\n const validationSchema = useMemo(\n () => buildValidationSchema(screenshotFile),\n [screenshotFile]\n );\n\n const handleScreenshotSelect = event => {\n const file = event.target.files[0];\n if (!file) return;\n\n if (file.size > MAX_SCREENSHOT_SIZE_MB * 1024 * 1024) {\n Toastr.error(\n t(\"neetoPayments.upi.payment.screenshot.tooLarge\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })\n );\n\n return;\n }\n\n setScreenshotFile(file);\n };\n\n const handleRemoveScreenshot = () => {\n setScreenshotFile(null);\n if (fileInputRef.current) fileInputRef.current.value = \"\";\n };\n\n const uploadScreenshot = file =>\n new Promise((resolve, reject) => {\n const upload = new DirectUpload(file, DIRECT_UPLOAD_URL);\n upload.create((error, blob) => {\n if (error) reject(error);\n else resolve(blob.signed_id);\n });\n });\n\n const handleSubmit = async values => {\n onBeforePayment();\n\n let paymentScreenshot = null;\n if (screenshotFile) {\n try {\n setIsUploading(true);\n paymentScreenshot = await uploadScreenshot(screenshotFile);\n } catch {\n onFailedPayment();\n\n return;\n } finally {\n setIsUploading(false);\n }\n }\n\n createPayment({\n ...values,\n payableId,\n customAmount,\n payableType,\n discountCode,\n tipAttributes: tip,\n paymentScreenshot,\n });\n };\n\n return (\n <Form\n className=\"space-y-4\"\n formikProps={{\n onSubmit: handleSubmit,\n initialValues: INITIAL_VALUES,\n validationSchema,\n }}\n >\n {({ dirty }) => (\n <>\n <Typography style=\"body1\">\n {t(\"neetoPayments.upi.payment.vpaText\", { count: vpaIds.length })}\n </Typography>\n {isPresent(vpaIds) && (\n <div className=\"grid grid-cols-1 gap-8 gap-y-4 sm:grid-cols-2\">\n {vpaIds.map(vpaId => (\n <div\n className=\"flex flex-col items-center justify-center\"\n key={vpaId}\n >\n <QRCodeImage\n size={256}\n style={{ width: 80, height: 80 }}\n value={getQrCodeValue(vpaId, amountToUpi)}\n />\n <Typography\n className=\"w-full mt-2 text-center wrap-break-word\"\n style=\"body2\"\n >\n {vpaId}\n </Typography>\n </div>\n ))}\n </div>\n )}\n <Input\n label={t(\"neetoPayments.upi.payment.transaction.label\")}\n name=\"identifier\"\n placeholder={t(\"neetoPayments.upi.payment.transaction.placeholder\")}\n type=\"number\"\n />\n <div className=\"flex items-center gap-3\">\n <hr className=\"flex-1 border-gray-300\" />\n <Typography className=\"text-gray-500 uppercase\" style=\"body2\">\n {t(\"neetoPayments.common.or\")}\n </Typography>\n <hr className=\"flex-1 border-gray-300\" />\n </div>\n <div>\n <Typography className=\"mb-2\" style=\"body2\" weight=\"medium\">\n {t(\"neetoPayments.upi.payment.screenshot.label\")}\n </Typography>\n {screenshotPreview ? (\n <div className=\"relative inline-block\">\n <img\n alt={t(\"neetoPayments.upi.payment.screenshot.alt\")}\n className=\"max-h-40 rounded border border-gray-200\"\n src={screenshotPreview}\n />\n <Button\n className=\"absolute -right-2 -top-2 neeto-ui-rounded-full neeto-ui-bg-white neeto-ui-shadow-sm\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={handleRemoveScreenshot}\n />\n </div>\n ) : (\n <div\n className=\"flex cursor-pointer flex-col items-center justify-center rounded border-2 border-dashed border-gray-300 p-6 transition-colors hover:border-gray-400\"\n role=\"button\"\n tabIndex={0}\n onClick={() => fileInputRef.current?.click()}\n onKeyDown={e => {\n if (e.key === \"Enter\" || e.key === \" \") {\n fileInputRef.current?.click();\n }\n }}\n >\n <i className=\"ri-upload-2-line text-2xl text-gray-400\" />\n <Typography className=\"mt-1 text-gray-500\" style=\"body3\">\n {t(\"neetoPayments.upi.payment.screenshot.uploadText\")}\n </Typography>\n <Typography className=\"text-gray-400\" style=\"nano\">\n {t(\"neetoPayments.upi.payment.screenshot.formatHint\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })}\n </Typography>\n </div>\n )}\n <input\n accept={ACCEPTED_SCREENSHOT_FORMATS}\n className=\"hidden\"\n data-testid=\"manual-upi-screenshot-upload-input-field\"\n ref={fileInputRef}\n type=\"file\"\n onChange={handleScreenshotSelect}\n />\n </div>\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.back\"),\n onClick: handleCancel,\n disabled: isPending,\n }}\n submitButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.submit\"),\n disabled: (!dirty && !screenshotFile) || isPending || isUploading,\n loading: isPending || isUploading,\n }}\n />\n </>\n )}\n </Form>\n );\n};\n\nexport default ManualUpiPayment;\n"],"names":["ACCEPTED_SCREENSHOT_FORMATS","MAX_SCREENSHOT_SIZE_MB","DIRECT_UPLOAD_URL","INITIAL_VALUES","identifier","buildValidationSchema","screenshotFile","yup","object","number","typeError","t","entity","nullable","transform","value","originalValue","test","isPresent","isNotPresent","Number","isInteger","length","toString","ManualUpiPayment","fee","payableId","tip","amount","discountCode","customAmount","handleCancel","payableType","onBeforePayment","noop","onFailedPayment","onSuccessfulPayment","useTranslation","fileInputRef","useRef","setScreenshotFile","useState","isUploading","setIsUploading","screenshotPreview","useMemo","URL","createObjectURL","useEffect","revokeObjectURL","vpaIds","pluck","vpas","amountToUpi","isPending","mutate","createPayment","useCreateUpiPayment","onSuccess","onError","validationSchema","handleScreenshotSelect","event","file","target","files","size","Toastr","error","maxSize","handleRemoveScreenshot","current","uploadScreenshot","Promise","resolve","reject","upload","DirectUpload","create","blob","signed_id","handleSubmit","values","paymentScreenshot","tipAttributes","_jsx","Form","className","formikProps","onSubmit","initialValues","children","dirty","_jsxs","_Fragment","Typography","style","count","map","vpaId","QRCodeImage","width","height","getQrCodeValue","Input","label","name","placeholder","type","weight","alt","src","Button","icon","Close","onClick","role","tabIndex","click","onKeyDown","e","key","accept","ref","onChange","ActionBlock","cancelButtonProps","disabled","submitButtonProps","loading"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ManualUpiPayment.js","sources":["../app/javascript/src/components/ManualUpiPayment/constants.js","../app/javascript/src/components/ManualUpiPayment/UpiTransactionIdInput.jsx","../app/javascript/src/components/ManualUpiPayment/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isPresent, isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nexport const ACCEPTED_SCREENSHOT_FORMATS = \"image/png,image/jpeg,image/jpg\";\n\nexport const MAX_SCREENSHOT_SIZE_MB = 5;\n\nexport const DIRECT_UPLOAD_URL = \"/rails/active_storage/direct_uploads\";\n\nexport const INITIAL_VALUES = { identifier: \"\" };\n\nexport const UPI_TRANSACTION_ID_LENGTH = 12;\n\nexport const buildValidationSchema = screenshotFile =>\n yup.object({\n identifier: yup\n .number()\n .typeError(\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n })\n )\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n )\n .test(\n \"identifier-or-screenshot\",\n t(\"neetoPayments.upi.payment.transaction.identifierOrScreenshot\"),\n value => isPresent(value) || isPresent(screenshotFile)\n )\n .test(\n \"is-integer\",\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n }),\n value => isNotPresent(value) || Number.isInteger(value)\n )\n .test(\n \"len\",\n t(\"neetoPayments.validations.length\", { length: 12 }),\n value => isNotPresent(value) || value?.toString().length === 12\n ),\n });\n","import { useRef, useState } from \"react\";\n\nimport { useField } from \"formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Typography } from \"neetoui\";\n\nimport { UPI_TRANSACTION_ID_LENGTH as LENGTH } from \"./constants\";\n\nconst toSlots = value =>\n Array.from({ length: LENGTH }, (_, index) => value[index] ?? \"\");\n\nconst UpiTransactionIdInput = ({ name = \"identifier\" }) => {\n const { t } = useTranslation();\n const [, meta, helpers] = useField(name);\n const inputsRef = useRef([]);\n const [slots, setSlots] = useState(() =>\n toSlots((meta.initialValue ?? \"\").toString())\n );\n\n const sync = nextSlots => {\n setSlots(nextSlots);\n helpers.setValue(nextSlots.join(\"\"));\n };\n\n const setDigit = (index, digit) =>\n sync(slots.map((slot, i) => (i === index ? digit : slot)));\n\n const focusBox = index => inputsRef.current[index]?.focus();\n\n const handleChange = (index, event) => {\n const sanitized = event.target.value.replace(/\\D/g, \"\");\n setDigit(index, sanitized ? sanitized[sanitized.length - 1] : \"\");\n if (sanitized && index < LENGTH - 1) focusBox(index + 1);\n };\n\n const handleKeyDown = (index, event) => {\n if (event.key === \"Backspace\" && !slots[index] && index > 0) {\n event.preventDefault();\n setDigit(index - 1, \"\");\n focusBox(index - 1);\n } else if (event.key === \"ArrowLeft\" && index > 0) {\n focusBox(index - 1);\n } else if (event.key === \"ArrowRight\" && index < LENGTH - 1) {\n focusBox(index + 1);\n }\n };\n\n const handlePaste = event => {\n event.preventDefault();\n const pasted = event.clipboardData\n .getData(\"text\")\n .replace(/\\D/g, \"\")\n .slice(0, LENGTH);\n if (!pasted) return;\n\n sync(toSlots(pasted));\n focusBox(Math.min(pasted.length, LENGTH - 1));\n };\n\n const showError = meta.touched && meta.error;\n\n return (\n <div>\n <Typography className=\"mb-2\" style=\"body2\" weight=\"medium\">\n {t(\"neetoPayments.upi.payment.transaction.label\")}\n </Typography>\n <div className=\"flex flex-wrap gap-2\" onPaste={handlePaste}>\n {slots.map((slot, index) => (\n <input\n autoComplete=\"off\"\n className=\"h-10 w-8 neeto-ui-rounded border neeto-ui-border-gray-300 text-center text-base focus:neeto-ui-border-gray-500 focus:outline-none\"\n data-testid={`upi-transaction-id-box-${index}`}\n inputMode=\"numeric\"\n key={index}\n maxLength={1}\n ref={element => (inputsRef.current[index] = element)}\n type=\"text\"\n value={slot}\n onBlur={() => helpers.setTouched(true)}\n onChange={event => handleChange(index, event)}\n onFocus={event => event.target.select()}\n onKeyDown={event => handleKeyDown(index, event)}\n />\n ))}\n </div>\n {showError && (\n <Typography className=\"neeto-ui-text-error-500 mt-1\" style=\"body3\">\n {meta.error}\n </Typography>\n )}\n </div>\n );\n};\n\nexport default UpiTransactionIdInput;\n","import { useRef, useState, useMemo, useEffect } from \"react\";\n\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { noop, isPresent } from \"neetocist\";\nimport { Close } from \"neetoicons\";\nimport QRCodeImage from \"qrcode.react\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateUpiPayment } from \"hooks/reactQuery/manualUpi/usePaymentApi\";\nimport { Button, Toastr, Typography } from \"neetoui\";\nimport { ActionBlock, Form } from \"neetoui/formik\";\nimport { getQrCodeValue } from \"utils\";\n\nimport {\n buildValidationSchema,\n ACCEPTED_SCREENSHOT_FORMATS,\n MAX_SCREENSHOT_SIZE_MB,\n DIRECT_UPLOAD_URL,\n INITIAL_VALUES,\n} from \"./constants\";\nimport UpiTransactionIdInput from \"./UpiTransactionIdInput\";\n\nconst ManualUpiPayment = ({\n fee,\n payableId,\n tip,\n amount,\n discountCode,\n customAmount,\n handleCancel,\n payableType = null,\n onBeforePayment = noop,\n onFailedPayment = noop,\n onSuccessfulPayment = noop,\n}) => {\n const { t } = useTranslation();\n const fileInputRef = useRef(null);\n const [screenshotFile, setScreenshotFile] = useState(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const screenshotPreview = useMemo(\n () => (screenshotFile ? URL.createObjectURL(screenshotFile) : null),\n [screenshotFile]\n );\n\n useEffect(\n () => () => {\n if (screenshotPreview) URL.revokeObjectURL(screenshotPreview);\n },\n [screenshotPreview]\n );\n\n const vpaIds = pluck(\"address\", fee?.vpas);\n const amountToUpi = customAmount || amount;\n\n const { isPending, mutate: createPayment } = useCreateUpiPayment({\n onSuccess: onSuccessfulPayment,\n onError: onFailedPayment,\n });\n\n const validationSchema = useMemo(\n () => buildValidationSchema(screenshotFile),\n [screenshotFile]\n );\n\n const handleScreenshotSelect = event => {\n const file = event.target.files[0];\n if (!file) return;\n\n if (file.size > MAX_SCREENSHOT_SIZE_MB * 1024 * 1024) {\n Toastr.error(\n t(\"neetoPayments.upi.payment.screenshot.tooLarge\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })\n );\n\n return;\n }\n\n setScreenshotFile(file);\n };\n\n const handleRemoveScreenshot = () => {\n setScreenshotFile(null);\n if (fileInputRef.current) fileInputRef.current.value = \"\";\n };\n\n const uploadScreenshot = file =>\n new Promise((resolve, reject) => {\n const upload = new DirectUpload(file, DIRECT_UPLOAD_URL);\n upload.create((error, blob) => {\n if (error) reject(error);\n else resolve(blob.signed_id);\n });\n });\n\n const handleSubmit = async values => {\n onBeforePayment();\n\n let paymentScreenshot = null;\n if (screenshotFile) {\n try {\n setIsUploading(true);\n paymentScreenshot = await uploadScreenshot(screenshotFile);\n } catch {\n onFailedPayment();\n\n return;\n } finally {\n setIsUploading(false);\n }\n }\n\n createPayment({\n ...values,\n payableId,\n customAmount,\n payableType,\n discountCode,\n tipAttributes: tip,\n paymentScreenshot,\n });\n };\n\n return (\n <Form\n className=\"space-y-4\"\n formikProps={{\n onSubmit: handleSubmit,\n initialValues: INITIAL_VALUES,\n validationSchema,\n }}\n >\n {({ dirty }) => (\n <>\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {t(\"neetoPayments.upi.payment.vpaText\", { count: vpaIds.length })}\n </Typography>\n {isPresent(vpaIds) && (\n <div className=\"flex flex-wrap gap-8\">\n {vpaIds.map(vpaId => (\n <div\n className=\"flex flex-col items-center justify-center\"\n key={vpaId}\n >\n <QRCodeImage\n size={256}\n style={{ width: 120, height: 120 }}\n value={getQrCodeValue(vpaId, amountToUpi)}\n />\n <Typography\n className=\"w-full mt-2 text-center wrap-break-word\"\n style=\"body2\"\n weight=\"medium\"\n >\n {vpaId}\n </Typography>\n </div>\n ))}\n </div>\n )}\n <UpiTransactionIdInput name=\"identifier\" />\n <div className=\"flex items-center gap-3\">\n <hr className=\"flex-1 neeto-ui-border-gray-300\" />\n <Typography\n className=\"neeto-ui-text-gray-500 uppercase\"\n style=\"body2\"\n >\n {t(\"neetoPayments.common.or\")}\n </Typography>\n <hr className=\"flex-1 neeto-ui-border-gray-300\" />\n </div>\n <div>\n <Typography className=\"mb-2\" style=\"body2\" weight=\"medium\">\n {t(\"neetoPayments.upi.payment.screenshot.label\")}\n </Typography>\n {screenshotPreview ? (\n <div className=\"relative inline-block\">\n <img\n alt={t(\"neetoPayments.upi.payment.screenshot.alt\")}\n className=\"max-h-40 neeto-ui-rounded border neeto-ui-border-gray-200\"\n src={screenshotPreview}\n />\n <Button\n className=\"absolute -right-2 -top-2 neeto-ui-rounded-full neeto-ui-bg-white neeto-ui-shadow-sm\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={handleRemoveScreenshot}\n />\n </div>\n ) : (\n <div\n className=\"flex cursor-pointer flex-col items-center justify-center neeto-ui-rounded border-2 border-dashed neeto-ui-border-gray-300 p-6 transition-colors hover:neeto-ui-border-gray-400\"\n role=\"button\"\n tabIndex={0}\n onClick={() => fileInputRef.current?.click()}\n onKeyDown={e => {\n if (e.key === \"Enter\" || e.key === \" \") {\n fileInputRef.current?.click();\n }\n }}\n >\n <i className=\"ri-upload-2-line text-2xl neeto-ui-text-gray-400\" />\n <Typography\n className=\"mt-1 text-blue-600 hover:underline\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoPayments.upi.payment.screenshot.uploadText\")}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-400\" style=\"nano\">\n {t(\"neetoPayments.upi.payment.screenshot.formatHint\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })}\n </Typography>\n </div>\n )}\n <input\n accept={ACCEPTED_SCREENSHOT_FORMATS}\n className=\"hidden\"\n data-testid=\"manual-upi-screenshot-upload-input-field\"\n ref={fileInputRef}\n type=\"file\"\n onChange={handleScreenshotSelect}\n />\n </div>\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.back\"),\n onClick: handleCancel,\n disabled: isPending,\n }}\n submitButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.submit\"),\n disabled: (!dirty && !screenshotFile) || isPending || isUploading,\n loading: isPending || isUploading,\n }}\n />\n </>\n )}\n </Form>\n );\n};\n\nexport default ManualUpiPayment;\n"],"names":["ACCEPTED_SCREENSHOT_FORMATS","MAX_SCREENSHOT_SIZE_MB","DIRECT_UPLOAD_URL","INITIAL_VALUES","identifier","UPI_TRANSACTION_ID_LENGTH","buildValidationSchema","screenshotFile","yup","object","number","typeError","t","entity","nullable","transform","value","originalValue","test","isPresent","isNotPresent","Number","isInteger","length","toString","toSlots","Array","from","LENGTH","_","index","UpiTransactionIdInput","name","useTranslation","meta","helpers","useField","inputsRef","useRef","slots","setSlots","useState","initialValue","sync","nextSlots","setValue","join","setDigit","digit","map","slot","i","focusBox","current","focus","handleChange","event","sanitized","target","replace","handleKeyDown","key","preventDefault","handlePaste","pasted","clipboardData","getData","slice","Math","min","showError","touched","error","_jsxs","children","_jsx","Typography","className","style","weight","onPaste","autoComplete","inputMode","maxLength","ref","element","type","onBlur","setTouched","onChange","onFocus","select","onKeyDown","ManualUpiPayment","fee","payableId","tip","amount","discountCode","customAmount","handleCancel","payableType","onBeforePayment","noop","onFailedPayment","onSuccessfulPayment","fileInputRef","setScreenshotFile","isUploading","setIsUploading","screenshotPreview","useMemo","URL","createObjectURL","useEffect","revokeObjectURL","vpaIds","pluck","vpas","amountToUpi","isPending","mutate","createPayment","useCreateUpiPayment","onSuccess","onError","validationSchema","handleScreenshotSelect","file","files","size","Toastr","maxSize","handleRemoveScreenshot","uploadScreenshot","Promise","resolve","reject","upload","DirectUpload","create","blob","signed_id","handleSubmit","values","paymentScreenshot","tipAttributes","Form","formikProps","onSubmit","initialValues","dirty","_Fragment","count","vpaId","QRCodeImage","width","height","getQrCodeValue","alt","src","Button","icon","Close","onClick","role","tabIndex","click","e","accept","ActionBlock","cancelButtonProps","label","disabled","submitButtonProps","loading"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { useState } from 'react';
|
|
|
2
2
|
import { noop, findBy } from 'neetocist';
|
|
3
3
|
import { mergeLeft } from 'ramda';
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
5
|
-
import {
|
|
5
|
+
import { u as useUpdateUpiPayment } from './usePaymentApi-CjtkL3IU.js';
|
|
6
6
|
import { Button, Modal, Typography } from '@bigbinary/neetoui';
|
|
7
7
|
import { Form, Select, Textarea, ActionBlock } from '@bigbinary/neetoui/formik';
|
|
8
8
|
import { t } from 'i18next';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useState } from 'react';
|
|
2
2
|
import { noop } from 'neetocist';
|
|
3
3
|
import { useTranslation } from 'react-i18next';
|
|
4
|
-
import {
|
|
4
|
+
import { u as useUpdateUpiPayment } from './usePaymentApi-CjtkL3IU.js';
|
|
5
5
|
import { Button, Modal, Typography } from '@bigbinary/neetoui';
|
|
6
6
|
import { Form, Textarea, ActionBlock } from '@bigbinary/neetoui/formik';
|
|
7
7
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|