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