@bigbinary/neeto-payments-frontend 3.3.48 → 4.0.1

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 (64) hide show
  1. package/README.md +2 -2
  2. package/app/javascript/src/translations/en.json +6 -1
  3. package/dist/AccountsDashboard.js +1 -1
  4. package/dist/CustomerCancelRecurringPaymentForm.js +1 -1
  5. package/dist/ManualUpiConnect.js +256 -0
  6. package/dist/ManualUpiConnect.js.map +1 -0
  7. package/dist/{UpiPayment.js → ManualUpiPayment.js} +6 -4
  8. package/dist/ManualUpiPayment.js.map +1 -0
  9. package/dist/ManualUpiPaymentConfirmButton.js +7 -30
  10. package/dist/ManualUpiPaymentConfirmButton.js.map +1 -1
  11. package/dist/{ConfirmUpiPaymentButton.js → ManualUpiPaymentRejectButton.js} +37 -55
  12. package/dist/ManualUpiPaymentRejectButton.js.map +1 -0
  13. package/dist/PaymentsDashboard.js +1 -1
  14. package/dist/PayoutsDashboard.js +2 -2
  15. package/dist/PayoutsPage.js +2 -2
  16. package/dist/RecurringPaymentSettings.js +1 -1
  17. package/dist/RefundsDashboard.js +1 -1
  18. package/dist/SplitTransfersDashboard.js +1 -1
  19. package/dist/TaxesDashboard.js +1 -1
  20. package/dist/cjs/AccountsDashboard.js +1 -1
  21. package/dist/cjs/CustomerCancelRecurringPaymentForm.js +1 -1
  22. package/dist/cjs/ManualUpiConnect.js +277 -0
  23. package/dist/cjs/ManualUpiConnect.js.map +1 -0
  24. package/dist/cjs/{UpiPayment.js → ManualUpiPayment.js} +7 -5
  25. package/dist/cjs/ManualUpiPayment.js.map +1 -0
  26. package/dist/cjs/ManualUpiPaymentConfirmButton.js +8 -31
  27. package/dist/cjs/ManualUpiPaymentConfirmButton.js.map +1 -1
  28. package/dist/cjs/{ConfirmUpiPaymentButton.js → ManualUpiPaymentRejectButton.js} +36 -73
  29. package/dist/cjs/ManualUpiPaymentRejectButton.js.map +1 -0
  30. package/dist/cjs/PaymentsDashboard.js +1 -1
  31. package/dist/cjs/PayoutsDashboard.js +2 -2
  32. package/dist/cjs/PayoutsPage.js +2 -2
  33. package/dist/cjs/RecurringPaymentSettings.js +1 -1
  34. package/dist/cjs/RefundsDashboard.js +1 -1
  35. package/dist/cjs/SplitTransfersDashboard.js +1 -1
  36. package/dist/cjs/TaxesDashboard.js +1 -1
  37. package/dist/cjs/index.js +15 -15
  38. package/dist/cjs/{queryConstants-DGg4cX3r.js → queryConstants-D2ARfy8-.js} +3 -2
  39. package/dist/cjs/queryConstants-D2ARfy8-.js.map +1 -0
  40. package/dist/cjs/{usePaymentsApi-BulmZ4H9.js → usePaymentApi-CMOLq2VR.js} +26 -12
  41. package/dist/cjs/usePaymentApi-CMOLq2VR.js.map +1 -0
  42. package/dist/cjs/{usePlatformApi-C1-u-hze.js → usePlatformApi-CmetBzFR.js} +2 -2
  43. package/dist/cjs/{usePlatformApi-C1-u-hze.js.map → usePlatformApi-CmetBzFR.js.map} +1 -1
  44. package/dist/index.js +12 -12
  45. package/dist/{queryConstants-mgjK5Hgk.js → queryConstants-jobxv6K1.js} +3 -2
  46. package/dist/queryConstants-jobxv6K1.js.map +1 -0
  47. package/dist/usePaymentApi-CditWIud.js +52 -0
  48. package/dist/usePaymentApi-CditWIud.js.map +1 -0
  49. package/dist/{usePlatformApi-Ca-CVxhW.js → usePlatformApi-CvRR6Wi5.js} +2 -2
  50. package/dist/{usePlatformApi-Ca-CVxhW.js.map → usePlatformApi-CvRR6Wi5.js.map} +1 -1
  51. package/package.json +5 -5
  52. package/dist/ConfirmUpiPaymentButton.js.map +0 -1
  53. package/dist/UpiConnect.js +0 -171
  54. package/dist/UpiConnect.js.map +0 -1
  55. package/dist/UpiPayment.js.map +0 -1
  56. package/dist/cjs/ConfirmUpiPaymentButton.js.map +0 -1
  57. package/dist/cjs/UpiConnect.js +0 -192
  58. package/dist/cjs/UpiConnect.js.map +0 -1
  59. package/dist/cjs/UpiPayment.js.map +0 -1
  60. package/dist/cjs/queryConstants-DGg4cX3r.js.map +0 -1
  61. package/dist/cjs/usePaymentsApi-BulmZ4H9.js.map +0 -1
  62. package/dist/queryConstants-mgjK5Hgk.js.map +0 -1
  63. package/dist/usePaymentsApi-BWiIWIWh.js +0 -38
  64. package/dist/usePaymentsApi-BWiIWIWh.js.map +0 -1
