@bigbinary/neeto-payments-frontend 6.1.11 → 6.1.13
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/dist/AccountsDashboard.js +473 -0
- package/dist/AccountsDashboard.js.map +1 -0
- package/dist/AdminCancelRecurringPaymentButton.js +65 -0
- package/dist/AdminCancelRecurringPaymentButton.js.map +1 -0
- package/dist/CashPaymentButton.js +58 -0
- package/dist/CashPaymentButton.js.map +1 -0
- package/dist/ConfirmCashPaymentButton.js +98 -0
- package/dist/ConfirmCashPaymentButton.js.map +1 -0
- package/dist/CopyButtonWrapper-Bp5IVO76.js +26 -0
- package/dist/CopyButtonWrapper-Bp5IVO76.js.map +1 -0
- package/dist/CustomerCancelRecurringPaymentForm.js +103 -0
- package/dist/CustomerCancelRecurringPaymentForm.js.map +1 -0
- package/dist/ExportModal-DyRGg_4o.js +120 -0
- package/dist/ExportModal-DyRGg_4o.js.map +1 -0
- package/dist/ManualUpiConnect.js +228 -0
- package/dist/ManualUpiConnect.js.map +1 -0
- package/dist/ManualUpiPayment.js +125 -0
- package/dist/ManualUpiPayment.js.map +1 -0
- package/dist/ManualUpiPaymentConfirmButton.js +155 -0
- package/dist/ManualUpiPaymentConfirmButton.js.map +1 -0
- package/dist/ManualUpiPaymentRejectButton.js +126 -0
- package/dist/ManualUpiPaymentRejectButton.js.map +1 -0
- package/dist/PaymentKindRestrictionAlert.js +31 -0
- package/dist/PaymentKindRestrictionAlert.js.map +1 -0
- package/dist/PaymentsDashboard.js +555 -0
- package/dist/PaymentsDashboard.js.map +1 -0
- package/dist/PayoutsDashboard.js +510 -0
- package/dist/PayoutsDashboard.js.map +1 -0
- package/dist/PayoutsPage.js +158 -0
- package/dist/PayoutsPage.js.map +1 -0
- package/dist/RazorpayConnect.js +115 -0
- package/dist/RazorpayConnect.js.map +1 -0
- package/dist/RazorpayLinkedAccountForm.js +201 -0
- package/dist/RazorpayLinkedAccountForm.js.map +1 -0
- package/dist/RazorpayPaymentButton.js +127 -0
- package/dist/RazorpayPaymentButton.js.map +1 -0
- package/dist/RecurringPaymentSettings.js +119 -0
- package/dist/RecurringPaymentSettings.js.map +1 -0
- package/dist/RefundsDashboard.js +484 -0
- package/dist/RefundsDashboard.js.map +1 -0
- package/dist/SplitTransfersDashboard.js +1042 -0
- package/dist/SplitTransfersDashboard.js.map +1 -0
- package/dist/StripeCheckoutSetting.js +82 -0
- package/dist/StripeCheckoutSetting.js.map +1 -0
- package/dist/StripeConnect.js +376 -0
- package/dist/StripeConnect.js.map +1 -0
- package/dist/StripeManage.js +46 -0
- package/dist/StripeManage.js.map +1 -0
- package/dist/TaxesDashboard.js +355 -0
- package/dist/TaxesDashboard.js.map +1 -0
- package/dist/buildStripeTransactionLink.js +12 -0
- package/dist/buildStripeTransactionLink.js.map +1 -0
- package/dist/cjs/AccountsDashboard.js +475 -0
- package/dist/cjs/AccountsDashboard.js.map +1 -0
- package/dist/cjs/AdminCancelRecurringPaymentButton.js +67 -0
- package/dist/cjs/AdminCancelRecurringPaymentButton.js.map +1 -0
- package/dist/cjs/CashPaymentButton.js +60 -0
- package/dist/cjs/CashPaymentButton.js.map +1 -0
- package/dist/cjs/ConfirmCashPaymentButton.js +100 -0
- package/dist/cjs/ConfirmCashPaymentButton.js.map +1 -0
- package/dist/cjs/CopyButtonWrapper-I-kdKiiB.js +29 -0
- package/dist/cjs/CopyButtonWrapper-I-kdKiiB.js.map +1 -0
- package/dist/cjs/CustomerCancelRecurringPaymentForm.js +105 -0
- package/dist/cjs/CustomerCancelRecurringPaymentForm.js.map +1 -0
- package/dist/cjs/ExportModal-DE-VcN1X.js +122 -0
- package/dist/cjs/ExportModal-DE-VcN1X.js.map +1 -0
- package/dist/cjs/ManualUpiConnect.js +249 -0
- package/dist/cjs/ManualUpiConnect.js.map +1 -0
- package/dist/cjs/ManualUpiPayment.js +146 -0
- package/dist/cjs/ManualUpiPayment.js.map +1 -0
- package/dist/cjs/ManualUpiPaymentConfirmButton.js +176 -0
- package/dist/cjs/ManualUpiPaymentConfirmButton.js.map +1 -0
- package/dist/cjs/ManualUpiPaymentRejectButton.js +128 -0
- package/dist/cjs/ManualUpiPaymentRejectButton.js.map +1 -0
- package/dist/cjs/PaymentKindRestrictionAlert.js +33 -0
- package/dist/cjs/PaymentKindRestrictionAlert.js.map +1 -0
- package/dist/cjs/PaymentsDashboard.js +557 -0
- package/dist/cjs/PaymentsDashboard.js.map +1 -0
- package/dist/cjs/PayoutsDashboard.js +512 -0
- package/dist/cjs/PayoutsDashboard.js.map +1 -0
- package/dist/cjs/PayoutsPage.js +160 -0
- package/dist/cjs/PayoutsPage.js.map +1 -0
- package/dist/cjs/RazorpayConnect.js +117 -0
- package/dist/cjs/RazorpayConnect.js.map +1 -0
- package/dist/cjs/RazorpayLinkedAccountForm.js +203 -0
- package/dist/cjs/RazorpayLinkedAccountForm.js.map +1 -0
- package/dist/cjs/RazorpayPaymentButton.js +129 -0
- package/dist/cjs/RazorpayPaymentButton.js.map +1 -0
- package/dist/cjs/RecurringPaymentSettings.js +140 -0
- package/dist/cjs/RecurringPaymentSettings.js.map +1 -0
- package/dist/cjs/RefundsDashboard.js +486 -0
- package/dist/cjs/RefundsDashboard.js.map +1 -0
- package/dist/cjs/SplitTransfersDashboard.js +1063 -0
- package/dist/cjs/SplitTransfersDashboard.js.map +1 -0
- package/dist/cjs/StripeCheckoutSetting.js +84 -0
- package/dist/cjs/StripeCheckoutSetting.js.map +1 -0
- package/dist/cjs/StripeConnect.js +397 -0
- package/dist/cjs/StripeConnect.js.map +1 -0
- package/dist/cjs/StripeManage.js +48 -0
- package/dist/cjs/StripeManage.js.map +1 -0
- package/dist/cjs/TaxesDashboard.js +376 -0
- package/dist/cjs/TaxesDashboard.js.map +1 -0
- package/dist/cjs/buildStripeTransactionLink.js +14 -0
- package/dist/cjs/buildStripeTransactionLink.js.map +1 -0
- package/dist/cjs/constants.js +38 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/dashboard-BiCB2A6S.js +96 -0
- package/dist/cjs/dashboard-BiCB2A6S.js.map +1 -0
- package/dist/cjs/exportChannel-BL2RGGhP.js +38 -0
- package/dist/cjs/exportChannel-BL2RGGhP.js.map +1 -0
- package/dist/cjs/getAddressElementOptions.js +14 -0
- package/dist/cjs/getAddressElementOptions.js.map +1 -0
- package/dist/cjs/getAmountInLargestCurrencyUnit.js +14 -0
- package/dist/cjs/getAmountInLargestCurrencyUnit.js.map +1 -0
- package/dist/cjs/getAmountInSmallestCurrencyUnit.js +14 -0
- package/dist/cjs/getAmountInSmallestCurrencyUnit.js.map +1 -0
- package/dist/cjs/getAmountWithAppliedTax.js +14 -0
- package/dist/cjs/getAmountWithAppliedTax.js.map +1 -0
- package/dist/cjs/getFormattedAmount.js +14 -0
- package/dist/cjs/getFormattedAmount.js.map +1 -0
- package/dist/cjs/getFormattedDiscountedAmount.js +14 -0
- package/dist/cjs/getFormattedDiscountedAmount.js.map +1 -0
- package/dist/cjs/getFormattedDiscountedPercentage.js +14 -0
- package/dist/cjs/getFormattedDiscountedPercentage.js.map +1 -0
- package/dist/cjs/getFormattedTaxAmount.js +14 -0
- package/dist/cjs/getFormattedTaxAmount.js.map +1 -0
- package/dist/cjs/getFormattedTipAmount.js +14 -0
- package/dist/cjs/getFormattedTipAmount.js.map +1 -0
- package/dist/cjs/getQrCodeValue.js +14 -0
- package/dist/cjs/getQrCodeValue.js.map +1 -0
- package/dist/cjs/getTaxAmount.js +14 -0
- package/dist/cjs/getTaxAmount.js.map +1 -0
- package/dist/cjs/getTipAmount.js +14 -0
- package/dist/cjs/getTipAmount.js.map +1 -0
- package/dist/cjs/hasAmountToPay.js +14 -0
- package/dist/cjs/hasAmountToPay.js.map +1 -0
- package/dist/cjs/index-D6V3Vofs.js +855 -0
- package/dist/cjs/index-D6V3Vofs.js.map +1 -0
- package/dist/cjs/index.js +121 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/queryConstants-Dc6wh21D.js +35 -0
- package/dist/cjs/queryConstants-Dc6wh21D.js.map +1 -0
- package/dist/cjs/renderFunctions-DhCwlBWw.js +48 -0
- package/dist/cjs/renderFunctions-DhCwlBWw.js.map +1 -0
- package/dist/cjs/stripe.esm-CrNYjPcC.js +132 -0
- package/dist/cjs/stripe.esm-CrNYjPcC.js.map +1 -0
- package/dist/cjs/useAccountsApi-B2MZWHMY.js +42 -0
- package/dist/cjs/useAccountsApi-B2MZWHMY.js.map +1 -0
- package/dist/cjs/useIntegrationsApi-CVlTmLKc.js +20 -0
- package/dist/cjs/useIntegrationsApi-CVlTmLKc.js.map +1 -0
- package/dist/cjs/usePaymentApi-BCE_Ql18.js +29 -0
- package/dist/cjs/usePaymentApi-BCE_Ql18.js.map +1 -0
- package/dist/cjs/usePaymentApi-Bl8jWvnG.js +44 -0
- package/dist/cjs/usePaymentApi-Bl8jWvnG.js.map +1 -0
- package/dist/cjs/usePaymentApi-CiwXBe90.js +29 -0
- package/dist/cjs/usePaymentApi-CiwXBe90.js.map +1 -0
- package/dist/cjs/usePlatformApi-CcGVG4Qi.js +55 -0
- package/dist/cjs/usePlatformApi-CcGVG4Qi.js.map +1 -0
- package/dist/cjs/useRazorpayPayment.js +88 -0
- package/dist/cjs/useRazorpayPayment.js.map +1 -0
- package/dist/cjs/useStripePromise.js +31 -0
- package/dist/cjs/useStripePromise.js.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/dashboard-CwvqEeOl.js +90 -0
- package/dist/dashboard-CwvqEeOl.js.map +1 -0
- package/dist/exportChannel-Db0U5gc1.js +35 -0
- package/dist/exportChannel-Db0U5gc1.js.map +1 -0
- package/dist/getAddressElementOptions.js +12 -0
- package/dist/getAddressElementOptions.js.map +1 -0
- package/dist/getAmountInLargestCurrencyUnit.js +12 -0
- package/dist/getAmountInLargestCurrencyUnit.js.map +1 -0
- package/dist/getAmountInSmallestCurrencyUnit.js +12 -0
- package/dist/getAmountInSmallestCurrencyUnit.js.map +1 -0
- package/dist/getAmountWithAppliedTax.js +12 -0
- package/dist/getAmountWithAppliedTax.js.map +1 -0
- package/dist/getFormattedAmount.js +12 -0
- package/dist/getFormattedAmount.js.map +1 -0
- package/dist/getFormattedDiscountedAmount.js +12 -0
- package/dist/getFormattedDiscountedAmount.js.map +1 -0
- package/dist/getFormattedDiscountedPercentage.js +12 -0
- package/dist/getFormattedDiscountedPercentage.js.map +1 -0
- package/dist/getFormattedTaxAmount.js +12 -0
- package/dist/getFormattedTaxAmount.js.map +1 -0
- package/dist/getFormattedTipAmount.js +12 -0
- package/dist/getFormattedTipAmount.js.map +1 -0
- package/dist/getQrCodeValue.js +12 -0
- package/dist/getQrCodeValue.js.map +1 -0
- package/dist/getTaxAmount.js +12 -0
- package/dist/getTaxAmount.js.map +1 -0
- package/dist/getTipAmount.js +12 -0
- package/dist/getTipAmount.js.map +1 -0
- package/dist/hasAmountToPay.js +12 -0
- package/dist/hasAmountToPay.js.map +1 -0
- package/dist/index-CNouM9_z.js +804 -0
- package/dist/index-CNouM9_z.js.map +1 -0
- package/dist/index.js +78 -0
- package/dist/index.js.map +1 -0
- package/dist/queryConstants-C7AqdemO.js +33 -0
- package/dist/queryConstants-C7AqdemO.js.map +1 -0
- package/dist/renderFunctions-Bx5nzyE_.js +44 -0
- package/dist/renderFunctions-Bx5nzyE_.js.map +1 -0
- package/dist/stripe.esm-DuZ_gsAa.js +130 -0
- package/dist/stripe.esm-DuZ_gsAa.js.map +1 -0
- package/dist/useAccountsApi-C9_eNmEZ.js +38 -0
- package/dist/useAccountsApi-C9_eNmEZ.js.map +1 -0
- package/dist/useIntegrationsApi-D9eA_FrB.js +18 -0
- package/dist/useIntegrationsApi-D9eA_FrB.js.map +1 -0
- package/dist/usePaymentApi-B98qoM7U.js +26 -0
- package/dist/usePaymentApi-B98qoM7U.js.map +1 -0
- package/dist/usePaymentApi-DMHHdCK1.js +41 -0
- package/dist/usePaymentApi-DMHHdCK1.js.map +1 -0
- package/dist/usePaymentApi-DSlW_EBq.js +27 -0
- package/dist/usePaymentApi-DSlW_EBq.js.map +1 -0
- package/dist/usePlatformApi-sJUY6wju.js +50 -0
- package/dist/usePlatformApi-sJUY6wju.js.map +1 -0
- package/dist/useRazorpayPayment.js +86 -0
- package/dist/useRazorpayPayment.js.map +1 -0
- package/dist/useStripePromise.js +29 -0
- package/dist/useStripePromise.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
4
|
+
var reactQuery = require('@tanstack/react-query');
|
|
5
|
+
var reactUtils = require('neetocommons/react-utils');
|
|
6
|
+
var axios = require('axios');
|
|
7
|
+
var constants = require('./index-D6V3Vofs.js');
|
|
8
|
+
var queryConstants = require('./queryConstants-Dc6wh21D.js');
|
|
9
|
+
var CardLayout = require('@bigbinary/neeto-molecules/CardLayout');
|
|
10
|
+
var formik = require('@bigbinary/neetoui/formik');
|
|
11
|
+
var reactI18next = require('react-i18next');
|
|
12
|
+
var reactRouterDom = require('react-router-dom');
|
|
13
|
+
var i18next = require('i18next');
|
|
14
|
+
var yup = require('yup');
|
|
15
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
16
|
+
var react = require('react');
|
|
17
|
+
var ramda = require('ramda');
|
|
18
|
+
var utils = require('neetocommons/utils');
|
|
19
|
+
var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
|
|
20
|
+
require('neetocommons/constants');
|
|
21
|
+
require('decimal.js');
|
|
22
|
+
require('neetocist');
|
|
23
|
+
|
|
24
|
+
function _interopNamespaceDefault(e) {
|
|
25
|
+
var n = Object.create(null);
|
|
26
|
+
if (e) {
|
|
27
|
+
Object.keys(e).forEach(function (k) {
|
|
28
|
+
if (k !== 'default') {
|
|
29
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
30
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () { return e[k]; }
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
n.default = e;
|
|
38
|
+
return Object.freeze(n);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
42
|
+
|
|
43
|
+
const list = holdableId => axios.get(`${constants.BASE_URL}/api/v1/manual_upi/vpas`, {
|
|
44
|
+
params: {
|
|
45
|
+
holdableId
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
const create = payload => axios.post(`${constants.BASE_URL}/api/v1/manual_upi/vpas`, payload);
|
|
49
|
+
const destroy = ({
|
|
50
|
+
id,
|
|
51
|
+
holdableId
|
|
52
|
+
}) => axios.delete(`${constants.BASE_URL}/api/v1/manual_upi/vpas/${id}`, {
|
|
53
|
+
params: {
|
|
54
|
+
holdableId
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
const vpasApi = {
|
|
58
|
+
list,
|
|
59
|
+
create,
|
|
60
|
+
destroy
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const useFetchVpas = (holdableId, options = {}) => reactQuery.useQuery({
|
|
64
|
+
queryKey: [queryConstants.QUERY_KEYS.VPAS_LIST, holdableId],
|
|
65
|
+
queryFn: () => vpasApi.list(holdableId),
|
|
66
|
+
...options
|
|
67
|
+
});
|
|
68
|
+
const useCreateVpa = (keysToInvalidateOnCreate = []) => reactUtils.useMutationWithInvalidation(vpasApi.create, {
|
|
69
|
+
keysToInvalidate: [[queryConstants.QUERY_KEYS.VPAS_LIST], ...keysToInvalidateOnCreate]
|
|
70
|
+
});
|
|
71
|
+
const useDestroyVpa = (keysToInvalidateOnDelete = []) => reactUtils.useMutationWithInvalidation(vpasApi.destroy, {
|
|
72
|
+
keysToInvalidate: [[queryConstants.QUERY_KEYS.VPAS_LIST], ...keysToInvalidateOnDelete]
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
const VALIDATION_SCHEMA = yup__namespace.object({
|
|
76
|
+
upiId: yup__namespace.string().matches(/^[a-zA-Z0-9][a-zA-Z0-9._-]{2,30}@[a-zA-Z][a-zA-Z0-9]{2,20}$/, i18next.t("neetoPayments.upi.form.validation.invalidUpi")).required(i18next.t("neetoPayments.upi.form.validation.required"))
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
const Add = ({
|
|
80
|
+
holdableId,
|
|
81
|
+
keysToInvalidateOnCreate
|
|
82
|
+
}) => {
|
|
83
|
+
const {
|
|
84
|
+
t
|
|
85
|
+
} = reactI18next.useTranslation();
|
|
86
|
+
const history = reactRouterDom.useHistory();
|
|
87
|
+
const {
|
|
88
|
+
isPending: isCreatingVpa,
|
|
89
|
+
mutate: createVpa
|
|
90
|
+
} = useCreateVpa(keysToInvalidateOnCreate);
|
|
91
|
+
return /*#__PURE__*/jsxRuntime.jsx(formik.Form, {
|
|
92
|
+
className: "w-full",
|
|
93
|
+
formikProps: {
|
|
94
|
+
initialValues: {
|
|
95
|
+
upiId: ""
|
|
96
|
+
},
|
|
97
|
+
onSubmit: (values, {
|
|
98
|
+
resetForm
|
|
99
|
+
}) => {
|
|
100
|
+
createVpa({
|
|
101
|
+
holdableId,
|
|
102
|
+
address: values.upiId
|
|
103
|
+
});
|
|
104
|
+
resetForm();
|
|
105
|
+
},
|
|
106
|
+
validationSchema: VALIDATION_SCHEMA
|
|
107
|
+
},
|
|
108
|
+
children: ({
|
|
109
|
+
dirty
|
|
110
|
+
}) => /*#__PURE__*/jsxRuntime.jsx(CardLayout, {
|
|
111
|
+
actionBlock: /*#__PURE__*/jsxRuntime.jsx(formik.ActionBlock, {
|
|
112
|
+
cancelButtonProps: {
|
|
113
|
+
onClick: history.goBack
|
|
114
|
+
},
|
|
115
|
+
isSubmitting: isCreatingVpa,
|
|
116
|
+
submitButtonProps: {
|
|
117
|
+
label: t("neetoPayments.upi.form.add"),
|
|
118
|
+
disabled: !dirty || isCreatingVpa
|
|
119
|
+
}
|
|
120
|
+
}),
|
|
121
|
+
children: /*#__PURE__*/jsxRuntime.jsx(formik.Input, {
|
|
122
|
+
className: "w-full",
|
|
123
|
+
label: t("neetoPayments.upi.form.enterUpi"),
|
|
124
|
+
name: "upiId",
|
|
125
|
+
placeholder: t("neetoPayments.upi.form.enterUpi")
|
|
126
|
+
})
|
|
127
|
+
})
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
const getColumnData = handleDeleteClick => [{
|
|
132
|
+
title: i18next.t("neetoPayments.common.upiId"),
|
|
133
|
+
dataIndex: "address",
|
|
134
|
+
key: "address",
|
|
135
|
+
width: 272,
|
|
136
|
+
render: (_, upiId) => /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
137
|
+
className: "flex items-center justify-between gap-3",
|
|
138
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
|
|
139
|
+
className: "w-4/5",
|
|
140
|
+
style: "body2",
|
|
141
|
+
children: upiId.address
|
|
142
|
+
}), /*#__PURE__*/jsxRuntime.jsx(MoreDropdown, {
|
|
143
|
+
dropdownButtonProps: {
|
|
144
|
+
"data-testid": "upi-more-dropdown"
|
|
145
|
+
},
|
|
146
|
+
dropdownProps: {
|
|
147
|
+
strategy: "fixed"
|
|
148
|
+
},
|
|
149
|
+
menuItems: [{
|
|
150
|
+
key: "delete-meeting",
|
|
151
|
+
label: i18next.t("neetoPayments.common.delete"),
|
|
152
|
+
onClick: () => handleDeleteClick(upiId),
|
|
153
|
+
"data-testid": "menu-dropdown-delete-btn"
|
|
154
|
+
}]
|
|
155
|
+
})]
|
|
156
|
+
})
|
|
157
|
+
}, {
|
|
158
|
+
title: i18next.t("neetoPayments.common.createdAt"),
|
|
159
|
+
dataIndex: "createdAt",
|
|
160
|
+
key: "createdAt",
|
|
161
|
+
render: utils.dateFormat.dateTime
|
|
162
|
+
}];
|
|
163
|
+
|
|
164
|
+
const List = ({
|
|
165
|
+
holdableId,
|
|
166
|
+
upiIds,
|
|
167
|
+
keysToInvalidateOnDelete
|
|
168
|
+
}) => {
|
|
169
|
+
const {
|
|
170
|
+
t
|
|
171
|
+
} = reactI18next.useTranslation();
|
|
172
|
+
const [isAlertOpen, setIsAlertOpen] = react.useState(false);
|
|
173
|
+
const [selectedUpiId, setSelectedUpiId] = react.useState({});
|
|
174
|
+
const {
|
|
175
|
+
mutate: deleteVpa
|
|
176
|
+
} = useDestroyVpa(keysToInvalidateOnDelete);
|
|
177
|
+
const handleOpenDeleteModal = id => {
|
|
178
|
+
setSelectedUpiId(id);
|
|
179
|
+
setIsAlertOpen(true);
|
|
180
|
+
};
|
|
181
|
+
const handleAlertClose = () => {
|
|
182
|
+
setSelectedUpiId({});
|
|
183
|
+
setIsAlertOpen(false);
|
|
184
|
+
};
|
|
185
|
+
const handleAlertSubmit = () => {
|
|
186
|
+
deleteVpa({
|
|
187
|
+
id: selectedUpiId?.id,
|
|
188
|
+
holdableId
|
|
189
|
+
});
|
|
190
|
+
setIsAlertOpen(false);
|
|
191
|
+
};
|
|
192
|
+
if (ramda.isEmpty(upiIds)) {
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
196
|
+
className: "w-full max-w-3xl mx-auto",
|
|
197
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Table, {
|
|
198
|
+
columnData: getColumnData(handleOpenDeleteModal),
|
|
199
|
+
rowData: upiIds
|
|
200
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoui.Alert, {
|
|
201
|
+
isOpen: isAlertOpen,
|
|
202
|
+
title: t("neetoPayments.upi.alert.title"),
|
|
203
|
+
message: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
204
|
+
components: {
|
|
205
|
+
b: /*#__PURE__*/jsxRuntime.jsx("strong", {})
|
|
206
|
+
},
|
|
207
|
+
i18nKey: "neetoPayments.upi.alert.message",
|
|
208
|
+
values: {
|
|
209
|
+
upiId: selectedUpiId.address
|
|
210
|
+
}
|
|
211
|
+
}),
|
|
212
|
+
onClose: handleAlertClose,
|
|
213
|
+
onSubmit: handleAlertSubmit
|
|
214
|
+
})]
|
|
215
|
+
});
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
const ManualUpiConnect = ({
|
|
219
|
+
holdableId,
|
|
220
|
+
keysToInvalidateOnDelete = [],
|
|
221
|
+
keysToInvalidateOnCreate = []
|
|
222
|
+
}) => {
|
|
223
|
+
const {
|
|
224
|
+
data: {
|
|
225
|
+
vpas: upiIds = []
|
|
226
|
+
} = {},
|
|
227
|
+
isLoading
|
|
228
|
+
} = useFetchVpas(holdableId);
|
|
229
|
+
if (isLoading) {
|
|
230
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
231
|
+
className: "flex items-center justify-center w-full h-full",
|
|
232
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Spinner, {})
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
236
|
+
className: "flex flex-col items-start w-full",
|
|
237
|
+
children: [upiIds.length < 3 && /*#__PURE__*/jsxRuntime.jsx(Add, {
|
|
238
|
+
holdableId,
|
|
239
|
+
keysToInvalidateOnCreate
|
|
240
|
+
}), /*#__PURE__*/jsxRuntime.jsx(List, {
|
|
241
|
+
holdableId,
|
|
242
|
+
keysToInvalidateOnDelete,
|
|
243
|
+
upiIds
|
|
244
|
+
})]
|
|
245
|
+
});
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
module.exports = ManualUpiConnect;
|
|
249
|
+
//# sourceMappingURL=ManualUpiConnect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManualUpiConnect.js","sources":["../../app/javascript/src/apis/manual_upi/vpas.js","../../app/javascript/src/hooks/reactQuery/manualUpi/useVpasApi.js","../../app/javascript/src/components/ManualUpiConnect/constants.js","../../app/javascript/src/components/ManualUpiConnect/Add.jsx","../../app/javascript/src/components/ManualUpiConnect/utils.jsx","../../app/javascript/src/components/ManualUpiConnect/List.jsx","../../app/javascript/src/components/ManualUpiConnect/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst list = holdableId =>\n axios.get(`${BASE_URL}/api/v1/manual_upi/vpas`, {\n params: { holdableId },\n });\n\nconst create = payload =>\n axios.post(`${BASE_URL}/api/v1/manual_upi/vpas`, payload);\n\nconst destroy = ({ id, holdableId }) =>\n axios.delete(`${BASE_URL}/api/v1/manual_upi/vpas/${id}`, {\n params: { holdableId },\n });\n\nconst vpasApi = { list, create, destroy };\n\nexport default vpasApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport vpasApi from \"apis/manual_upi/vpas\";\nimport { QUERY_KEYS } from \"src/common/queryConstants\";\n\nexport const useFetchVpas = (holdableId, options = {}) =>\n useQuery({\n queryKey: [QUERY_KEYS.VPAS_LIST, holdableId],\n queryFn: () => vpasApi.list(holdableId),\n ...options,\n });\n\nexport const useCreateVpa = (keysToInvalidateOnCreate = []) =>\n useMutationWithInvalidation(vpasApi.create, {\n keysToInvalidate: [[QUERY_KEYS.VPAS_LIST], ...keysToInvalidateOnCreate],\n });\n\nexport const useDestroyVpa = (keysToInvalidateOnDelete = []) =>\n useMutationWithInvalidation(vpasApi.destroy, {\n keysToInvalidate: [[QUERY_KEYS.VPAS_LIST], ...keysToInvalidateOnDelete],\n });\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const VALIDATION_SCHEMA = yup.object({\n upiId: yup\n .string()\n .matches(\n /^[a-zA-Z0-9][a-zA-Z0-9._-]{2,30}@[a-zA-Z][a-zA-Z0-9]{2,20}$/,\n t(\"neetoPayments.upi.form.validation.invalidUpi\")\n )\n .required(t(\"neetoPayments.upi.form.validation.required\")),\n});\n","import CardLayout from \"neetomolecules/CardLayout\";\nimport { ActionBlock, Form, Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { useCreateVpa } from \"hooks/reactQuery/manualUpi/useVpasApi\";\n\nimport { VALIDATION_SCHEMA } from \"./constants\";\n\nconst Add = ({ holdableId, keysToInvalidateOnCreate }) => {\n const { t } = useTranslation();\n const history = useHistory();\n const { isPending: isCreatingVpa, mutate: createVpa } = useCreateVpa(\n keysToInvalidateOnCreate\n );\n\n return (\n <Form\n className=\"w-full\"\n formikProps={{\n initialValues: { upiId: \"\" },\n onSubmit: (values, { resetForm }) => {\n createVpa({ holdableId, address: values.upiId });\n resetForm();\n },\n validationSchema: VALIDATION_SCHEMA,\n }}\n >\n {({ dirty }) => (\n <CardLayout\n actionBlock={\n <ActionBlock\n cancelButtonProps={{ onClick: history.goBack }}\n isSubmitting={isCreatingVpa}\n submitButtonProps={{\n label: t(\"neetoPayments.upi.form.add\"),\n disabled: !dirty || isCreatingVpa,\n }}\n />\n }\n >\n <Input\n className=\"w-full\"\n label={t(\"neetoPayments.upi.form.enterUpi\")}\n name=\"upiId\"\n placeholder={t(\"neetoPayments.upi.form.enterUpi\")}\n />\n </CardLayout>\n )}\n </Form>\n );\n};\n\nexport default Add;\n","import { t } from \"i18next\";\n\nimport { dateFormat } from \"neetocommons/utils\";\nimport MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport { Typography } from \"neetoui\";\n\nexport const getColumnData = handleDeleteClick => [\n {\n title: t(\"neetoPayments.common.upiId\"),\n dataIndex: \"address\",\n key: \"address\",\n width: 272,\n render: (_, upiId) => (\n <div className=\"flex items-center justify-between gap-3\">\n <Typography className=\"w-4/5\" style=\"body2\">\n {upiId.address}\n </Typography>\n <MoreDropdown\n dropdownButtonProps={{ \"data-testid\": \"upi-more-dropdown\" }}\n dropdownProps={{ strategy: \"fixed\" }}\n menuItems={[\n {\n key: \"delete-meeting\",\n label: t(\"neetoPayments.common.delete\"),\n onClick: () => handleDeleteClick(upiId),\n \"data-testid\": \"menu-dropdown-delete-btn\",\n },\n ]}\n />\n </div>\n ),\n },\n {\n title: t(\"neetoPayments.common.createdAt\"),\n dataIndex: \"createdAt\",\n key: \"createdAt\",\n render: dateFormat.dateTime,\n },\n];\n","import { useState } from \"react\";\n\nimport { Alert, Table } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { useDestroyVpa } from \"hooks/reactQuery/manualUpi/useVpasApi\";\n\nimport { getColumnData } from \"./utils\";\n\nconst List = ({ holdableId, upiIds, keysToInvalidateOnDelete }) => {\n const { t } = useTranslation();\n\n const [isAlertOpen, setIsAlertOpen] = useState(false);\n const [selectedUpiId, setSelectedUpiId] = useState({});\n\n const { mutate: deleteVpa } = useDestroyVpa(keysToInvalidateOnDelete);\n\n const handleOpenDeleteModal = id => {\n setSelectedUpiId(id);\n setIsAlertOpen(true);\n };\n\n const handleAlertClose = () => {\n setSelectedUpiId({});\n setIsAlertOpen(false);\n };\n\n const handleAlertSubmit = () => {\n deleteVpa({ id: selectedUpiId?.id, holdableId });\n setIsAlertOpen(false);\n };\n\n if (isEmpty(upiIds)) {\n return null;\n }\n\n return (\n <div className=\"w-full max-w-3xl mx-auto\">\n <Table\n columnData={getColumnData(handleOpenDeleteModal)}\n rowData={upiIds}\n />\n <Alert\n isOpen={isAlertOpen}\n title={t(\"neetoPayments.upi.alert.title\")}\n message={\n <Trans\n components={{ b: <strong /> }}\n i18nKey=\"neetoPayments.upi.alert.message\"\n values={{ upiId: selectedUpiId.address }}\n />\n }\n onClose={handleAlertClose}\n onSubmit={handleAlertSubmit}\n />\n </div>\n );\n};\n\nexport default List;\n","import { Spinner } from \"neetoui\";\n\nimport { useFetchVpas } from \"hooks/reactQuery/manualUpi/useVpasApi\";\n\nimport Add from \"./Add\";\nimport List from \"./List\";\n\nconst ManualUpiConnect = ({\n holdableId,\n keysToInvalidateOnDelete = [],\n keysToInvalidateOnCreate = [],\n}) => {\n const { data: { vpas: upiIds = [] } = {}, isLoading } =\n useFetchVpas(holdableId);\n\n if (isLoading) {\n return (\n <div className=\"flex items-center justify-center w-full h-full\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col items-start w-full\">\n {upiIds.length < 3 && (\n <Add {...{ holdableId, keysToInvalidateOnCreate }} />\n )}\n <List {...{ holdableId, keysToInvalidateOnDelete, upiIds }} />\n </div>\n );\n};\n\nexport default ManualUpiConnect;\n"],"names":["list","holdableId","axios","get","BASE_URL","params","create","payload","post","destroy","id","delete","vpasApi","useFetchVpas","options","useQuery","queryKey","QUERY_KEYS","VPAS_LIST","queryFn","useCreateVpa","keysToInvalidateOnCreate","useMutationWithInvalidation","keysToInvalidate","useDestroyVpa","keysToInvalidateOnDelete","VALIDATION_SCHEMA","yup","object","upiId","string","matches","t","required","Add","useTranslation","history","useHistory","isPending","isCreatingVpa","mutate","createVpa","_jsx","Form","className","formikProps","initialValues","onSubmit","values","resetForm","address","validationSchema","children","dirty","CardLayout","actionBlock","ActionBlock","cancelButtonProps","onClick","goBack","isSubmitting","submitButtonProps","label","disabled","Input","name","placeholder","getColumnData","handleDeleteClick","title","dataIndex","key","width","render","_","_jsxs","Typography","style","MoreDropdown","dropdownButtonProps","dropdownProps","strategy","menuItems","dateFormat","dateTime","List","upiIds","isAlertOpen","setIsAlertOpen","useState","selectedUpiId","setSelectedUpiId","deleteVpa","handleOpenDeleteModal","handleAlertClose","handleAlertSubmit","isEmpty","Table","columnData","rowData","Alert","isOpen","message","Trans","components","b","i18nKey","onClose","ManualUpiConnect","data","vpas","isLoading","Spinner","length"],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var neetocist = require('neetocist');
|
|
4
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
5
|
+
var formik = require('@bigbinary/neetoui/formik');
|
|
6
|
+
var QRCodeImage = require('qrcode.react');
|
|
7
|
+
var ramda = require('ramda');
|
|
8
|
+
var reactI18next = require('react-i18next');
|
|
9
|
+
var usePaymentApi = require('./usePaymentApi-Bl8jWvnG.js');
|
|
10
|
+
var constants = require('./index-D6V3Vofs.js');
|
|
11
|
+
var i18next = require('i18next');
|
|
12
|
+
var yup = require('yup');
|
|
13
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
14
|
+
require('@tanstack/react-query');
|
|
15
|
+
require('neetocommons/react-utils');
|
|
16
|
+
require('axios');
|
|
17
|
+
require('./queryConstants-Dc6wh21D.js');
|
|
18
|
+
require('neetocommons/constants');
|
|
19
|
+
require('decimal.js');
|
|
20
|
+
require('neetocommons/utils');
|
|
21
|
+
|
|
22
|
+
function _interopNamespaceDefault(e) {
|
|
23
|
+
var n = Object.create(null);
|
|
24
|
+
if (e) {
|
|
25
|
+
Object.keys(e).forEach(function (k) {
|
|
26
|
+
if (k !== 'default') {
|
|
27
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
28
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return e[k]; }
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
n.default = e;
|
|
36
|
+
return Object.freeze(n);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
40
|
+
|
|
41
|
+
const VALIDATION_SCHEMA = yup__namespace.object({
|
|
42
|
+
identifier: yup__namespace.number().typeError(i18next.t("neetoPayments.validations.invalidField", {
|
|
43
|
+
entity: i18next.t("neetoPayments.common.transactionId")
|
|
44
|
+
})).required(i18next.t("neetoPayments.upi.payment.transaction.required")).test("is-integer", i18next.t("neetoPayments.validations.invalidField", {
|
|
45
|
+
entity: i18next.t("neetoPayments.common.transactionId")
|
|
46
|
+
}), value => Number.isInteger(value)).test("len", i18next.t("neetoPayments.validations.length", {
|
|
47
|
+
length: 12
|
|
48
|
+
}), value => value?.toString().length === 12)
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
const ManualUpiPayment = ({
|
|
52
|
+
fee,
|
|
53
|
+
payableId,
|
|
54
|
+
tip,
|
|
55
|
+
amount,
|
|
56
|
+
discountCode,
|
|
57
|
+
customAmount,
|
|
58
|
+
handleCancel,
|
|
59
|
+
payableType = null,
|
|
60
|
+
onBeforePayment = neetocist.noop,
|
|
61
|
+
onFailedPayment = neetocist.noop,
|
|
62
|
+
onSuccessfulPayment = neetocist.noop
|
|
63
|
+
}) => {
|
|
64
|
+
const {
|
|
65
|
+
t
|
|
66
|
+
} = reactI18next.useTranslation();
|
|
67
|
+
const vpaIds = ramda.pluck("address", fee?.vpas);
|
|
68
|
+
const amountToUpi = customAmount || amount;
|
|
69
|
+
const {
|
|
70
|
+
isPending,
|
|
71
|
+
mutate: createPayment
|
|
72
|
+
} = usePaymentApi.useCreateUpiPayment({
|
|
73
|
+
onSuccess: onSuccessfulPayment,
|
|
74
|
+
onError: onFailedPayment
|
|
75
|
+
});
|
|
76
|
+
const handleSubmit = values => {
|
|
77
|
+
onBeforePayment();
|
|
78
|
+
const payload = {
|
|
79
|
+
...values,
|
|
80
|
+
payableId,
|
|
81
|
+
customAmount,
|
|
82
|
+
payableType,
|
|
83
|
+
discountCode,
|
|
84
|
+
tipAttributes: tip
|
|
85
|
+
};
|
|
86
|
+
createPayment(payload);
|
|
87
|
+
};
|
|
88
|
+
return /*#__PURE__*/jsxRuntime.jsx(formik.Form, {
|
|
89
|
+
className: "space-y-4",
|
|
90
|
+
formikProps: {
|
|
91
|
+
onSubmit: handleSubmit,
|
|
92
|
+
initialValues: {
|
|
93
|
+
identifier: ""
|
|
94
|
+
},
|
|
95
|
+
enableReinitialize: true,
|
|
96
|
+
validationSchema: VALIDATION_SCHEMA
|
|
97
|
+
},
|
|
98
|
+
children: ({
|
|
99
|
+
dirty
|
|
100
|
+
}) => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
101
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
|
|
102
|
+
style: "body1",
|
|
103
|
+
children: t("neetoPayments.upi.payment.vpaText", {
|
|
104
|
+
count: vpaIds.length
|
|
105
|
+
})
|
|
106
|
+
}), neetocist.isPresent(vpaIds) && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
107
|
+
className: "grid grid-cols-1 gap-8 gap-y-4 sm:grid-cols-2",
|
|
108
|
+
children: vpaIds.map(vpaId => /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
109
|
+
className: "flex flex-col items-center justify-center",
|
|
110
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(QRCodeImage, {
|
|
111
|
+
size: 256,
|
|
112
|
+
style: {
|
|
113
|
+
width: 80,
|
|
114
|
+
height: 80
|
|
115
|
+
},
|
|
116
|
+
value: constants.getQrCodeValue(vpaId, amountToUpi)
|
|
117
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
|
|
118
|
+
className: "w-full mt-2 text-center wrap-break-word",
|
|
119
|
+
style: "body2",
|
|
120
|
+
children: vpaId
|
|
121
|
+
})]
|
|
122
|
+
}, vpaId))
|
|
123
|
+
}), /*#__PURE__*/jsxRuntime.jsx(formik.Input, {
|
|
124
|
+
required: true,
|
|
125
|
+
label: t("neetoPayments.upi.payment.transaction.label"),
|
|
126
|
+
name: "identifier",
|
|
127
|
+
placeholder: t("neetoPayments.upi.payment.transaction.placeholder"),
|
|
128
|
+
type: "number"
|
|
129
|
+
}), /*#__PURE__*/jsxRuntime.jsx(formik.ActionBlock, {
|
|
130
|
+
cancelButtonProps: {
|
|
131
|
+
label: t("neetoPayments.upi.payment.buttons.back"),
|
|
132
|
+
onClick: handleCancel,
|
|
133
|
+
disabled: isPending
|
|
134
|
+
},
|
|
135
|
+
submitButtonProps: {
|
|
136
|
+
label: t("neetoPayments.upi.payment.buttons.submit"),
|
|
137
|
+
disabled: !dirty || isPending,
|
|
138
|
+
loading: isPending
|
|
139
|
+
}
|
|
140
|
+
})]
|
|
141
|
+
})
|
|
142
|
+
});
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
module.exports = ManualUpiPayment;
|
|
146
|
+
//# sourceMappingURL=ManualUpiPayment.js.map
|
|
@@ -0,0 +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 * as yup from \"yup\";\n\nexport const VALIDATION_SCHEMA = yup.object({\n identifier: yup\n .number()\n .typeError(\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n })\n )\n .required(t(\"neetoPayments.upi.payment.transaction.required\"))\n .test(\n \"is-integer\",\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n }),\n value => Number.isInteger(value)\n )\n .test(\n \"len\",\n t(\"neetoPayments.validations.length\", { length: 12 }),\n value => value?.toString().length === 12\n ),\n});\n","import { noop, isPresent } from \"neetocist\";\nimport { 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 { VALIDATION_SCHEMA } 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\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 handleSubmit = values => {\n onBeforePayment();\n const payload = {\n ...values,\n payableId,\n customAmount,\n payableType,\n discountCode,\n tipAttributes: tip,\n };\n createPayment(payload);\n };\n\n return (\n <Form\n className=\"space-y-4\"\n formikProps={{\n onSubmit: handleSubmit,\n initialValues: { identifier: \"\" },\n enableReinitialize: true,\n validationSchema: VALIDATION_SCHEMA,\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 required\n label={t(\"neetoPayments.upi.payment.transaction.label\")}\n name=\"identifier\"\n placeholder={t(\"neetoPayments.upi.payment.transaction.placeholder\")}\n type=\"number\"\n />\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 || isPending,\n loading: isPending,\n }}\n />\n </>\n )}\n </Form>\n );\n};\n\nexport default ManualUpiPayment;\n"],"names":["VALIDATION_SCHEMA","yup","object","identifier","number","typeError","t","entity","required","test","value","Number","isInteger","length","toString","ManualUpiPayment","fee","payableId","tip","amount","discountCode","customAmount","handleCancel","payableType","onBeforePayment","noop","onFailedPayment","onSuccessfulPayment","useTranslation","vpaIds","pluck","vpas","amountToUpi","isPending","mutate","createPayment","useCreateUpiPayment","onSuccess","onError","handleSubmit","values","payload","tipAttributes","_jsx","Form","className","formikProps","onSubmit","initialValues","enableReinitialize","validationSchema","children","dirty","_jsxs","_Fragment","Typography","style","count","isPresent","map","vpaId","QRCodeImage","size","width","height","getQrCodeValue","Input","label","name","placeholder","type","ActionBlock","cancelButtonProps","onClick","disabled","submitButtonProps","loading"],"mappings":"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"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var react = require('react');
|
|
4
|
+
var neetocist = require('neetocist');
|
|
5
|
+
var ramda = require('ramda');
|
|
6
|
+
var reactI18next = require('react-i18next');
|
|
7
|
+
var usePaymentApi = require('./usePaymentApi-Bl8jWvnG.js');
|
|
8
|
+
var neetoui = require('@bigbinary/neetoui');
|
|
9
|
+
var formik = require('@bigbinary/neetoui/formik');
|
|
10
|
+
var i18next = require('i18next');
|
|
11
|
+
var yup = require('yup');
|
|
12
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
13
|
+
require('@tanstack/react-query');
|
|
14
|
+
require('neetocommons/react-utils');
|
|
15
|
+
require('axios');
|
|
16
|
+
require('./index-D6V3Vofs.js');
|
|
17
|
+
require('neetocommons/constants');
|
|
18
|
+
require('decimal.js');
|
|
19
|
+
require('neetocommons/utils');
|
|
20
|
+
require('./queryConstants-Dc6wh21D.js');
|
|
21
|
+
|
|
22
|
+
function _interopNamespaceDefault(e) {
|
|
23
|
+
var n = Object.create(null);
|
|
24
|
+
if (e) {
|
|
25
|
+
Object.keys(e).forEach(function (k) {
|
|
26
|
+
if (k !== 'default') {
|
|
27
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
28
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return e[k]; }
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
n.default = e;
|
|
36
|
+
return Object.freeze(n);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
40
|
+
|
|
41
|
+
const INITIAL_VALUE = {
|
|
42
|
+
vpaId: "",
|
|
43
|
+
notes: ""
|
|
44
|
+
};
|
|
45
|
+
const VALIDATION_SCHEMA = yup__namespace.object({
|
|
46
|
+
vpaId: yup__namespace.string().required(i18next.t("neetoPayments.upi.confirmModal.vpasIdRequired"))
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const ManualUpiPaymentConfirmButton = ({
|
|
50
|
+
vpas,
|
|
51
|
+
identifier,
|
|
52
|
+
paymentId,
|
|
53
|
+
manualUpiId,
|
|
54
|
+
payableId,
|
|
55
|
+
onSuccess = neetocist.noop,
|
|
56
|
+
keysToInvalidate = []
|
|
57
|
+
}) => {
|
|
58
|
+
const [isModalOpen, setIsModalOpen] = react.useState(false);
|
|
59
|
+
const {
|
|
60
|
+
t
|
|
61
|
+
} = reactI18next.useTranslation();
|
|
62
|
+
const onSuccessfulUpdate = () => {
|
|
63
|
+
setIsModalOpen(false);
|
|
64
|
+
onSuccess();
|
|
65
|
+
};
|
|
66
|
+
const {
|
|
67
|
+
mutate: updateUpiPayment,
|
|
68
|
+
isPending
|
|
69
|
+
} = usePaymentApi.useUpdateUpiPayment({
|
|
70
|
+
id: paymentId,
|
|
71
|
+
manualUpiId,
|
|
72
|
+
keysToInvalidate,
|
|
73
|
+
options: {
|
|
74
|
+
onSuccess: onSuccessfulUpdate
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
const initialValues = vpas.length === 1 ? ramda.mergeLeft({
|
|
78
|
+
vpaId: vpas[0].id
|
|
79
|
+
}, INITIAL_VALUE) : INITIAL_VALUE;
|
|
80
|
+
const onClose = () => setIsModalOpen(false);
|
|
81
|
+
const handleSubmit = ({
|
|
82
|
+
vpaId,
|
|
83
|
+
notes
|
|
84
|
+
}) => {
|
|
85
|
+
const vpa = neetocist.findBy({
|
|
86
|
+
id: vpaId
|
|
87
|
+
}, vpas);
|
|
88
|
+
const payload = {
|
|
89
|
+
notes,
|
|
90
|
+
vpaId,
|
|
91
|
+
payableId,
|
|
92
|
+
upiId: vpa.upiId,
|
|
93
|
+
status: "successful"
|
|
94
|
+
};
|
|
95
|
+
updateUpiPayment(payload);
|
|
96
|
+
};
|
|
97
|
+
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
98
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
|
|
99
|
+
"data-testid": "confirm-payment-btn",
|
|
100
|
+
label: t("neetoPayments.upi.payment.buttons.confirmPayment"),
|
|
101
|
+
loading: isPending,
|
|
102
|
+
size: "small",
|
|
103
|
+
onClick: () => setIsModalOpen(true)
|
|
104
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(neetoui.Modal, {
|
|
105
|
+
onClose,
|
|
106
|
+
isOpen: isModalOpen,
|
|
107
|
+
size: "large",
|
|
108
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Header, {
|
|
109
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
|
|
110
|
+
style: "h2",
|
|
111
|
+
children: t("neetoPayments.upi.confirmModal.title")
|
|
112
|
+
})
|
|
113
|
+
}), /*#__PURE__*/jsxRuntime.jsx(formik.Form, {
|
|
114
|
+
formikProps: {
|
|
115
|
+
initialValues,
|
|
116
|
+
enableReinitialize: true,
|
|
117
|
+
onSubmit: handleSubmit,
|
|
118
|
+
validationSchema: VALIDATION_SCHEMA
|
|
119
|
+
},
|
|
120
|
+
children: ({
|
|
121
|
+
setFieldValue,
|
|
122
|
+
dirty,
|
|
123
|
+
isSubmitting
|
|
124
|
+
}) => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
125
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Body, {
|
|
126
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
127
|
+
className: "flex flex-col space-y-4",
|
|
128
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
|
|
129
|
+
lineHeight: "normal",
|
|
130
|
+
style: "body2",
|
|
131
|
+
children: t("neetoPayments.upi.confirmModal.upiTransactionId", {
|
|
132
|
+
identifier
|
|
133
|
+
})
|
|
134
|
+
}), /*#__PURE__*/jsxRuntime.jsx(formik.Select, {
|
|
135
|
+
label: t("neetoPayments.upi.confirmModal.accountIdLabel"),
|
|
136
|
+
name: "vpaId",
|
|
137
|
+
options: vpas?.map(({
|
|
138
|
+
address,
|
|
139
|
+
id
|
|
140
|
+
}) => ({
|
|
141
|
+
label: address,
|
|
142
|
+
value: id
|
|
143
|
+
})),
|
|
144
|
+
onChange: ({
|
|
145
|
+
value
|
|
146
|
+
}) => setFieldValue("vpaId", value)
|
|
147
|
+
}), /*#__PURE__*/jsxRuntime.jsx(formik.Textarea, {
|
|
148
|
+
"data-testid": "confirm-booking-modal-input-textfield",
|
|
149
|
+
label: t("neetoPayments.upi.confirmModal.notes"),
|
|
150
|
+
name: "notes",
|
|
151
|
+
placeholder: t("neetoPayments.upi.confirmModal.notesPlaceholder")
|
|
152
|
+
})]
|
|
153
|
+
})
|
|
154
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Footer, {
|
|
155
|
+
className: "space-x-2",
|
|
156
|
+
children: /*#__PURE__*/jsxRuntime.jsx(formik.ActionBlock, {
|
|
157
|
+
isSubmitting: isPending,
|
|
158
|
+
position: "right",
|
|
159
|
+
cancelButtonProps: {
|
|
160
|
+
onClick: onClose,
|
|
161
|
+
style: "tertiary"
|
|
162
|
+
},
|
|
163
|
+
submitButtonProps: {
|
|
164
|
+
disabled: isSubmitting || isPending || vpas.length !== 1 && !dirty,
|
|
165
|
+
label: t("neetoPayments.common.confirm")
|
|
166
|
+
}
|
|
167
|
+
})
|
|
168
|
+
})]
|
|
169
|
+
})
|
|
170
|
+
})]
|
|
171
|
+
})]
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
module.exports = ManualUpiPaymentConfirmButton;
|
|
176
|
+
//# sourceMappingURL=ManualUpiPaymentConfirmButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManualUpiPaymentConfirmButton.js","sources":["../../app/javascript/src/components/ManualUpiPaymentConfirmButton/constants.js","../../app/javascript/src/components/ManualUpiPaymentConfirmButton/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const INITIAL_VALUE = { vpaId: \"\", notes: \"\" };\n\nexport const VALIDATION_SCHEMA = yup.object({\n vpaId: yup\n .string()\n .required(t(\"neetoPayments.upi.confirmModal.vpasIdRequired\")),\n});\n","import { useState } from \"react\";\n\nimport { findBy, noop } from \"neetocist\";\nimport { mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useUpdateUpiPayment } from \"hooks/reactQuery/manualUpi/usePaymentApi\";\nimport { Button, Modal, Typography } from \"neetoui\";\nimport { Form, Textarea, Select, ActionBlock } from \"neetoui/formik\";\n\nimport { INITIAL_VALUE, VALIDATION_SCHEMA } from \"./constants\";\n\nconst ManualUpiPaymentConfirmButton = ({\n vpas,\n identifier,\n paymentId,\n manualUpiId,\n payableId,\n onSuccess = noop,\n keysToInvalidate = [],\n}) => {\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const onSuccessfulUpdate = () => {\n setIsModalOpen(false);\n onSuccess();\n };\n\n const { mutate: updateUpiPayment, isPending } = useUpdateUpiPayment({\n id: paymentId,\n manualUpiId,\n keysToInvalidate,\n options: { onSuccess: onSuccessfulUpdate },\n });\n\n const initialValues =\n vpas.length === 1\n ? mergeLeft({ vpaId: vpas[0].id }, INITIAL_VALUE)\n : INITIAL_VALUE;\n\n const onClose = () => setIsModalOpen(false);\n\n const handleSubmit = ({ vpaId, notes }) => {\n const vpa = findBy({ id: vpaId }, vpas);\n const payload = {\n notes,\n vpaId,\n payableId,\n upiId: vpa.upiId,\n status: \"successful\",\n };\n updateUpiPayment(payload);\n };\n\n return (\n <>\n <Button\n data-testid=\"confirm-payment-btn\"\n label={t(\"neetoPayments.upi.payment.buttons.confirmPayment\")}\n loading={isPending}\n size=\"small\"\n onClick={() => setIsModalOpen(true)}\n />\n <Modal {...{ onClose }} isOpen={isModalOpen} size=\"large\">\n <Modal.Header>\n <Typography style=\"h2\">\n {t(\"neetoPayments.upi.confirmModal.title\")}\n </Typography>\n </Modal.Header>\n <Form\n formikProps={{\n initialValues,\n enableReinitialize: true,\n onSubmit: handleSubmit,\n validationSchema: VALIDATION_SCHEMA,\n }}\n >\n {({ setFieldValue, dirty, isSubmitting }) => (\n <>\n <Modal.Body>\n <div className=\"flex flex-col space-y-4\">\n <Typography lineHeight=\"normal\" style=\"body2\">\n {t(\"neetoPayments.upi.confirmModal.upiTransactionId\", {\n identifier,\n })}\n </Typography>\n <Select\n label={t(\"neetoPayments.upi.confirmModal.accountIdLabel\")}\n name=\"vpaId\"\n options={vpas?.map(({ address, id }) => ({\n label: address,\n value: id,\n }))}\n onChange={({ value }) => setFieldValue(\"vpaId\", value)}\n />\n <Textarea\n data-testid=\"confirm-booking-modal-input-textfield\"\n label={t(\"neetoPayments.upi.confirmModal.notes\")}\n name=\"notes\"\n placeholder={t(\n \"neetoPayments.upi.confirmModal.notesPlaceholder\"\n )}\n />\n </div>\n </Modal.Body>\n <Modal.Footer className=\"space-x-2\">\n <ActionBlock\n isSubmitting={isPending}\n position=\"right\"\n cancelButtonProps={{\n onClick: onClose,\n style: \"tertiary\",\n }}\n submitButtonProps={{\n disabled:\n isSubmitting ||\n isPending ||\n (vpas.length !== 1 && !dirty),\n label: t(\"neetoPayments.common.confirm\"),\n }}\n />\n </Modal.Footer>\n </>\n )}\n </Form>\n </Modal>\n </>\n );\n};\n\nexport default ManualUpiPaymentConfirmButton;\n"],"names":["INITIAL_VALUE","vpaId","notes","VALIDATION_SCHEMA","yup","object","string","required","t","ManualUpiPaymentConfirmButton","vpas","identifier","paymentId","manualUpiId","payableId","onSuccess","noop","keysToInvalidate","isModalOpen","setIsModalOpen","useState","useTranslation","onSuccessfulUpdate","mutate","updateUpiPayment","isPending","useUpdateUpiPayment","id","options","initialValues","length","mergeLeft","onClose","handleSubmit","vpa","findBy","payload","upiId","status","_jsxs","_Fragment","children","_jsx","Button","label","loading","size","onClick","Modal","isOpen","Header","Typography","style","Form","formikProps","enableReinitialize","onSubmit","validationSchema","setFieldValue","dirty","isSubmitting","Body","className","lineHeight","Select","name","map","address","value","onChange","Textarea","placeholder","Footer","ActionBlock","position","cancelButtonProps","submitButtonProps","disabled"],"mappings":"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"}
|