@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,475 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var i18next = require('i18next');
5
+ var neetocist = require('neetocist');
6
+ var reactUtils = require('neetocommons/react-utils');
7
+ var neetoFiltersFrontend = require('@bigbinary/neeto-filters-frontend');
8
+ var Header = require('@bigbinary/neeto-molecules/Header');
9
+ var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
10
+ var neetoui = require('@bigbinary/neetoui');
11
+ var reactI18next = require('react-i18next');
12
+ var dashboard = require('./dashboard-BiCB2A6S.js');
13
+ var exportChannel = require('./exportChannel-BL2RGGhP.js');
14
+ var neetoIcons = require('@bigbinary/neeto-icons');
15
+ var constants = require('./index-D6V3Vofs.js');
16
+ var jsxRuntime = require('react/jsx-runtime');
17
+ var utils = require('neetocommons/utils');
18
+ var ramda = require('ramda');
19
+ var reactRouterDom = require('react-router-dom');
20
+ var renderFunctions = require('./renderFunctions-DhCwlBWw.js');
21
+ var CopyButtonWrapper = require('./CopyButtonWrapper-I-kdKiiB.js');
22
+ var constants$1 = require('neetocommons/constants');
23
+ var Columns = require('@bigbinary/neeto-molecules/Columns');
24
+ var TableWrapper = require('@bigbinary/neeto-molecules/TableWrapper');
25
+ var useAccountsApi = require('./useAccountsApi-B2MZWHMY.js');
26
+ require('@tanstack/react-query');
27
+ require('@tanstack/react-query-devtools');
28
+ require('axios');
29
+ require('decimal.js');
30
+ require('@bigbinary/neeto-molecules/DateFormat');
31
+ require('@bigbinary/neeto-molecules/CopyToClipboardButton');
32
+ require('./queryConstants-Dc6wh21D.js');
33
+
34
+ const TAB = {
35
+ all: "all",
36
+ connected: "connected",
37
+ disconnected: "disconnected",
38
+ incomplete: "incomplete"
39
+ };
40
+ const TABS = Object.values(TAB);
41
+ const SEARCH_PROPS = {
42
+ key: "keyword",
43
+ node: "identifier,user.first_name,last_name,email",
44
+ model: "NeetoPaymentsEngine::Stripe::Account,User"
45
+ };
46
+ const DASHBOARD_MANDATORY_COLUMNS = ["id", "status", "identifier"];
47
+ const FILTER_COLUMNS = [{
48
+ key: "created_at",
49
+ label: i18next.t("neetoPayments.common.createdAt"),
50
+ node: "created_at",
51
+ type: "date",
52
+ showRuleSelector: true
53
+ }];
54
+
55
+ const ExportModal = ({
56
+ showExportModal,
57
+ setShowExportModal,
58
+ tab,
59
+ filters,
60
+ sortProperties = {}
61
+ }) => {
62
+ const {
63
+ t
64
+ } = reactI18next.useTranslation();
65
+ const [downloadUrl, setDownloadUrl] = react.useState("");
66
+ const [isGenerating, setIsGenerating] = react.useState(false);
67
+ const {
68
+ mutate: exportCsv,
69
+ isPending
70
+ } = dashboard.useExportData();
71
+ const isFileLoading = isPending || isGenerating;
72
+ const token = react.useMemo(() => `account-report-${constants.uuidV4()}`, []);
73
+ const receivedCallback = data => {
74
+ if (!data.download_url) return;
75
+ setDownloadUrl(data.download_url);
76
+ setIsGenerating(false);
77
+ };
78
+ const handleGenerateClick = () => {
79
+ const payload = {
80
+ kind: "account",
81
+ token,
82
+ filters,
83
+ tab,
84
+ ...sortProperties
85
+ };
86
+ exportCsv(payload, {
87
+ onSuccess: () => {
88
+ setDownloadUrl("");
89
+ setIsGenerating(true);
90
+ }
91
+ });
92
+ };
93
+ react.useEffect(() => {
94
+ if (showExportModal) {
95
+ const channel = exportChannel.exportChannel(token, receivedCallback);
96
+ setDownloadUrl("");
97
+ setIsGenerating(false);
98
+ return () => {
99
+ channel.disconnected();
100
+ };
101
+ }
102
+ return undefined;
103
+ }, [showExportModal, token]);
104
+ const onClose = () => setShowExportModal(false);
105
+ return /*#__PURE__*/jsxRuntime.jsxs(neetoui.Modal, {
106
+ onClose,
107
+ isOpen: showExportModal,
108
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Header, {
109
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
110
+ style: "h2",
111
+ children: t("neetoPayments.export.title.account")
112
+ })
113
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Body, {
114
+ children: isFileLoading ? /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
115
+ style: "body2",
116
+ children: t("neetoPayments.export.pleaseWait")
117
+ }) : /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
118
+ style: "body2",
119
+ children: downloadUrl ? t("neetoPayments.export.fileReady") : t("neetoPayments.export.download.account")
120
+ })
121
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Modal.Footer, {
122
+ className: "space-x-2",
123
+ children: downloadUrl ? /*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
124
+ "data-testid": "neeto-payments-download-button",
125
+ href: downloadUrl,
126
+ icon: neetoIcons.Download,
127
+ label: t("neetoPayments.common.download"),
128
+ onClick: onClose
129
+ }) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
130
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
131
+ "data-testid": "cancel-button",
132
+ disabled: isFileLoading,
133
+ label: t("neetoPayments.common.cancel"),
134
+ style: "tertiary",
135
+ onClick: onClose
136
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
137
+ "data-testid": "neeto-payments-export-button",
138
+ disabled: isFileLoading,
139
+ label: t("neetoPayments.common.export"),
140
+ loading: isFileLoading,
141
+ onClick: handleGenerateClick
142
+ })]
143
+ })
144
+ })]
145
+ });
146
+ };
147
+
148
+ const renderIdentifier = ({
149
+ identifier = "",
150
+ isLive = false
151
+ } = {}) => /*#__PURE__*/jsxRuntime.jsx(CopyButtonWrapper.CopyButtonWrapper, {
152
+ content: identifier,
153
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
154
+ href: constants.buildStripeAccountLink(identifier, isLive),
155
+ label: identifier,
156
+ size: "small",
157
+ style: "link",
158
+ target: "_blank"
159
+ })
160
+ });
161
+ const renderCountry = ramda.pipe(ramda.split("_"), ramda.map(neetocist.capitalize), ramda.join(" "));
162
+
163
+ const COLUMNS = [{
164
+ title: i18next.t("neetoPayments.common.id"),
165
+ dataIndex: "id",
166
+ key: "id",
167
+ width: 85,
168
+ isHidable: false
169
+ }, {
170
+ title: i18next.t("neetoPayments.common.identifier"),
171
+ dataIndex: "identifier",
172
+ key: "identifier",
173
+ width: 300,
174
+ render: renderIdentifier,
175
+ isHidable: false
176
+ }, {
177
+ title: i18next.t("neetoPayments.common.status"),
178
+ dataIndex: "status",
179
+ key: "status",
180
+ width: 150,
181
+ render: renderFunctions.renderStatus("account"),
182
+ sorter: true,
183
+ isHidable: false
184
+ }, {
185
+ title: i18next.t("neetoPayments.common.name"),
186
+ dataIndex: "first_name",
187
+ key: "first_name",
188
+ width: 300,
189
+ sorter: true,
190
+ render: renderFunctions.renderFullName
191
+ }, {
192
+ title: i18next.t("neetoPayments.common.email"),
193
+ dataIndex: "email",
194
+ key: "email",
195
+ width: 300,
196
+ ellipsis: true,
197
+ sorter: true
198
+ }, {
199
+ title: i18next.t("neetoPayments.common.country"),
200
+ dataIndex: "country",
201
+ key: "country",
202
+ width: 150,
203
+ render: renderCountry,
204
+ sorter: true
205
+ }, {
206
+ title: i18next.t("neetoPayments.common.createdAt"),
207
+ dataIndex: "createdAt",
208
+ key: "createdAt",
209
+ width: 220,
210
+ render: renderFunctions.renderDate,
211
+ sorter: true
212
+ }];
213
+
214
+ const useFiltersAndPagination = () => {
215
+ const history = reactRouterDom.useHistory();
216
+ const [isFilterButtonVisible, setIsFilterButtonVisible] = react.useState(false);
217
+ const [isFilterPaneOpen, setIsFilterPaneOpen] = react.useState(false);
218
+ const [pageProperties, setPageProperties] = react.useState(dashboard.buildDefaultPageProperties(TABS));
219
+ const [sortProperties, setSortProperties] = react.useState(constants.DEFAULT_SORT_PROPERTIES);
220
+ const {
221
+ tab = TAB.all
222
+ } = reactUtils.useQueryParams();
223
+ const {
224
+ searchTerm = ""
225
+ } = utils.getQueryParams();
226
+ const searchKeywordProps = {
227
+ ...SEARCH_PROPS,
228
+ key: "search_term",
229
+ value: searchTerm.trim()
230
+ };
231
+ const [filters, setFilters] = react.useState(neetoFiltersFrontend.buildFiltersFromURL([...FILTER_COLUMNS, searchKeywordProps]));
232
+ const [dataSize, setDataSize] = react.useState(null);
233
+ const columnData = tab !== TAB.all ? neetocist.removeBy({
234
+ key: "status"
235
+ }, COLUMNS) : COLUMNS;
236
+ const handleTabChange = tab => {
237
+ setDataSize(null);
238
+ const queryParams = utils.getQueryParams({
239
+ toCamelCase: false
240
+ });
241
+ const newParams = {
242
+ tab,
243
+ page: pageProperties[tab]?.page,
244
+ page_size: pageProperties[tab]?.pageSize
245
+ };
246
+ history.push(utils.buildUrl(window.location.pathname, ramda.mergeLeft(newParams, queryParams)));
247
+ };
248
+ return {
249
+ isFilterButtonVisible,
250
+ isFilterPaneOpen,
251
+ pageProperties,
252
+ filters,
253
+ searchKeywordProps,
254
+ tab,
255
+ sortProperties,
256
+ columnData,
257
+ dataSize,
258
+ setDataSize,
259
+ setIsFilterButtonVisible,
260
+ setIsFilterPaneOpen,
261
+ setPageProperties,
262
+ setFilters,
263
+ handleTabChange,
264
+ setSortProperties
265
+ };
266
+ };
267
+
268
+ const List = ({
269
+ columnData,
270
+ filters,
271
+ pageProperties,
272
+ setDataSize,
273
+ setIsFilterButtonVisible,
274
+ setPageProperties,
275
+ setSortProperties,
276
+ sortProperties,
277
+ tab
278
+ }) => {
279
+ const history = reactRouterDom.useHistory();
280
+ const {
281
+ t
282
+ } = reactI18next.useTranslation();
283
+ const {
284
+ isTableConfigurationLoading,
285
+ customizedColumns,
286
+ hideColumn
287
+ } = Columns.useTableConfigurations(exportChannel.TABLE_KEYS.ACCOUNTS_TABLE, columnData);
288
+ const {
289
+ data: {
290
+ accounts = [],
291
+ views = {}
292
+ } = {},
293
+ isLoading,
294
+ isFetching
295
+ } = useAccountsApi.useFetchConnectedAccounts(dashboard.buildPayload({
296
+ filters,
297
+ pageProperties,
298
+ sortProperties,
299
+ tab
300
+ }));
301
+ const dataSize = views[tab];
302
+ react.useEffect(() => {
303
+ setIsFilterButtonVisible(neetocist.isPresent(accounts) || neetocist.isPresent(filters));
304
+ setDataSize(dataSize);
305
+ }, [accounts]);
306
+ const handleTablePagination = (page, pageSize) => {
307
+ const queryParams = utils.getQueryParams({
308
+ toCamelCase: false
309
+ });
310
+ history.push(utils.buildUrl(window.location.pathname, ramda.mergeLeft({
311
+ page,
312
+ page_size: pageSize
313
+ }, queryParams)));
314
+ setPageProperties(ramda.assoc(tab, {
315
+ page,
316
+ pageSize
317
+ }));
318
+ };
319
+ react.useEffect(() => {
320
+ handleTablePagination(constants$1.DEFAULT_PAGE_INDEX, constants$1.DEFAULT_PAGE_SIZE);
321
+ setSortProperties(constants.DEFAULT_SORT_PROPERTIES);
322
+ }, [filters, tab]);
323
+ const handleTableChange = (_, __, sorter) => {
324
+ setSortProperties(neetocist.isPresent(sorter?.column) ? {
325
+ sortBy: neetocist.camelToSnakeCase(sorter.field),
326
+ orderBy: sorter.order === "ascend" ? "ASC" : "DESC"
327
+ } : constants.DEFAULT_SORT_PROPERTIES);
328
+ };
329
+ if (isLoading) {
330
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
331
+ className: "flex h-full w-full items-center justify-center",
332
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Spinner, {})
333
+ });
334
+ }
335
+ if (dataSize <= 0 || !neetocist.isPresent(accounts)) {
336
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
337
+ className: "flex h-full w-full items-center justify-center",
338
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.NoData, {
339
+ title: tab === TAB.all ? t("neetoPayments.emptyState.account") : t("neetoPayments.emptyState.accountWithStatus", {
340
+ status: tab
341
+ })
342
+ })
343
+ });
344
+ }
345
+ return /*#__PURE__*/jsxRuntime.jsx(TableWrapper, {
346
+ hasPagination: dataSize > pageProperties[tab]?.pageSize,
347
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Table, {
348
+ fixedHeight: true,
349
+ allowRowClick: false,
350
+ columnData: customizedColumns,
351
+ currentPageNumber: pageProperties[tab]?.page,
352
+ handlePageChange: handleTablePagination,
353
+ loading: isFetching || isTableConfigurationLoading,
354
+ rowData: dashboard.buildRowData({
355
+ data: accounts,
356
+ pageProperties,
357
+ tab
358
+ }),
359
+ rowSelection: false,
360
+ sortDirections: constants.SORT_DIRECTIONS,
361
+ totalCount: dataSize,
362
+ paginationProps: {
363
+ showSizeChanger: true,
364
+ hideOnSinglePage: true,
365
+ pageSize: pageProperties[tab]?.pageSize,
366
+ total: dataSize
367
+ },
368
+ onChange: handleTableChange,
369
+ onColumnHide: ({
370
+ key
371
+ }) => hideColumn(key)
372
+ })
373
+ });
374
+ };
375
+
376
+ const AccountsDashboard = () => {
377
+ const [_, startTransition] = react.useTransition();
378
+ const {
379
+ t
380
+ } = reactI18next.useTranslation();
381
+ const [showExportModal, setShowExportModal] = react.useState(false);
382
+ const {
383
+ isFilterButtonVisible,
384
+ isFilterPaneOpen,
385
+ pageProperties,
386
+ filters,
387
+ searchKeywordProps,
388
+ tab,
389
+ sortProperties,
390
+ columnData,
391
+ dataSize,
392
+ setDataSize,
393
+ setIsFilterButtonVisible,
394
+ setIsFilterPaneOpen,
395
+ setPageProperties,
396
+ setFilters,
397
+ handleTabChange,
398
+ setSortProperties
399
+ } = useFiltersAndPagination();
400
+ const isTabsVisible = isFilterButtonVisible || tab !== "all";
401
+ const handleFiltersChange = filters => {
402
+ startTransition(() => {
403
+ setFilters(filters);
404
+ });
405
+ };
406
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
407
+ children: [/*#__PURE__*/jsxRuntime.jsx(Header, {
408
+ title: t("neetoPayments.title.account"),
409
+ searchProps: isFilterButtonVisible && {
410
+ placeholder: t("neetoPayments.common.search"),
411
+ className: "w-80"
412
+ }
413
+ }), isTabsVisible && /*#__PURE__*/jsxRuntime.jsx(neetoui.Tab, {
414
+ children: TABS.map(item => /*#__PURE__*/jsxRuntime.jsx(neetoui.Tab.Item, {
415
+ active: tab === item,
416
+ onClick: () => handleTabChange(item),
417
+ children: t(`neetoPayments.common.${item}`)
418
+ }, item))
419
+ }), /*#__PURE__*/jsxRuntime.jsx(SubHeader, {
420
+ className: "my-4",
421
+ leftActionBlock: neetocist.isPresent(dataSize) && /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
422
+ className: "neeto-ui-gray-800 me-2 font-semibold",
423
+ component: "h4",
424
+ children: tab === TAB.all ? t("neetoPayments.countOf.account", {
425
+ count: dataSize
426
+ }) : t("neetoPayments.countOf.accountWithStatus", {
427
+ count: dataSize,
428
+ status: tab
429
+ })
430
+ }),
431
+ rightActionBlock: isFilterButtonVisible && /*#__PURE__*/jsxRuntime.jsx(SubHeader.RightBlock, {
432
+ columnsButtonProps: {
433
+ columnData,
434
+ fixedColumns: DASHBOARD_MANDATORY_COLUMNS,
435
+ tableKey: exportChannel.TABLE_KEYS.ACCOUNTS_TABLE
436
+ },
437
+ downloadButtonProps: {
438
+ onClick: () => setShowExportModal(true)
439
+ },
440
+ filterProps: {
441
+ columns: FILTER_COLUMNS,
442
+ isOpen: isFilterPaneOpen,
443
+ keyword: searchKeywordProps,
444
+ setIsOpen: setIsFilterPaneOpen,
445
+ onChange: handleFiltersChange
446
+ }
447
+ })
448
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoFiltersFrontend.Bar, {
449
+ columns: FILTER_COLUMNS,
450
+ keyword: searchKeywordProps,
451
+ setIsPaneOpen: setIsFilterPaneOpen,
452
+ onChange: handleFiltersChange
453
+ }), /*#__PURE__*/jsxRuntime.jsx(List, {
454
+ columnData,
455
+ filters,
456
+ pageProperties,
457
+ setDataSize,
458
+ setIsFilterButtonVisible,
459
+ setPageProperties,
460
+ setSortProperties,
461
+ sortProperties,
462
+ tab
463
+ }), /*#__PURE__*/jsxRuntime.jsx(ExportModal, {
464
+ filters,
465
+ setShowExportModal,
466
+ showExportModal,
467
+ sortProperties,
468
+ tab
469
+ })]
470
+ });
471
+ };
472
+ var index = reactUtils.withTitle(dashboard.withReactQuery(AccountsDashboard), i18next.t("neetoPayments.title.account"));
473
+
474
+ module.exports = index;
475
+ //# sourceMappingURL=AccountsDashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountsDashboard.js","sources":["../../app/javascript/src/components/AccountsDashboard/constants/index.js","../../app/javascript/src/components/AccountsDashboard/ExportModal.jsx","../../app/javascript/src/components/AccountsDashboard/utils/renderFunctions.jsx","../../app/javascript/src/components/AccountsDashboard/constants/columns.js","../../app/javascript/src/components/AccountsDashboard/hooks/useFiltersAndPagination.js","../../app/javascript/src/components/AccountsDashboard/List.jsx","../../app/javascript/src/components/AccountsDashboard/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const TAB = {\n all: \"all\",\n connected: \"connected\",\n disconnected: \"disconnected\",\n incomplete: \"incomplete\",\n};\n\nexport const TABS = Object.values(TAB);\n\nexport const SEARCH_PROPS = {\n key: \"keyword\",\n node: \"identifier,user.first_name,last_name,email\",\n model: \"NeetoPaymentsEngine::Stripe::Account,User\",\n};\n\nexport const DASHBOARD_MANDATORY_COLUMNS = [\"id\", \"status\", \"identifier\"];\n\nexport const FILTER_COLUMNS = [\n {\n key: \"created_at\",\n label: t(\"neetoPayments.common.createdAt\"),\n node: \"created_at\",\n type: \"date\",\n showRuleSelector: true,\n },\n];\n\nexport const STRIPE_ACCOUNTS_TABLE_HIDDEN_COLUMNS_STORAGE_KEY =\n \"stripeAccountsDashboard\";\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { Download } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useExportData } from \"hooks/reactQuery/stripe/useExportsApi\";\nimport { Button, Modal, Typography } from \"neetoui\";\nimport exportChannel from \"src/channels/exportChannel\";\nimport { uuidV4 } from \"utils\";\n\nconst ExportModal = ({\n showExportModal,\n setShowExportModal,\n tab,\n filters,\n sortProperties = {},\n}) => {\n const { t } = useTranslation();\n const [downloadUrl, setDownloadUrl] = useState(\"\");\n const [isGenerating, setIsGenerating] = useState(false);\n\n const { mutate: exportCsv, isPending } = useExportData();\n const isFileLoading = isPending || isGenerating;\n\n const token = useMemo(() => `account-report-${uuidV4()}`, []);\n\n const receivedCallback = data => {\n if (!data.download_url) return;\n setDownloadUrl(data.download_url);\n setIsGenerating(false);\n };\n\n const handleGenerateClick = () => {\n const payload = {\n kind: \"account\",\n token,\n filters,\n tab,\n ...sortProperties,\n };\n\n exportCsv(payload, {\n onSuccess: () => {\n setDownloadUrl(\"\");\n setIsGenerating(true);\n },\n });\n };\n\n useEffect(() => {\n if (showExportModal) {\n const channel = exportChannel(token, receivedCallback);\n setDownloadUrl(\"\");\n setIsGenerating(false);\n\n return () => {\n channel.disconnected();\n };\n }\n\n return undefined;\n }, [showExportModal, token]);\n\n const onClose = () => setShowExportModal(false);\n\n return (\n <Modal {...{ onClose }} isOpen={showExportModal}>\n <Modal.Header>\n <Typography style=\"h2\">\n {t(\"neetoPayments.export.title.account\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n {isFileLoading ? (\n <Typography style=\"body2\">\n {t(\"neetoPayments.export.pleaseWait\")}\n </Typography>\n ) : (\n <Typography style=\"body2\">\n {downloadUrl\n ? t(\"neetoPayments.export.fileReady\")\n : t(\"neetoPayments.export.download.account\")}\n </Typography>\n )}\n </Modal.Body>\n <Modal.Footer className=\"space-x-2\">\n {downloadUrl ? (\n <Button\n data-testid=\"neeto-payments-download-button\"\n href={downloadUrl}\n icon={Download}\n label={t(\"neetoPayments.common.download\")}\n onClick={onClose}\n />\n ) : (\n <>\n <Button\n data-testid=\"cancel-button\"\n disabled={isFileLoading}\n label={t(\"neetoPayments.common.cancel\")}\n style=\"tertiary\"\n onClick={onClose}\n />\n <Button\n data-testid=\"neeto-payments-export-button\"\n disabled={isFileLoading}\n label={t(\"neetoPayments.common.export\")}\n loading={isFileLoading}\n onClick={handleGenerateClick}\n />\n </>\n )}\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default ExportModal;\n","import { capitalize } from \"neetocist\";\nimport { Button } from \"neetoui\";\nimport { join, map, pipe, split } from \"ramda\";\n\nimport CopyButtonWrapper from \"components/Common/CopyButtonWrapper\";\nimport { buildStripeAccountLink } from \"utils\";\n\nexport const renderIdentifier = ({ identifier = \"\", isLive = false } = {}) => (\n <CopyButtonWrapper content={identifier}>\n <Button\n href={buildStripeAccountLink(identifier, isLive)}\n label={identifier}\n size=\"small\"\n style=\"link\"\n target=\"_blank\"\n />\n </CopyButtonWrapper>\n);\n\nexport const renderCountry = pipe(split(\"_\"), map(capitalize), join(\" \"));\n","import { t } from \"i18next\";\n\nimport {\n renderDate,\n renderFullName,\n renderStatus,\n} from \"utils/renderFunctions\";\n\nimport { renderCountry, renderIdentifier } from \"../utils/renderFunctions\";\n\nexport const COLUMNS = [\n {\n title: t(\"neetoPayments.common.id\"),\n dataIndex: \"id\",\n key: \"id\",\n width: 85,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.identifier\"),\n dataIndex: \"identifier\",\n key: \"identifier\",\n width: 300,\n render: renderIdentifier,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.status\"),\n dataIndex: \"status\",\n key: \"status\",\n width: 150,\n render: renderStatus(\"account\"),\n sorter: true,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.name\"),\n dataIndex: \"first_name\",\n key: \"first_name\",\n width: 300,\n sorter: true,\n render: renderFullName,\n },\n {\n title: t(\"neetoPayments.common.email\"),\n dataIndex: \"email\",\n key: \"email\",\n width: 300,\n ellipsis: true,\n sorter: true,\n },\n {\n title: t(\"neetoPayments.common.country\"),\n dataIndex: \"country\",\n key: \"country\",\n width: 150,\n render: renderCountry,\n sorter: true,\n },\n {\n title: t(\"neetoPayments.common.createdAt\"),\n dataIndex: \"createdAt\",\n key: \"createdAt\",\n width: 220,\n render: renderDate,\n sorter: true,\n },\n];\n","import { useState } from \"react\";\n\nimport { removeBy } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { buildFiltersFromURL } from \"neetofilters\";\nimport { mergeLeft } from \"ramda\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { DEFAULT_SORT_PROPERTIES } from \"src/constants\";\nimport { buildDefaultPageProperties } from \"utils/dashboard\";\n\nimport { FILTER_COLUMNS, TAB, TABS, SEARCH_PROPS } from \"../constants\";\nimport { COLUMNS } from \"../constants/columns\";\n\nexport const useFiltersAndPagination = () => {\n const history = useHistory();\n const [isFilterButtonVisible, setIsFilterButtonVisible] = useState(false);\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n const [pageProperties, setPageProperties] = useState(\n buildDefaultPageProperties(TABS)\n );\n const [sortProperties, setSortProperties] = useState(DEFAULT_SORT_PROPERTIES);\n const { tab = TAB.all } = useQueryParams();\n\n const { searchTerm = \"\" } = getQueryParams();\n const searchKeywordProps = {\n ...SEARCH_PROPS,\n key: \"search_term\",\n value: searchTerm.trim(),\n };\n\n const [filters, setFilters] = useState(\n buildFiltersFromURL([...FILTER_COLUMNS, searchKeywordProps])\n );\n const [dataSize, setDataSize] = useState(null);\n\n const columnData =\n tab !== TAB.all ? removeBy({ key: \"status\" }, COLUMNS) : COLUMNS;\n\n const handleTabChange = tab => {\n setDataSize(null);\n const queryParams = getQueryParams({ toCamelCase: false });\n const newParams = {\n tab,\n page: pageProperties[tab]?.page,\n page_size: pageProperties[tab]?.pageSize,\n };\n\n history.push(\n buildUrl(window.location.pathname, mergeLeft(newParams, queryParams))\n );\n };\n\n return {\n isFilterButtonVisible,\n isFilterPaneOpen,\n pageProperties,\n filters,\n searchKeywordProps,\n tab,\n sortProperties,\n columnData,\n dataSize,\n setDataSize,\n setIsFilterButtonVisible,\n setIsFilterPaneOpen,\n setPageProperties,\n setFilters,\n handleTabChange,\n setSortProperties,\n };\n};\n","import { useEffect } from \"react\";\n\nimport { camelToSnakeCase, isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { useTableConfigurations } from \"neetomolecules/Columns\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Table, NoData, Spinner } from \"neetoui\";\nimport { assoc, mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { useFetchConnectedAccounts } from \"hooks/reactQuery/stripe/useAccountsApi\";\nimport { DEFAULT_SORT_PROPERTIES, SORT_DIRECTIONS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport { buildPayload, buildRowData } from \"utils/dashboard\";\n\nimport { TAB } from \"./constants\";\n\nconst List = ({\n columnData,\n filters,\n pageProperties,\n setDataSize,\n setIsFilterButtonVisible,\n setPageProperties,\n setSortProperties,\n sortProperties,\n tab,\n}) => {\n const history = useHistory();\n const { t } = useTranslation();\n const { isTableConfigurationLoading, customizedColumns, hideColumn } =\n useTableConfigurations(TABLE_KEYS.ACCOUNTS_TABLE, columnData);\n\n const {\n data: { accounts = [], views = {} } = {},\n isLoading,\n isFetching,\n } = useFetchConnectedAccounts(\n buildPayload({ filters, pageProperties, sortProperties, tab })\n );\n\n const dataSize = views[tab];\n\n useEffect(() => {\n setIsFilterButtonVisible(isPresent(accounts) || isPresent(filters));\n setDataSize(dataSize);\n }, [accounts]);\n\n const handleTablePagination = (page, pageSize) => {\n const queryParams = getQueryParams({ toCamelCase: false });\n history.push(\n buildUrl(\n window.location.pathname,\n mergeLeft({ page, page_size: pageSize }, queryParams)\n )\n );\n setPageProperties(assoc(tab, { page, pageSize }));\n };\n\n useEffect(() => {\n handleTablePagination(DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE);\n setSortProperties(DEFAULT_SORT_PROPERTIES);\n }, [filters, tab]);\n\n const handleTableChange = (_, __, sorter) => {\n setSortProperties(\n isPresent(sorter?.column)\n ? {\n sortBy: camelToSnakeCase(sorter.field),\n orderBy: sorter.order === \"ascend\" ? \"ASC\" : \"DESC\",\n }\n : DEFAULT_SORT_PROPERTIES\n );\n };\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n if (dataSize <= 0 || !isPresent(accounts)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n title={\n tab === TAB.all\n ? t(\"neetoPayments.emptyState.account\")\n : t(\"neetoPayments.emptyState.accountWithStatus\", { status: tab })\n }\n />\n </div>\n );\n }\n\n return (\n <TableWrapper hasPagination={dataSize > pageProperties[tab]?.pageSize}>\n <Table\n fixedHeight\n allowRowClick={false}\n columnData={customizedColumns}\n currentPageNumber={pageProperties[tab]?.page}\n handlePageChange={handleTablePagination}\n loading={isFetching || isTableConfigurationLoading}\n rowData={buildRowData({ data: accounts, pageProperties, tab })}\n rowSelection={false}\n sortDirections={SORT_DIRECTIONS}\n totalCount={dataSize}\n paginationProps={{\n showSizeChanger: true,\n hideOnSinglePage: true,\n pageSize: pageProperties[tab]?.pageSize,\n total: dataSize,\n }}\n onChange={handleTableChange}\n onColumnHide={({ key }) => hideColumn(key)}\n />\n </TableWrapper>\n );\n};\n\nexport default List;\n","import { useState, useTransition } from \"react\";\n\nimport { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\nimport { withTitle } from \"neetocommons/react-utils\";\nimport { Bar as FiltersBar } from \"neetofilters\";\nimport Header from \"neetomolecules/Header\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport { Tab, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport withReactQuery from \"components/Common/withReactQuery\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\n\nimport {\n DASHBOARD_MANDATORY_COLUMNS,\n FILTER_COLUMNS,\n TAB,\n TABS,\n} from \"./constants\";\nimport ExportModal from \"./ExportModal\";\nimport { useFiltersAndPagination } from \"./hooks/useFiltersAndPagination\";\nimport List from \"./List\";\n\nconst AccountsDashboard = () => {\n const [_, startTransition] = useTransition();\n const { t } = useTranslation();\n\n const [showExportModal, setShowExportModal] = useState(false);\n const {\n isFilterButtonVisible,\n isFilterPaneOpen,\n pageProperties,\n filters,\n searchKeywordProps,\n tab,\n sortProperties,\n columnData,\n dataSize,\n setDataSize,\n setIsFilterButtonVisible,\n setIsFilterPaneOpen,\n setPageProperties,\n setFilters,\n handleTabChange,\n setSortProperties,\n } = useFiltersAndPagination();\n\n const isTabsVisible = isFilterButtonVisible || tab !== \"all\";\n\n const handleFiltersChange = filters => {\n startTransition(() => {\n setFilters(filters);\n });\n };\n\n return (\n <>\n <Header\n title={t(\"neetoPayments.title.account\")}\n searchProps={\n isFilterButtonVisible && {\n placeholder: t(\"neetoPayments.common.search\"),\n className: \"w-80\",\n }\n }\n />\n {isTabsVisible && (\n <Tab>\n {TABS.map(item => (\n <Tab.Item\n active={tab === item}\n key={item}\n onClick={() => handleTabChange(item)}\n >\n {t(`neetoPayments.common.${item}`)}\n </Tab.Item>\n ))}\n </Tab>\n )}\n <SubHeader\n className=\"my-4\"\n leftActionBlock={\n isPresent(dataSize) && (\n <Typography\n className=\"neeto-ui-gray-800 me-2 font-semibold\"\n component=\"h4\"\n >\n {tab === TAB.all\n ? t(\"neetoPayments.countOf.account\", { count: dataSize })\n : t(\"neetoPayments.countOf.accountWithStatus\", {\n count: dataSize,\n status: tab,\n })}\n </Typography>\n )\n }\n rightActionBlock={\n isFilterButtonVisible && (\n <SubHeader.RightBlock\n columnsButtonProps={{\n columnData,\n fixedColumns: DASHBOARD_MANDATORY_COLUMNS,\n tableKey: TABLE_KEYS.ACCOUNTS_TABLE,\n }}\n downloadButtonProps={{\n onClick: () => setShowExportModal(true),\n }}\n filterProps={{\n columns: FILTER_COLUMNS,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleFiltersChange,\n }}\n />\n )\n }\n />\n <FiltersBar\n columns={FILTER_COLUMNS}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleFiltersChange}\n />\n <List\n {...{\n columnData,\n filters,\n pageProperties,\n setDataSize,\n setIsFilterButtonVisible,\n setPageProperties,\n setSortProperties,\n sortProperties,\n tab,\n }}\n />\n <ExportModal\n {...{\n filters,\n setShowExportModal,\n showExportModal,\n sortProperties,\n tab,\n }}\n />\n </>\n );\n};\n\nexport default withTitle(\n withReactQuery(AccountsDashboard),\n t(\"neetoPayments.title.account\")\n);\n"],"names":["TAB","all","connected","disconnected","incomplete","TABS","Object","values","SEARCH_PROPS","key","node","model","DASHBOARD_MANDATORY_COLUMNS","FILTER_COLUMNS","label","t","type","showRuleSelector","ExportModal","showExportModal","setShowExportModal","tab","filters","sortProperties","useTranslation","downloadUrl","setDownloadUrl","useState","isGenerating","setIsGenerating","mutate","exportCsv","isPending","useExportData","isFileLoading","token","useMemo","uuidV4","receivedCallback","data","download_url","handleGenerateClick","payload","kind","onSuccess","useEffect","channel","exportChannel","undefined","onClose","_jsxs","Modal","isOpen","children","_jsx","Header","Typography","style","Body","Footer","className","Button","href","icon","Download","onClick","_Fragment","disabled","loading","renderIdentifier","identifier","isLive","CopyButtonWrapper","content","buildStripeAccountLink","size","target","renderCountry","pipe","split","map","capitalize","join","COLUMNS","title","dataIndex","width","isHidable","render","renderStatus","sorter","renderFullName","ellipsis","renderDate","useFiltersAndPagination","history","useHistory","isFilterButtonVisible","setIsFilterButtonVisible","isFilterPaneOpen","setIsFilterPaneOpen","pageProperties","setPageProperties","buildDefaultPageProperties","setSortProperties","DEFAULT_SORT_PROPERTIES","useQueryParams","searchTerm","getQueryParams","searchKeywordProps","value","trim","setFilters","buildFiltersFromURL","dataSize","setDataSize","columnData","removeBy","handleTabChange","queryParams","toCamelCase","newParams","page","page_size","pageSize","push","buildUrl","window","location","pathname","mergeLeft","List","isTableConfigurationLoading","customizedColumns","hideColumn","useTableConfigurations","TABLE_KEYS","ACCOUNTS_TABLE","accounts","views","isLoading","isFetching","useFetchConnectedAccounts","buildPayload","isPresent","handleTablePagination","assoc","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","handleTableChange","_","__","column","sortBy","camelToSnakeCase","field","orderBy","order","Spinner","NoData","status","TableWrapper","hasPagination","Table","fixedHeight","allowRowClick","currentPageNumber","handlePageChange","rowData","buildRowData","rowSelection","sortDirections","SORT_DIRECTIONS","totalCount","paginationProps","showSizeChanger","hideOnSinglePage","total","onChange","onColumnHide","AccountsDashboard","startTransition","useTransition","isTabsVisible","handleFiltersChange","searchProps","placeholder","Tab","item","Item","active","SubHeader","leftActionBlock","component","count","rightActionBlock","RightBlock","columnsButtonProps","fixedColumns","tableKey","downloadButtonProps","filterProps","columns","keyword","setIsOpen","FiltersBar","setIsPaneOpen","withTitle","withReactQuery"],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var neetoui = require('@bigbinary/neetoui');
5
+ var reactI18next = require('react-i18next');
6
+ var reactUtils = require('neetocommons/react-utils');
7
+ var axios = require('axios');
8
+ var constants = require('./index-D6V3Vofs.js');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+ require('i18next');
11
+ require('neetocommons/constants');
12
+ require('decimal.js');
13
+ require('neetocist');
14
+ require('neetocommons/utils');
15
+ require('ramda');
16
+
17
+ const update = ({
18
+ id,
19
+ payload
20
+ }) => axios.put(`${constants.BASE_URL}/api/v1/recurring_payments/${id}`, {
21
+ recurring_payment: payload
22
+ });
23
+ const recurringPaymentsApi = {
24
+ update
25
+ };
26
+
27
+ const useUpdateRecurringPayments = (keysToInvalidate = []) => reactUtils.useMutationWithInvalidation(recurringPaymentsApi.update, {
28
+ keysToInvalidate: [...keysToInvalidate]
29
+ });
30
+
31
+ const AdminCancelRecurringPaymentButton = ({
32
+ id,
33
+ style = "primary",
34
+ keysToInvalidate = []
35
+ }) => {
36
+ const [isAlertOpen, setIsAlertOpen] = react.useState(false);
37
+ const {
38
+ isPending,
39
+ mutate: updateRecurringPayment
40
+ } = useUpdateRecurringPayments(keysToInvalidate);
41
+ const {
42
+ t
43
+ } = reactI18next.useTranslation();
44
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
45
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
46
+ style,
47
+ label: t("neetoPayments.recurringPaymentCancel.buttonLabel"),
48
+ onClick: () => setIsAlertOpen(true)
49
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Alert, {
50
+ isOpen: isAlertOpen,
51
+ isSubmitting: isPending,
52
+ message: t("neetoPayments.recurringPaymentCancel.alertMessage"),
53
+ submitButtonLabel: t("neetoPayments.common.continue"),
54
+ title: t("neetoPayments.recurringPaymentCancel.alertTitle"),
55
+ onClose: () => setIsAlertOpen(false),
56
+ onSubmit: () => updateRecurringPayment({
57
+ id,
58
+ payload: {
59
+ status: "cancelled"
60
+ }
61
+ })
62
+ })]
63
+ });
64
+ };
65
+
66
+ module.exports = AdminCancelRecurringPaymentButton;
67
+ //# sourceMappingURL=AdminCancelRecurringPaymentButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminCancelRecurringPaymentButton.js","sources":["../../app/javascript/src/apis/recurring_payments.js","../../app/javascript/src/hooks/reactQuery/useRecurringPaymentsApi.js","../../app/javascript/src/components/AdminCancelRecurringPaymentButton/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst update = ({ id, payload }) =>\n axios.put(`${BASE_URL}/api/v1/recurring_payments/${id}`, {\n recurring_payment: payload,\n });\n\nconst recurringPaymentsApi = { update };\n\nexport default recurringPaymentsApi;\n","import { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport recurringPaymentsApi from \"apis/recurring_payments\";\n\nexport const useUpdateRecurringPayments = (keysToInvalidate = []) =>\n useMutationWithInvalidation(recurringPaymentsApi.update, {\n keysToInvalidate: [...keysToInvalidate],\n });\n","import { useState } from \"react\";\n\nimport { Button, Alert } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useUpdateRecurringPayments } from \"hooks/reactQuery/useRecurringPaymentsApi\";\n\nconst AdminCancelRecurringPaymentButton = ({\n id,\n style = \"primary\",\n keysToInvalidate = [],\n}) => {\n const [isAlertOpen, setIsAlertOpen] = useState(false);\n const { isPending, mutate: updateRecurringPayment } =\n useUpdateRecurringPayments(keysToInvalidate);\n\n const { t } = useTranslation();\n\n return (\n <>\n <Button\n {...{ style }}\n label={t(\"neetoPayments.recurringPaymentCancel.buttonLabel\")}\n onClick={() => setIsAlertOpen(true)}\n />\n <Alert\n isOpen={isAlertOpen}\n isSubmitting={isPending}\n message={t(\"neetoPayments.recurringPaymentCancel.alertMessage\")}\n submitButtonLabel={t(\"neetoPayments.common.continue\")}\n title={t(\"neetoPayments.recurringPaymentCancel.alertTitle\")}\n onClose={() => setIsAlertOpen(false)}\n onSubmit={() =>\n updateRecurringPayment({ id, payload: { status: \"cancelled\" } })\n }\n />\n </>\n );\n};\n\nexport default AdminCancelRecurringPaymentButton;\n"],"names":["update","id","payload","axios","put","BASE_URL","recurring_payment","recurringPaymentsApi","useUpdateRecurringPayments","keysToInvalidate","useMutationWithInvalidation","AdminCancelRecurringPaymentButton","style","isAlertOpen","setIsAlertOpen","useState","isPending","mutate","updateRecurringPayment","t","useTranslation","_jsxs","_Fragment","children","_jsx","Button","label","onClick","Alert","isOpen","isSubmitting","message","submitButtonLabel","title","onClose","onSubmit","status"],"mappings":";;;;;;;;;;;;;;;;AAIA,MAAMA,MAAM,GAAGA,CAAC;EAAEC,EAAE;AAAEC,EAAAA;AAAQ,CAAC,KAC7BC,KAAK,CAACC,GAAG,CAAC,GAAGC,kBAAQ,CAAA,2BAAA,EAA8BJ,EAAE,CAAA,CAAE,EAAE;AACvDK,EAAAA,iBAAiB,EAAEJ;AACrB,CAAC,CAAC;AAEJ,MAAMK,oBAAoB,GAAG;AAAEP,EAAAA;AAAO,CAAC;;ACLhC,MAAMQ,0BAA0B,GAAGA,CAACC,gBAAgB,GAAG,EAAE,KAC9DC,sCAA2B,CAACH,oBAAoB,CAACP,MAAM,EAAE;EACvDS,gBAAgB,EAAE,CAAC,GAAGA,gBAAgB;AACxC,CAAC,CAAC;;ACAEE,MAAAA,iCAAiC,GAAGA,CAAC;EACzCV,EAAE;AACFW,EAAAA,KAAK,GAAG,SAAS;AACjBH,EAAAA,gBAAgB,GAAG;AACrB,CAAC,KAAK;EACJ,MAAM,CAACI,WAAW,EAAEC,cAAc,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;EACrD,MAAM;IAAEC,SAAS;AAAEC,IAAAA,MAAM,EAAEC;AAAuB,GAAC,GACjDV,0BAA0B,CAACC,gBAAgB,CAAC;EAE9C,MAAM;AAAEU,IAAAA;GAAG,GAAGC,2BAAc,EAAE;EAE9B,oBACEC,eAAA,CAAAC,mBAAA,EAAA;IAAAC,QAAA,EAAA,cACEC,cAAA,CAACC,cAAM,EAAA;MACCb,KAAK;AACXc,MAAAA,KAAK,EAAEP,CAAC,CAAC,kDAAkD,CAAE;AAC7DQ,MAAAA,OAAO,EAAEA,MAAMb,cAAc,CAAC,IAAI;AAAE,KACrC,CAAC,eACFU,cAAA,CAACI,aAAK,EAAA;AACJC,MAAAA,MAAM,EAAEhB,WAAY;AACpBiB,MAAAA,YAAY,EAAEd,SAAU;AACxBe,MAAAA,OAAO,EAAEZ,CAAC,CAAC,mDAAmD,CAAE;AAChEa,MAAAA,iBAAiB,EAAEb,CAAC,CAAC,+BAA+B,CAAE;AACtDc,MAAAA,KAAK,EAAEd,CAAC,CAAC,iDAAiD,CAAE;AAC5De,MAAAA,OAAO,EAAEA,MAAMpB,cAAc,CAAC,KAAK,CAAE;AACrCqB,MAAAA,QAAQ,EAAEA,MACRjB,sBAAsB,CAAC;QAAEjB,EAAE;AAAEC,QAAAA,OAAO,EAAE;AAAEkC,UAAAA,MAAM,EAAE;AAAY;OAAG;AAChE,KACF,CAAC;AAAA,GACF,CAAC;AAEP;;;;"}