@@ -1,79 +1,78 @@
1
1
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
2
  import { useState } from 'react';
3
- import { findBy, noop } from '@bigbinary/neeto-cist';
3
+ import { noop } from '@bigbinary/neeto-cist';
4
4
  import Button from '@bigbinary/neetoui/Button';
5
5
  import Modal from '@bigbinary/neetoui/Modal';
6
6
  import Typography from '@bigbinary/neetoui/Typography';
7
7
  import Form from '@bigbinary/neetoui/formik/Form';
8
8
  import Textarea from '@bigbinary/neetoui/formik/Textarea';
9
- import Select from '@bigbinary/neetoui/formik/Select';
10
9
  import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
11
- import { mergeLeft } from 'ramda';
12
10
  import { useTranslation } from 'react-i18next';
13
- import { u as useUpdateUpiPayment } from './usePaymentsApi-BWiIWIWh.js';
14
- import { t } from 'i18next';
15
- import * as yup from 'yup';
11
+ import { a as useUpdateUpiPayment } from './usePaymentApi-CditWIud.js';
16
12
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
13
+ import '@babel/runtime/helpers/toConsumableArray';
17
14
  import '@babel/runtime/helpers/defineProperty';
18
15
  import '@tanstack/react-query';
16
+ import '@bigbinary/neeto-commons-frontend/react-utils';
19
17
  import 'axios';
20
18
  import './index-Cw8BnbrE.js';
19
+ import 'i18next';
21
20
  import '@bigbinary/neeto-commons-frontend/constants';
22
21
  import 'decimal.js';
23
22
  import '@bigbinary/neeto-commons-frontend/utils';
23
+ import 'ramda';
24
24
 
25
25
  var INITIAL_VALUE = {
26
- vpaId: "",
27
26
  notes: ""
28
27
  };
29
- var VALIDATION_SCHEMA = yup.object({
30
- vpaId: yup.string().required(t("neetoPayments.upi.confirmModal.vpasIdRequired"))
31
- });
32
28
 
33
- var ConfirmUpiPaymentButton = function ConfirmUpiPaymentButton(_ref) {
34
- var vpas = _ref.vpas,
35
- identifier = _ref.identifier,
29
+ var ManualUpiPaymentRejectButton = function ManualUpiPaymentRejectButton(_ref) {
30
+ var identifier = _ref.identifier,
36
31
  paymentId = _ref.paymentId,
32
+ manualUpiId = _ref.manualUpiId,
37
33
  payableId = _ref.payableId,
38
34
  _ref$onSuccess = _ref.onSuccess,
39
- onSuccess = _ref$onSuccess === void 0 ? noop : _ref$onSuccess;
35
+ onSuccess = _ref$onSuccess === void 0 ? noop : _ref$onSuccess,
36
+ _ref$keysToInvalidate = _ref.keysToInvalidate,
37
+ keysToInvalidate = _ref$keysToInvalidate === void 0 ? [] : _ref$keysToInvalidate;
40
38
  var _useState = useState(false),
41
39
  _useState2 = _slicedToArray(_useState, 2),
42
40
  isModalOpen = _useState2[0],
43
41
  setIsModalOpen = _useState2[1];
44
42
  var _useTranslation = useTranslation(),
45
43
  t = _useTranslation.t;
46
- var _useUpdateUpiPayment = useUpdateUpiPayment(paymentId, {
47
- onSuccess: onSuccess
44
+ var onSuccessfulUpdate = function onSuccessfulUpdate() {
45
+ setIsModalOpen(false);
46
+ onSuccess();
47
+ };
48
+ var _useUpdateUpiPayment = useUpdateUpiPayment({
49
+ id: paymentId,
50
+ manualUpiId: manualUpiId,
51
+ keysToInvalidate: keysToInvalidate,
52
+ options: {
53
+ onSuccess: onSuccessfulUpdate
54
+ }
48
55
  }),
49
56
  updateUpiPayment = _useUpdateUpiPayment.mutate,
50
57
  isPending = _useUpdateUpiPayment.isPending;
51
- var initialValues = vpas.length === 1 ? mergeLeft({
52
- vpaId: vpas[0].id
53
- }, INITIAL_VALUE) : INITIAL_VALUE;
54
58
  var onClose = function onClose() {
55
59
  return setIsModalOpen(false);
56
60
  };
57
61
  var handleSubmit = function handleSubmit(_ref2) {
58
- var vpaId = _ref2.vpaId,
59
- notes = _ref2.notes;
60
- var vpa = findBy({
61
- id: vpaId
62
- }, vpas);
62
+ var notes = _ref2.notes;
63
63
  var payload = {
64
64
  notes: notes,
65
- vpaId: vpaId,
66
65
  payableId: payableId,
67
- upiId: vpa.upiId,
68
- status: "successful"
66
+ status: "rejected"
69
67
  };
70
68
  updateUpiPayment(payload);
71
69
  };
72
70
  return /*#__PURE__*/jsxs(Fragment, {
73
71
  children: [/*#__PURE__*/jsx(Button, {
74
- label: t("neetoPayments.upi.payment.buttons.confirmPayment"),
72
+ label: t("neetoPayments.upi.payment.buttons.rejectPayment"),
75
73
  loading: isPending,
76
74
  size: "small",
75
+ style: "danger",
77
76
  onClick: function onClick() {
78
77
  return setIsModalOpen(true);
79
78
  }
@@ -84,19 +83,16 @@ var ConfirmUpiPaymentButton = function ConfirmUpiPaymentButton(_ref) {
84
83
  children: [/*#__PURE__*/jsx(Modal.Header, {
85
84
  children: /*#__PURE__*/jsx(Typography, {
86
85
  style: "h2",
87
- children: t("neetoPayments.upi.confirmModal.title")
86
+ children: t("neetoPayments.upi.rejectModal.title")
88
87
  })
89
88
  }), /*#__PURE__*/jsx(Form, {
90
89
  formikProps: {
91
- initialValues: initialValues,
90
+ initialValues: INITIAL_VALUE,
92
91
  enableReinitialize: true,
93
- onSubmit: handleSubmit,
94
- validationSchema: VALIDATION_SCHEMA
92
+ onSubmit: handleSubmit
95
93
  },
96
94
  children: function children(_ref3) {
97
- var setFieldValue = _ref3.setFieldValue,
98
- dirty = _ref3.dirty,
99
- isSubmitting = _ref3.isSubmitting;
95
+ var isSubmitting = _ref3.isSubmitting;
100
96
  return /*#__PURE__*/jsxs(Fragment, {
101
97
  children: [/*#__PURE__*/jsx(Modal.Body, {
102
98
  children: /*#__PURE__*/jsxs("div", {
@@ -107,23 +103,8 @@ var ConfirmUpiPaymentButton = function ConfirmUpiPaymentButton(_ref) {
107
103
  children: t("neetoPayments.upi.confirmModal.upiTransactionId", {
108
104
  identifier: identifier
109
105
  })
110
- }), /*#__PURE__*/jsx(Select, {
111
- label: t("neetoPayments.upi.confirmModal.accountIdLabel"),
112
- name: "vpaId",
113
- options: vpas === null || vpas === void 0 ? void 0 : vpas.map(function (_ref4) {
114
- var address = _ref4.address,
115
- id = _ref4.id;
116
- return {
117
- label: address,
118
- value: id
119
- };
120
- }),
121
- onChange: function onChange(_ref5) {
122
- var value = _ref5.value;
123
- return setFieldValue("vpaId", value);
124
- }
125
106
  }), /*#__PURE__*/jsx(Textarea, {
126
- "data-cy": "confirm-booking-modal-input-textfield",
107
+ "data-cy": "reject-booking-modal-input-textfield",
127
108
  label: t("neetoPayments.upi.confirmModal.notes"),
128
109
  name: "notes",
129
110
  placeholder: t("neetoPayments.upi.confirmModal.notesPlaceholder")
@@ -139,8 +120,9 @@ var ConfirmUpiPaymentButton = function ConfirmUpiPaymentButton(_ref) {
139
120
  style: "tertiary"
140
121
  },
141
122
  submitButtonProps: {
142
- disabled: isSubmitting || isPending || vpas.length !== 1 && !dirty,
143
- label: t("neetoPayments.common.confirm")
123
+ disabled: isSubmitting || isPending,
124
+ label: t("neetoPayments.common.reject"),
125
+ style: "danger"
144
126
  }
145
127
  })
146
128
  })]
@@ -151,5 +133,5 @@ var ConfirmUpiPaymentButton = function ConfirmUpiPaymentButton(_ref) {
151
133
  });
152
134
  };
153
135
 
154
- export { ConfirmUpiPaymentButton as default };
155
- //# sourceMappingURL=ConfirmUpiPaymentButton.js.map
136
+ export { ManualUpiPaymentRejectButton as default };
137
+ //# sourceMappingURL=ManualUpiPaymentRejectButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManualUpiPaymentRejectButton.js","sources":["../app/javascript/src/components/ManualUpiPaymentRejectButton/constants.js","../app/javascript/src/components/ManualUpiPaymentRejectButton/index.jsx"],"sourcesContent":["export const INITIAL_VALUE = { notes: \"\" };\n","import { useState } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { Button, Modal, Typography } from \"neetoui\";\nimport { Form, Textarea, ActionBlock } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useUpdateUpiPayment } from \"hooks/reactQuery/manualUpi/usePaymentApi\";\n\nimport { INITIAL_VALUE } from \"./constants\";\n\nconst ManualUpiPaymentRejectButton = ({\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 onClose = () => setIsModalOpen(false);\n\n const handleSubmit = ({ notes }) => {\n const payload = { notes, payableId, status: \"rejected\" };\n updateUpiPayment(payload);\n };\n\n return (\n <>\n <Button\n label={t(\"neetoPayments.upi.payment.buttons.rejectPayment\")}\n loading={isPending}\n size=\"small\"\n style=\"danger\"\n onClick={() => setIsModalOpen(true)}\n />\n <Modal {...{ onClose }} isOpen={isModalOpen} size=\"large\">\n <Modal.Header>\n <Typography style=\"h2\">\n {t(\"neetoPayments.upi.rejectModal.title\")}\n </Typography>\n </Modal.Header>\n <Form\n formikProps={{\n initialValues: INITIAL_VALUE,\n enableReinitialize: true,\n onSubmit: handleSubmit,\n }}\n >\n {({ 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 <Textarea\n data-cy=\"reject-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: isSubmitting || isPending,\n label: t(\"neetoPayments.common.reject\"),\n style: \"danger\",\n }}\n />\n </Modal.Footer>\n </>\n )}\n </Form>\n </Modal>\n </>\n );\n};\n\nexport default ManualUpiPaymentRejectButton;\n"],"names":["INITIAL_VALUE","notes","ManualUpiPaymentRejectButton","_ref","identifier","paymentId","manualUpiId","payableId","_ref$onSuccess","onSuccess","noop","_ref$keysToInvalidate","keysToInvalidate","_useState","useState","_useState2","_slicedToArray","isModalOpen","setIsModalOpen","_useTranslation","useTranslation","t","onSuccessfulUpdate","_useUpdateUpiPayment","useUpdateUpiPayment","id","options","updateUpiPayment","mutate","isPending","onClose","handleSubmit","_ref2","payload","status","_jsxs","_Fragment","children","_jsx","Button","label","loading","size","style","onClick","Modal","isOpen","Header","Typography","Form","formikProps","initialValues","enableReinitialize","onSubmit","_ref3","isSubmitting","Body","className","lineHeight","Textarea","name","placeholder","Footer","ActionBlock","position","cancelButtonProps","submitButtonProps","disabled"],"mappings":"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"}
@@ -12,7 +12,7 @@ import { E as ExportModal } from './ExportModal-CWKMcZgh.js';
12
12
  import { useQuery } from '@tanstack/react-query';
13
13
  import axios from 'axios';
14
14
  import { B as BASE_URL, P as PAYMENT_PROVIDERS, k as DEFAULT_TAG_STYLE, l as formatAmount, m as formatCurrency, n as getUniquePaymentProviders, o as buildDefaultTableColumns, S as SORT_DIRECTIONS, p as processDataIndex, s as shouldTabsVisible, U as UN_HIDEABLE_COLUMNS, q as DEFAULT_PAGE_VALUES, r as DASHBOARD_KIND } from './index-Cw8BnbrE.js';
15
- import { Q as QUERY_KEYS } from './queryConstants-mgjK5Hgk.js';
15
+ import { Q as QUERY_KEYS } from './queryConstants-jobxv6K1.js';
16
16
  import { t } from 'i18next';
17
17
  import { toLabelAndValue, isNotPresent, snakeToCamelCase, humanize, isPresent, camelToSnakeCase } from '@bigbinary/neeto-cist';
18
18
  import { useHiddenColumns } from '@bigbinary/neeto-molecules/Columns';
@@ -30,7 +30,7 @@ import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
30
30
  import Table from '@bigbinary/neetoui/Table';
31
31
  import NoData from '@bigbinary/neetoui/NoData';
32
32
  import Spinner from '@bigbinary/neetoui/Spinner';
33
- import { u as useFetchStripePayouts, a as useFetchStripePlatformPayouts } from './usePlatformApi-Ca-CVxhW.js';
33
+ import { u as useFetchStripePayouts, a as useFetchStripePlatformPayouts } from './usePlatformApi-CvRR6Wi5.js';
34
34
  import '@tanstack/react-query';
35
35
  import '@tanstack/react-query-devtools';
36
36
  import 'axios';
@@ -40,7 +40,7 @@ import '@bigbinary/neetoui/Tag';
40
40
  import '@bigbinary/neetoui/Tooltip';
41
41
  import '@bigbinary/neeto-molecules/CopyToClipboardButton';
42
42
  import 'qs';
43
- import './queryConstants-mgjK5Hgk.js';
43
+ import './queryConstants-jobxv6K1.js';
44
44
 
45
45
  var TAB = {
46
46
  all: "all",
@@ -5,7 +5,7 @@ import Typography from '@bigbinary/neetoui/Typography';
5
5
  import { useTranslation } from 'react-i18next';
6
6
  import { useParams } from 'react-router-dom/cjs/react-router-dom';
7
7
  import { r as renderStatus, b as renderDate } from './renderFunctions-CEWqSB96.js';
8
- import { b as useShowStripePayout, c as useShowStripePlatformPayout } from './usePlatformApi-Ca-CVxhW.js';
8
+ import { b as useShowStripePayout, c as useShowStripePlatformPayout } from './usePlatformApi-CvRR6Wi5.js';
9
9
  import Button from '@bigbinary/neetoui/Button';
10
10
  import { C as CopyButtonWrapper } from './CopyButtonWrapper-SoJkwX-d.js';
11
11
  import { t as buildStripePayoutLink } from './index-Cw8BnbrE.js';
@@ -21,7 +21,7 @@ import '@tanstack/react-query';
21
21
  import '@bigbinary/neeto-commons-frontend/react-utils';
22
22
  import 'axios';
23
23
  import 'qs';
24
- import './queryConstants-mgjK5Hgk.js';
24
+ import './queryConstants-jobxv6K1.js';
25
25
  import '@bigbinary/neeto-commons-frontend/constants';
26
26
  import 'decimal.js';
27
27
  import '@bigbinary/neeto-commons-frontend/utils';
@@ -15,7 +15,7 @@ import { useQuery } from '@tanstack/react-query';
15
15
  import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
16
16
  import axios from 'axios';
17
17
  import { B as BASE_URL } from './index-Cw8BnbrE.js';
18
- import { Q as QUERY_KEYS } from './queryConstants-mgjK5Hgk.js';
18
+ import { Q as QUERY_KEYS } from './queryConstants-jobxv6K1.js';
19
19
  import { t } from 'i18next';
20
20
  import * as yup from 'yup';
21
21
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -12,7 +12,7 @@ import { E as ExportModal } from './ExportModal-CWKMcZgh.js';
12
12
  import { useQuery } from '@tanstack/react-query';
13
13
  import axios from 'axios';
14
14
  import { B as BASE_URL, P as PAYMENT_PROVIDERS, k as DEFAULT_TAG_STYLE, l as formatAmount, m as formatCurrency, o as buildDefaultTableColumns, S as SORT_DIRECTIONS, p as processDataIndex, A as ASSOCIATED_TABLE_COLUMNS, D as DEFAULT_SORT_PROPERTIES, s as shouldTabsVisible, U as UN_HIDEABLE_COLUMNS, q as DEFAULT_PAGE_VALUES, r as DASHBOARD_KIND } from './index-Cw8BnbrE.js';
15
- import { Q as QUERY_KEYS } from './queryConstants-mgjK5Hgk.js';
15
+ import { Q as QUERY_KEYS } from './queryConstants-jobxv6K1.js';
16
16
  import { t } from 'i18next';
17
17
  import { toLabelAndValue, snakeToCamelCase, humanize, isPresent, isNotPresent, camelToSnakeCase } from '@bigbinary/neeto-cist';
18
18
  import { useHiddenColumns } from '@bigbinary/neeto-molecules/Columns';
@@ -13,7 +13,7 @@ import { useQuery } from '@tanstack/react-query';
13
13
  import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
14
14
  import axios from 'axios';
15
15
  import { B as BASE_URL, v as preProcessStatus, w as getTagStyle, l as formatAmount, m as formatCurrency, x as PAYMENT_KIND, p as processDataIndex, S as SORT_DIRECTIONS, D as DEFAULT_SORT_PROPERTIES, s as shouldTabsVisible, U as UN_HIDEABLE_COLUMNS, q as DEFAULT_PAGE_VALUES, r as DASHBOARD_KIND } from './index-Cw8BnbrE.js';
16
- import { Q as QUERY_KEYS } from './queryConstants-mgjK5Hgk.js';
16
+ import { Q as QUERY_KEYS } from './queryConstants-jobxv6K1.js';
17
17
  import Modal from '@bigbinary/neetoui/Modal';
18
18
  import Typography from '@bigbinary/neetoui/Typography';
19
19
  import Form from '@bigbinary/neetoui/formik/Form';
@@ -16,7 +16,7 @@ import { useQuery } from '@tanstack/react-query';
16
16
  import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
17
17
  import axios from 'axios';
18
18
  import { B as BASE_URL } from './index-Cw8BnbrE.js';
19
- import { Q as QUERY_KEYS } from './queryConstants-mgjK5Hgk.js';
19
+ import { Q as QUERY_KEYS } from './queryConstants-jobxv6K1.js';
20
20
  import Label from '@bigbinary/neetoui/Label';
21
21
  import Typography from '@bigbinary/neetoui/Typography';
22
22
  import Pane from '@bigbinary/neetoui/Pane';
@@ -34,7 +34,7 @@ var NoData = require('@bigbinary/neetoui/NoData');
34
34
  var Spinner = require('@bigbinary/neetoui/Spinner');
35
35
  var reactQuery = require('@tanstack/react-query');
36
36
  var axios = require('axios');
37
- var queryConstants = require('./queryConstants-DGg4cX3r.js');
37
+ var queryConstants = require('./queryConstants-D2ARfy8-.js');
38
38
  require('@tanstack/react-query-devtools');
39
39
  require('decimal.js');
40
40
  require('@bigbinary/neeto-molecules/DateFormat');
@@ -11,7 +11,7 @@ var axios = require('axios');
11
11
  var constants = require('./index-RKMq21yy.js');
12
12
  var reactQuery = require('@tanstack/react-query');
13
13
  var ramda = require('ramda');
14
- var queryConstants = require('./queryConstants-DGg4cX3r.js');
14
+ var queryConstants = require('./queryConstants-D2ARfy8-.js');
15
15
  var jsxRuntime = require('react/jsx-runtime');
16
16
  require('i18next');
17
17
  require('@bigbinary/neeto-commons-frontend/constants');
@@ -0,0 +1,277 @@
1
+ 'use strict';
2
+
3
+ var Spinner = require('@bigbinary/neetoui/Spinner');
4
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var reactQuery = require('@tanstack/react-query');
7
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
8
+ var axios = require('axios');
9
+ var constants = require('./index-RKMq21yy.js');
10
+ var queryConstants = require('./queryConstants-D2ARfy8-.js');
11
+ var CardLayout = require('@bigbinary/neeto-molecules/CardLayout');
12
+ var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
13
+ var Form = require('@bigbinary/neetoui/formik/Form');
14
+ var Input = require('@bigbinary/neetoui/formik/Input');
15
+ var reactI18next = require('react-i18next');
16
+ var reactRouterDom = require('react-router-dom');
17
+ var i18next = require('i18next');
18
+ var yup = require('yup');
19
+ var jsxRuntime = require('react/jsx-runtime');
20
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
21
+ var react = require('react');
22
+ var Alert = require('@bigbinary/neetoui/Alert');
23
+ var Table = require('@bigbinary/neetoui/Table');
24
+ var ramda = require('ramda');
25
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
26
+ var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
27
+ var Typography = require('@bigbinary/neetoui/Typography');
28
+ require('@bigbinary/neeto-commons-frontend/constants');
29
+ require('decimal.js');
30
+ require('@bigbinary/neeto-cist');
31
+
32
+ function _interopNamespaceDefault(e) {
33
+ var n = Object.create(null);
34
+ if (e) {
35
+ Object.keys(e).forEach(function (k) {
36
+ if (k !== 'default') {
37
+ var d = Object.getOwnPropertyDescriptor(e, k);
38
+ Object.defineProperty(n, k, d.get ? d : {
39
+ enumerable: true,
40
+ get: function () { return e[k]; }
41
+ });
42
+ }
43
+ });
44
+ }
45
+ n.default = e;
46
+ return Object.freeze(n);
47
+ }
48
+
49
+ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
50
+
51
+ var list = function list(holdableId) {
52
+ return axios.get("".concat(constants.BASE_URL, "/api/v1/manual_upi/vpas"), {
53
+ params: {
54
+ holdableId: holdableId
55
+ }
56
+ });
57
+ };
58
+ var create = function create(payload) {
59
+ return axios.post("".concat(constants.BASE_URL, "/api/v1/manual_upi/vpas"), payload);
60
+ };
61
+ var destroy = function destroy(_ref) {
62
+ var id = _ref.id,
63
+ holdableId = _ref.holdableId;
64
+ return axios["delete"]("".concat(constants.BASE_URL, "/api/v1/manual_upi/vpas/").concat(id), {
65
+ params: {
66
+ holdableId: holdableId
67
+ }
68
+ });
69
+ };
70
+ var vpasApi = {
71
+ list: list,
72
+ create: create,
73
+ destroy: destroy
74
+ };
75
+
76
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
77
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
78
+ var useFetchVpas = function useFetchVpas(holdableId) {
79
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
80
+ return reactQuery.useQuery(_objectSpread({
81
+ queryKey: [queryConstants.QUERY_KEYS.VPAS_LIST],
82
+ queryFn: function queryFn() {
83
+ return vpasApi.list(holdableId);
84
+ }
85
+ }, options));
86
+ };
87
+ var useCreateVpa = function useCreateVpa() {
88
+ var keysToInvalidateOnCreate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
89
+ return reactUtils.useMutationWithInvalidation(vpasApi.create, {
90
+ keysToInvalidate: [[queryConstants.QUERY_KEYS.VPAS_LIST]].concat(_toConsumableArray(keysToInvalidateOnCreate))
91
+ });
92
+ };
93
+ var useDestroyVpa = function useDestroyVpa() {
94
+ var keysToInvalidateOnDelete = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
95
+ return reactUtils.useMutationWithInvalidation(vpasApi.destroy, {
96
+ keysToInvalidate: [[queryConstants.QUERY_KEYS.VPAS_LIST]].concat(_toConsumableArray(keysToInvalidateOnDelete))
97
+ });
98
+ };
99
+
100
+ var VALIDATION_SCHEMA = yup__namespace.object({
101
+ upiId: yup__namespace.string().matches(/^[a-zA-Z0-9][a-zA-Z0-9._-]{1,255}@[a-zA-Z][a-zA-Z0-9]{2,63}$/, i18next.t("neetoPayments.upi.form.validation.invalidUpi")).required(i18next.t("neetoPayments.upi.form.validation.required"))
102
+ });
103
+
104
+ var Add = function Add(_ref) {
105
+ var holdableId = _ref.holdableId,
106
+ keysToInvalidateOnCreate = _ref.keysToInvalidateOnCreate;
107
+ var _useTranslation = reactI18next.useTranslation(),
108
+ t = _useTranslation.t;
109
+ var history = reactRouterDom.useHistory();
110
+ var _useCreateVpa = useCreateVpa(keysToInvalidateOnCreate),
111
+ isCreatingVpa = _useCreateVpa.isPending,
112
+ createVpa = _useCreateVpa.mutate;
113
+ return /*#__PURE__*/jsxRuntime.jsx(Form, {
114
+ className: "w-full",
115
+ formikProps: {
116
+ initialValues: {
117
+ upiId: ""
118
+ },
119
+ onSubmit: function onSubmit(values, _ref2) {
120
+ var resetForm = _ref2.resetForm;
121
+ createVpa({
122
+ holdableId: holdableId,
123
+ address: values.upiId
124
+ });
125
+ resetForm();
126
+ },
127
+ validationSchema: VALIDATION_SCHEMA
128
+ },
129
+ children: function children(_ref3) {
130
+ var dirty = _ref3.dirty;
131
+ return /*#__PURE__*/jsxRuntime.jsx(CardLayout, {
132
+ actionBlock: /*#__PURE__*/jsxRuntime.jsx(ActionBlock, {
133
+ cancelButtonProps: {
134
+ onClick: history.goBack
135
+ },
136
+ isSubmitting: isCreatingVpa,
137
+ submitButtonProps: {
138
+ label: t("neetoPayments.upi.form.add"),
139
+ disabled: !dirty || isCreatingVpa
140
+ }
141
+ }),
142
+ children: /*#__PURE__*/jsxRuntime.jsx(Input, {
143
+ className: "w-full",
144
+ label: t("neetoPayments.upi.form.enterUpi"),
145
+ name: "upiId",
146
+ placeholder: t("neetoPayments.upi.form.enterUpi")
147
+ })
148
+ });
149
+ }
150
+ });
151
+ };
152
+
153
+ var getColumnData = function getColumnData(handleDeleteClick) {
154
+ return [{
155
+ title: i18next.t("neetoPayments.common.upiId"),
156
+ dataIndex: "address",
157
+ key: "address",
158
+ width: 272,
159
+ render: function render(_, upiId) {
160
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
161
+ className: "flex items-center justify-between gap-3",
162
+ children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
163
+ className: "w-4/5",
164
+ style: "body2",
165
+ children: upiId.address
166
+ }), /*#__PURE__*/jsxRuntime.jsx(MoreDropdown, {
167
+ dropdownProps: {
168
+ strategy: "fixed"
169
+ },
170
+ menuItems: [{
171
+ key: "delete-meeting",
172
+ label: i18next.t("neetoPayments.common.delete"),
173
+ onClick: function onClick() {
174
+ return handleDeleteClick(upiId);
175
+ }
176
+ }]
177
+ })]
178
+ });
179
+ }
180
+ }, {
181
+ title: i18next.t("neetoPayments.common.createdAt"),
182
+ dataIndex: "createdAt",
183
+ key: "createdAt",
184
+ render: utils.dateFormat.dateTime
185
+ }];
186
+ };
187
+
188
+ var List = function List(_ref) {
189
+ var holdableId = _ref.holdableId,
190
+ upiIds = _ref.upiIds,
191
+ keysToInvalidateOnDelete = _ref.keysToInvalidateOnDelete;
192
+ var _useTranslation = reactI18next.useTranslation(),
193
+ t = _useTranslation.t;
194
+ var _useState = react.useState(false),
195
+ _useState2 = _slicedToArray(_useState, 2),
196
+ isAlertOpen = _useState2[0],
197
+ setIsAlertOpen = _useState2[1];
198
+ var _useState3 = react.useState({}),
199
+ _useState4 = _slicedToArray(_useState3, 2),
200
+ selectedUpiId = _useState4[0],
201
+ setSelectedUpiId = _useState4[1];
202
+ var _useDestroyVpa = useDestroyVpa(keysToInvalidateOnDelete),
203
+ deleteVpa = _useDestroyVpa.mutate;
204
+ var handleOpenDeleteModal = function handleOpenDeleteModal(id) {
205
+ setSelectedUpiId(id);
206
+ setIsAlertOpen(true);
207
+ };
208
+ var handleAlertClose = function handleAlertClose() {
209
+ setSelectedUpiId({});
210
+ setIsAlertOpen(false);
211
+ };
212
+ var handleAlertSubmit = function handleAlertSubmit() {
213
+ deleteVpa({
214
+ id: selectedUpiId === null || selectedUpiId === void 0 ? void 0 : selectedUpiId.id,
215
+ holdableId: holdableId
216
+ });
217
+ setIsAlertOpen(false);
218
+ };
219
+ if (ramda.isEmpty(upiIds)) {
220
+ return null;
221
+ }
222
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
223
+ className: "w-full max-w-3xl mx-auto",
224
+ children: [/*#__PURE__*/jsxRuntime.jsx(Table, {
225
+ columnData: getColumnData(handleOpenDeleteModal),
226
+ rowData: upiIds
227
+ }), /*#__PURE__*/jsxRuntime.jsx(Alert, {
228
+ isOpen: isAlertOpen,
229
+ title: t("neetoPayments.upi.alert.title"),
230
+ message: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
231
+ components: {
232
+ b: /*#__PURE__*/jsxRuntime.jsx("strong", {})
233
+ },
234
+ i18nKey: "neetoPayments.upi.alert.message",
235
+ values: {
236
+ upiId: selectedUpiId.address
237
+ }
238
+ }),
239
+ onClose: handleAlertClose,
240
+ onSubmit: handleAlertSubmit
241
+ })]
242
+ });
243
+ };
244
+
245
+ var ManualUpiConnect = function ManualUpiConnect(_ref) {
246
+ var holdableId = _ref.holdableId,
247
+ _ref$keysToInvalidate = _ref.keysToInvalidateOnDelete,
248
+ keysToInvalidateOnDelete = _ref$keysToInvalidate === void 0 ? [] : _ref$keysToInvalidate,
249
+ _ref$keysToInvalidate2 = _ref.keysToInvalidateOnCreate,
250
+ keysToInvalidateOnCreate = _ref$keysToInvalidate2 === void 0 ? [] : _ref$keysToInvalidate2;
251
+ var _useFetchVpas = useFetchVpas(holdableId),
252
+ _useFetchVpas$data = _useFetchVpas.data,
253
+ _useFetchVpas$data2 = _useFetchVpas$data === void 0 ? {} : _useFetchVpas$data,
254
+ _useFetchVpas$data2$v = _useFetchVpas$data2.vpas,
255
+ upiIds = _useFetchVpas$data2$v === void 0 ? [] : _useFetchVpas$data2$v,
256
+ isLoading = _useFetchVpas.isLoading;
257
+ if (isLoading) {
258
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
259
+ className: "flex items-center justify-center w-full h-full",
260
+ children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
261
+ });
262
+ }
263
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
264
+ className: "flex flex-col items-start w-full",
265
+ children: [upiIds.length < 3 && /*#__PURE__*/jsxRuntime.jsx(Add, {
266
+ holdableId: holdableId,
267
+ keysToInvalidateOnCreate: keysToInvalidateOnCreate
268
+ }), /*#__PURE__*/jsxRuntime.jsx(List, {
269
+ holdableId: holdableId,
270
+ keysToInvalidateOnDelete: keysToInvalidateOnDelete,
271
+ upiIds: upiIds
272
+ })]
273
+ });
274
+ };
275
+
276
+ module.exports = ManualUpiConnect;
277
+ //# 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],\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._-]{1,255}@[a-zA-Z][a-zA-Z0-9]{2,63}$/,\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\";\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 dropdownProps={{ strategy: \"fixed\" }}\n menuItems={[\n {\n key: \"delete-meeting\",\n label: t(\"neetoPayments.common.delete\"),\n onClick: () => handleDeleteClick(upiId),\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","concat","BASE_URL","params","create","payload","post","destroy","_ref","id","vpasApi","useFetchVpas","options","arguments","length","undefined","useQuery","_objectSpread","queryKey","QUERY_KEYS","VPAS_LIST","queryFn","useCreateVpa","keysToInvalidateOnCreate","useMutationWithInvalidation","keysToInvalidate","_toConsumableArray","useDestroyVpa","keysToInvalidateOnDelete","VALIDATION_SCHEMA","yup","object","upiId","string","matches","t","required","Add","_useTranslation","useTranslation","history","useHistory","_useCreateVpa","isCreatingVpa","isPending","createVpa","mutate","_jsx","Form","className","formikProps","initialValues","onSubmit","values","_ref2","resetForm","address","validationSchema","children","_ref3","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","dropdownProps","strategy","menuItems","dateFormat","dateTime","List","upiIds","_useState","useState","_useState2","_slicedToArray","isAlertOpen","setIsAlertOpen","_useState3","_useState4","selectedUpiId","setSelectedUpiId","_useDestroyVpa","deleteVpa","handleOpenDeleteModal","handleAlertClose","handleAlertSubmit","isEmpty","Table","columnData","rowData","Alert","isOpen","message","Trans","components","b","i18nKey","onClose","ManualUpiConnect","_ref$keysToInvalidate","_ref$keysToInvalidate2","_useFetchVpas","_useFetchVpas$data","data","_useFetchVpas$data2","_useFetchVpas$data2$v","vpas","isLoading","Spinner"],"mappings":"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"}