@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,510 @@
1
+ import { useState, useMemo, useEffect, useTransition } from 'react';
2
+ import { t } from 'i18next';
3
+ import { useQueryParams, withTitle } from 'neetocommons/react-utils';
4
+ import { buildFiltersFromURL, Bar } from '@bigbinary/neeto-filters-frontend';
5
+ import Header from '@bigbinary/neeto-molecules/Header';
6
+ import SubHeader from '@bigbinary/neeto-molecules/SubHeader';
7
+ import { Modal, Typography, Button, Spinner, NoData, Table, Tab } from '@bigbinary/neetoui';
8
+ import { useTranslation } from 'react-i18next';
9
+ import { u as useExportData, b as buildDefaultPageProperties, a as buildPayload, c as buildRowData, w as withReactQuery } from './dashboard-CwvqEeOl.js';
10
+ import { e as exportChannel, T as TABLE_KEYS } from './exportChannel-Db0U5gc1.js';
11
+ import { Download } from '@bigbinary/neeto-icons';
12
+ import { u as uuidV4, D as DEFAULT_SORT_PROPERTIES$1, S as SORT_DIRECTIONS } from './index-CNouM9_z.js';
13
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
14
+ import { camelToSnakeCase, removeBy, snakeToCamelCase, isPresent } from 'neetocist';
15
+ import { buildUrl, getQueryParams } from 'neetocommons/utils';
16
+ import { curry, assoc, insert, mergeLeft } from 'ramda';
17
+ import { useHistory } from 'react-router-dom';
18
+ import { r as renderStatus, b as renderDate } from './renderFunctions-Bx5nzyE_.js';
19
+ import { C as CopyButtonWrapper } from './CopyButtonWrapper-Bp5IVO76.js';
20
+ import { DEFAULT_PAGE_SIZE, DEFAULT_PAGE_INDEX } from 'neetocommons/constants';
21
+ import { useTableConfigurations } from '@bigbinary/neeto-molecules/Columns';
22
+ import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
23
+ import { u as useFetchStripePayouts, a as useFetchStripePlatformPayouts } from './usePlatformApi-sJUY6wju.js';
24
+ import '@tanstack/react-query';
25
+ import '@tanstack/react-query-devtools';
26
+ import 'axios';
27
+ import 'decimal.js';
28
+ import '@bigbinary/neeto-molecules/DateFormat';
29
+ import '@bigbinary/neeto-molecules/CopyToClipboardButton';
30
+ import 'qs';
31
+ import './queryConstants-C7AqdemO.js';
32
+
33
+ const TAB = {
34
+ all: "all",
35
+ paid: "paid",
36
+ inTransit: "inTransit",
37
+ failed: "failed",
38
+ canceled: "canceled",
39
+ pending: "pending"
40
+ };
41
+ const TABS = Object.values(TAB);
42
+ const SEARCH_PROPS = {
43
+ key: "keyword",
44
+ node: "identifier,destination_identifier",
45
+ model: "NeetoPaymentsEngine::Payout"
46
+ };
47
+ const DASHBOARD_MANDATORY_COLUMNS = ["id", "status", "identifier"];
48
+ const FILTER_COLUMNS = [{
49
+ key: "created_at",
50
+ label: t("neetoPayments.common.createdAt"),
51
+ node: "created_at",
52
+ type: "date",
53
+ showRuleSelector: true
54
+ }, {
55
+ key: "arrival_date",
56
+ label: t("neetoPayments.common.arrivalDate"),
57
+ node: "arrival_date",
58
+ type: "date",
59
+ showRuleSelector: true
60
+ }];
61
+ const DEFAULT_SORT_PROPERTIES = {
62
+ sortBy: "created_at",
63
+ orderBy: "DESC"
64
+ };
65
+
66
+ const ExportModal = ({
67
+ showExportModal,
68
+ setShowExportModal,
69
+ tab,
70
+ filters,
71
+ sortProperties = {}
72
+ }) => {
73
+ const {
74
+ t
75
+ } = useTranslation();
76
+ const [downloadUrl, setDownloadUrl] = useState("");
77
+ const [isGenerating, setIsGenerating] = useState(false);
78
+ const {
79
+ mutate: exportCsv,
80
+ isPending
81
+ } = useExportData();
82
+ const isFileLoading = isPending || isGenerating;
83
+ const token = useMemo(() => `payout-report-${uuidV4()}`, []);
84
+ const receivedCallback = data => {
85
+ if (!data.download_url) return;
86
+ setDownloadUrl(data.download_url);
87
+ setIsGenerating(false);
88
+ };
89
+ const handleGenerateClick = () => {
90
+ const payload = {
91
+ kind: "payout",
92
+ token,
93
+ filters,
94
+ tab,
95
+ ...sortProperties
96
+ };
97
+ exportCsv(payload, {
98
+ onSuccess: () => {
99
+ setDownloadUrl("");
100
+ setIsGenerating(true);
101
+ }
102
+ });
103
+ };
104
+ useEffect(() => {
105
+ if (showExportModal) {
106
+ const channel = exportChannel(token, receivedCallback);
107
+ setDownloadUrl("");
108
+ setIsGenerating(false);
109
+ return () => {
110
+ channel.disconnected();
111
+ };
112
+ }
113
+ return undefined;
114
+ }, [showExportModal, token]);
115
+ const onClose = () => setShowExportModal(false);
116
+ return /*#__PURE__*/jsxs(Modal, {
117
+ onClose,
118
+ isOpen: showExportModal,
119
+ children: [/*#__PURE__*/jsx(Modal.Header, {
120
+ children: /*#__PURE__*/jsx(Typography, {
121
+ style: "h2",
122
+ children: t("neetoPayments.export.title.payout")
123
+ })
124
+ }), /*#__PURE__*/jsx(Modal.Body, {
125
+ children: isFileLoading ? /*#__PURE__*/jsx(Typography, {
126
+ style: "body2",
127
+ children: t("neetoPayments.export.pleaseWait")
128
+ }) : /*#__PURE__*/jsx(Typography, {
129
+ style: "body2",
130
+ children: downloadUrl ? t("neetoPayments.export.fileReady") : t("neetoPayments.export.download.payout")
131
+ })
132
+ }), /*#__PURE__*/jsx(Modal.Footer, {
133
+ className: "space-x-2",
134
+ children: downloadUrl ? /*#__PURE__*/jsx(Button, {
135
+ "data-testid": "neeto-payments-download-button",
136
+ href: downloadUrl,
137
+ icon: Download,
138
+ label: t("neetoPayments.common.download"),
139
+ onClick: onClose
140
+ }) : /*#__PURE__*/jsxs(Fragment, {
141
+ children: [/*#__PURE__*/jsx(Button, {
142
+ "data-testid": "cancel-button",
143
+ disabled: isFileLoading,
144
+ label: t("neetoPayments.common.cancel"),
145
+ style: "tertiary",
146
+ onClick: onClose
147
+ }), /*#__PURE__*/jsx(Button, {
148
+ "data-testid": "neeto-payments-export-button",
149
+ disabled: isFileLoading,
150
+ label: t("neetoPayments.common.export"),
151
+ loading: isFileLoading,
152
+ onClick: handleGenerateClick
153
+ })]
154
+ })
155
+ })]
156
+ });
157
+ };
158
+
159
+ const COLUMNS = [{
160
+ title: t("neetoPayments.common.id"),
161
+ dataIndex: "id",
162
+ key: "id",
163
+ width: 85,
164
+ isHidable: false
165
+ }, {
166
+ title: t("neetoPayments.common.status"),
167
+ dataIndex: "status",
168
+ key: "status",
169
+ render: renderStatus("payout"),
170
+ width: 150,
171
+ sorter: true,
172
+ isHidable: false
173
+ }, {
174
+ title: t("neetoPayments.common.amount"),
175
+ dataIndex: "amount",
176
+ key: "amount",
177
+ width: 150,
178
+ sorter: true
179
+ }, {
180
+ title: t("neetoPayments.common.createdAt"),
181
+ dataIndex: "createdAt",
182
+ key: "createdAt",
183
+ width: 220,
184
+ render: renderDate,
185
+ sorter: true
186
+ }, {
187
+ title: t("neetoPayments.common.arrivalDate"),
188
+ dataIndex: "arrivalDate",
189
+ key: "arrivalDate",
190
+ width: 220,
191
+ render: renderDate,
192
+ sorter: true
193
+ }, {
194
+ title: t("neetoPayments.common.destinationIdentifier"),
195
+ dataIndex: "destinationIdentifier",
196
+ key: "destinationIdentifier",
197
+ width: 300
198
+ }];
199
+ const IDENTIFIER_COLUMN = {
200
+ title: t("neetoPayments.common.identifier"),
201
+ dataIndex: "identifier",
202
+ key: "identifier",
203
+ width: 300,
204
+ isHidable: false
205
+ };
206
+
207
+ const processTab = status => camelToSnakeCase(status).split("_").join(" ");
208
+ const renderPayoutIdentifier = curry((route, {
209
+ identifier = "",
210
+ id = ""
211
+ }) => /*#__PURE__*/jsx(CopyButtonWrapper, {
212
+ content: identifier,
213
+ children: /*#__PURE__*/jsx(Button, {
214
+ label: identifier,
215
+ size: "small",
216
+ style: "link",
217
+ to: buildUrl(route, {
218
+ id
219
+ })
220
+ })
221
+ }));
222
+
223
+ const useFiltersAndPagination = payoutsPageRoute => {
224
+ const history = useHistory();
225
+ const [isFilterButtonVisible, setIsFilterButtonVisible] = useState(false);
226
+ const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);
227
+ const [pageProperties, setPageProperties] = useState(buildDefaultPageProperties(TABS));
228
+ const [sortProperties, setSortProperties] = useState(DEFAULT_SORT_PROPERTIES$1);
229
+ const {
230
+ tab = TAB.all
231
+ } = useQueryParams();
232
+ const {
233
+ searchTerm = ""
234
+ } = getQueryParams();
235
+ const searchKeywordProps = {
236
+ ...SEARCH_PROPS,
237
+ key: "search_term",
238
+ value: searchTerm.trim()
239
+ };
240
+ const [filters, setFilters] = useState(buildFiltersFromURL([...FILTER_COLUMNS, searchKeywordProps]));
241
+ const [dataSize, setDataSize] = useState(null);
242
+ const identifierColumn = assoc("render", renderPayoutIdentifier(payoutsPageRoute), IDENTIFIER_COLUMN);
243
+ const columns = insert(1, identifierColumn, COLUMNS);
244
+ const columnData = tab !== TAB.all ? removeBy({
245
+ key: "status"
246
+ }, columns) : columns;
247
+ const handleTabChange = tab => {
248
+ setDataSize(null);
249
+ const queryParams = getQueryParams({
250
+ toCamelCase: false
251
+ });
252
+ const newParams = {
253
+ tab,
254
+ page: pageProperties[tab]?.page,
255
+ page_size: pageProperties[tab]?.pageSize
256
+ };
257
+ history.push(buildUrl(window.location.pathname, mergeLeft(newParams, queryParams)));
258
+ };
259
+ return {
260
+ isFilterButtonVisible,
261
+ isFilterPaneOpen,
262
+ pageProperties,
263
+ filters,
264
+ searchKeywordProps,
265
+ tab,
266
+ sortProperties,
267
+ columnData,
268
+ dataSize,
269
+ setDataSize,
270
+ setIsFilterButtonVisible,
271
+ setIsFilterPaneOpen,
272
+ setPageProperties,
273
+ setFilters,
274
+ handleTabChange,
275
+ setSortProperties
276
+ };
277
+ };
278
+
279
+ const useFetchData = ({
280
+ isPlatformEnabled,
281
+ payload
282
+ }) => {
283
+ const data = {};
284
+ const kind = isPlatformEnabled ? "platform" : "connected";
285
+ const tab = snakeToCamelCase(payload?.tab || "");
286
+ data.connected = useFetchStripePayouts(payload, {
287
+ enabled: !isPlatformEnabled
288
+ });
289
+ data.platform = useFetchStripePlatformPayouts(payload, {
290
+ enabled: isPlatformEnabled
291
+ });
292
+ return {
293
+ data: data[kind]?.data?.payouts,
294
+ dataSize: data[kind]?.data?.views?.[tab],
295
+ isDataLoading: data[kind]?.isLoading,
296
+ isDataFetching: data[kind]?.isFetching
297
+ };
298
+ };
299
+
300
+ const List = ({
301
+ columnData,
302
+ filters,
303
+ pageProperties,
304
+ setDataSize,
305
+ setIsFilterButtonVisible,
306
+ setPageProperties,
307
+ setSortProperties,
308
+ sortProperties,
309
+ tab,
310
+ isPlatformEnabled
311
+ }) => {
312
+ const history = useHistory();
313
+ const {
314
+ t
315
+ } = useTranslation();
316
+ const {
317
+ isTableConfigurationLoading,
318
+ customizedColumns,
319
+ hideColumn
320
+ } = useTableConfigurations(TABLE_KEYS.PAYOUTS_TABLE, columnData);
321
+ const {
322
+ data: payouts,
323
+ isDataLoading,
324
+ dataSize,
325
+ isDataFetching
326
+ } = useFetchData({
327
+ payload: buildPayload({
328
+ filters,
329
+ pageProperties,
330
+ sortProperties,
331
+ tab
332
+ }),
333
+ isPlatformEnabled
334
+ });
335
+ useEffect(() => {
336
+ setIsFilterButtonVisible(isPresent(payouts) || isPresent(filters));
337
+ setDataSize(dataSize);
338
+ }, [payouts]);
339
+ const handleTablePagination = (page, pageSize) => {
340
+ const queryParams = getQueryParams({
341
+ toCamelCase: false
342
+ });
343
+ history.push(buildUrl(window.location.pathname, mergeLeft({
344
+ page,
345
+ page_size: pageSize
346
+ }, queryParams)));
347
+ setPageProperties(assoc(tab, {
348
+ page,
349
+ pageSize
350
+ }));
351
+ };
352
+ useEffect(() => {
353
+ handleTablePagination(DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE);
354
+ setSortProperties(DEFAULT_SORT_PROPERTIES);
355
+ }, [filters, tab]);
356
+ const handleTableChange = (_, __, sorter) => {
357
+ setSortProperties(isPresent(sorter?.column) ? {
358
+ sortBy: camelToSnakeCase(sorter.field),
359
+ orderBy: sorter.order === "ascend" ? "ASC" : "DESC"
360
+ } : DEFAULT_SORT_PROPERTIES);
361
+ };
362
+ if (isDataLoading) {
363
+ return /*#__PURE__*/jsx("div", {
364
+ className: "flex h-full w-full items-center justify-center",
365
+ children: /*#__PURE__*/jsx(Spinner, {})
366
+ });
367
+ }
368
+ if (dataSize <= 0 || !isPresent(payouts)) {
369
+ return /*#__PURE__*/jsx("div", {
370
+ className: "flex h-full w-full items-center justify-center",
371
+ children: /*#__PURE__*/jsx(NoData, {
372
+ title: t(`neetoPayments.emptyState.payouts.${tab}`)
373
+ })
374
+ });
375
+ }
376
+ return /*#__PURE__*/jsx(TableWrapper, {
377
+ hasPagination: dataSize > pageProperties[tab]?.pageSize,
378
+ children: /*#__PURE__*/jsx(Table, {
379
+ fixedHeight: true,
380
+ allowRowClick: false,
381
+ columnData: customizedColumns,
382
+ currentPageNumber: pageProperties[tab]?.page,
383
+ handlePageChange: handleTablePagination,
384
+ loading: isDataFetching || isTableConfigurationLoading,
385
+ rowData: buildRowData({
386
+ data: payouts,
387
+ pageProperties,
388
+ tab
389
+ }),
390
+ rowSelection: false,
391
+ sortDirections: SORT_DIRECTIONS,
392
+ totalCount: dataSize,
393
+ paginationProps: {
394
+ showSizeChanger: true,
395
+ hideOnSinglePage: true,
396
+ pageSize: pageProperties[tab]?.pageSize,
397
+ total: dataSize
398
+ },
399
+ onChange: handleTableChange,
400
+ onColumnHide: ({
401
+ key
402
+ }) => hideColumn(key)
403
+ })
404
+ });
405
+ };
406
+
407
+ const PayoutsDashboard = ({
408
+ payoutsPageRoute,
409
+ isPlatformEnabled
410
+ }) => {
411
+ const [_, startTransition] = useTransition();
412
+ const {
413
+ t
414
+ } = useTranslation();
415
+ const [showExportModal, setShowExportModal] = useState(false);
416
+ const {
417
+ isFilterButtonVisible,
418
+ isFilterPaneOpen,
419
+ pageProperties,
420
+ filters,
421
+ searchKeywordProps,
422
+ tab,
423
+ sortProperties,
424
+ columnData,
425
+ dataSize,
426
+ setDataSize,
427
+ setIsFilterButtonVisible,
428
+ setIsFilterPaneOpen,
429
+ setPageProperties,
430
+ setFilters,
431
+ handleTabChange,
432
+ setSortProperties
433
+ } = useFiltersAndPagination(payoutsPageRoute);
434
+ const isTabsVisible = isFilterButtonVisible || tab !== "all";
435
+ const handleFiltersChange = filters => {
436
+ startTransition(() => {
437
+ setFilters(filters);
438
+ });
439
+ };
440
+ return /*#__PURE__*/jsxs(Fragment, {
441
+ children: [/*#__PURE__*/jsx(Header, {
442
+ title: t("neetoPayments.title.payouts"),
443
+ searchProps: isFilterButtonVisible && {
444
+ placeholder: t("neetoPayments.common.search"),
445
+ className: "w-80"
446
+ }
447
+ }), isTabsVisible && /*#__PURE__*/jsx(Tab, {
448
+ children: TABS.map(item => /*#__PURE__*/jsx(Tab.Item, {
449
+ active: tab === item,
450
+ onClick: () => handleTabChange(item),
451
+ children: t(`neetoPayments.common.${item}`)
452
+ }, item))
453
+ }), /*#__PURE__*/jsx(SubHeader, {
454
+ className: "my-4",
455
+ leftActionBlock: dataSize > 0 && /*#__PURE__*/jsx(Typography, {
456
+ className: "neeto-ui-gray-800 me-2 font-semibold",
457
+ component: "h4",
458
+ children: tab === TAB.all ? t("neetoPayments.countOf.payout", {
459
+ count: dataSize
460
+ }) : t("neetoPayments.countOf.payoutWithStatus", {
461
+ count: dataSize,
462
+ status: processTab(tab)
463
+ })
464
+ }),
465
+ rightActionBlock: isFilterButtonVisible && /*#__PURE__*/jsx(SubHeader.RightBlock, {
466
+ columnsButtonProps: {
467
+ columnData,
468
+ fixedColumns: DASHBOARD_MANDATORY_COLUMNS,
469
+ tableKey: TABLE_KEYS.PAYOUTS_TABLE
470
+ },
471
+ downloadButtonProps: {
472
+ onClick: () => setShowExportModal(true)
473
+ },
474
+ filterProps: {
475
+ columns: FILTER_COLUMNS,
476
+ isOpen: isFilterPaneOpen,
477
+ keyword: searchKeywordProps,
478
+ setIsOpen: setIsFilterPaneOpen,
479
+ onChange: handleFiltersChange
480
+ }
481
+ })
482
+ }), /*#__PURE__*/jsx(Bar, {
483
+ columns: FILTER_COLUMNS,
484
+ keyword: searchKeywordProps,
485
+ setIsPaneOpen: setIsFilterPaneOpen,
486
+ onChange: handleFiltersChange
487
+ }), /*#__PURE__*/jsx(List, {
488
+ columnData,
489
+ filters,
490
+ isPlatformEnabled,
491
+ pageProperties,
492
+ setDataSize,
493
+ setIsFilterButtonVisible,
494
+ setPageProperties,
495
+ setSortProperties,
496
+ sortProperties,
497
+ tab
498
+ }), /*#__PURE__*/jsx(ExportModal, {
499
+ filters,
500
+ setShowExportModal,
501
+ showExportModal,
502
+ sortProperties,
503
+ tab
504
+ })]
505
+ });
506
+ };
507
+ var index = withTitle(withReactQuery(PayoutsDashboard), t("neetoPayments.title.payouts"));
508
+
509
+ export { index as default };
510
+ //# sourceMappingURL=PayoutsDashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayoutsDashboard.js","sources":["../app/javascript/src/components/PayoutsDashboard/constants/index.js","../app/javascript/src/components/PayoutsDashboard/ExportModal.jsx","../app/javascript/src/components/PayoutsDashboard/constants/columns.js","../app/javascript/src/components/PayoutsDashboard/utils/renderFunctions.jsx","../app/javascript/src/components/PayoutsDashboard/hooks/useFiltersAndPagination.js","../app/javascript/src/components/PayoutsDashboard/hooks/useFetchData.js","../app/javascript/src/components/PayoutsDashboard/List.jsx","../app/javascript/src/components/PayoutsDashboard/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const TAB = {\n all: \"all\",\n paid: \"paid\",\n inTransit: \"inTransit\",\n failed: \"failed\",\n canceled: \"canceled\",\n pending: \"pending\",\n};\n\nexport const TABS = Object.values(TAB);\n\nexport const SEARCH_PROPS = {\n key: \"keyword\",\n node: \"identifier,destination_identifier\",\n model: \"NeetoPaymentsEngine::Payout\",\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 key: \"arrival_date\",\n label: t(\"neetoPayments.common.arrivalDate\"),\n node: \"arrival_date\",\n type: \"date\",\n showRuleSelector: true,\n },\n];\n\nexport const DEFAULT_SORT_PROPERTIES = {\n sortBy: \"created_at\",\n orderBy: \"DESC\",\n};\n\nexport const STRIPE_PAYOUTS_TABLE_HIDDEN_COLUMNS_STORAGE_KEY =\n \"stripePayoutsDashboard\";\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(() => `payout-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: \"payout\",\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.payout\")}\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.payout\")}\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 { t } from \"i18next\";\n\nimport { renderDate, renderStatus } 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.status\"),\n dataIndex: \"status\",\n key: \"status\",\n render: renderStatus(\"payout\"),\n width: 150,\n sorter: true,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.amount\"),\n dataIndex: \"amount\",\n key: \"amount\",\n width: 150,\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 title: t(\"neetoPayments.common.arrivalDate\"),\n dataIndex: \"arrivalDate\",\n key: \"arrivalDate\",\n width: 220,\n render: renderDate,\n sorter: true,\n },\n {\n title: t(\"neetoPayments.common.destinationIdentifier\"),\n dataIndex: \"destinationIdentifier\",\n key: \"destinationIdentifier\",\n width: 300,\n },\n];\n\nexport const IDENTIFIER_COLUMN = {\n title: t(\"neetoPayments.common.identifier\"),\n dataIndex: \"identifier\",\n key: \"identifier\",\n width: 300,\n isHidable: false,\n};\n","import { camelToSnakeCase } from \"neetocist\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport { Button } from \"neetoui\";\nimport { curry } from \"ramda\";\n\nimport CopyButtonWrapper from \"components/Common/CopyButtonWrapper\";\n\nexport const processTab = status =>\n camelToSnakeCase(status).split(\"_\").join(\" \");\n\nexport const renderPayoutIdentifier = curry(\n (route, { identifier = \"\", id = \"\" }) => (\n <CopyButtonWrapper content={identifier}>\n <Button\n label={identifier}\n size=\"small\"\n style=\"link\"\n to={buildUrl(route, { id })}\n />\n </CopyButtonWrapper>\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 { assoc, insert, 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, IDENTIFIER_COLUMN } from \"../constants/columns\";\nimport { renderPayoutIdentifier } from \"../utils/renderFunctions\";\n\nexport const useFiltersAndPagination = payoutsPageRoute => {\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 identifierColumn = assoc(\n \"render\",\n renderPayoutIdentifier(payoutsPageRoute),\n IDENTIFIER_COLUMN\n );\n\n const columns = insert(1, identifierColumn, COLUMNS);\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 { snakeToCamelCase } from \"neetocist\";\n\nimport { useFetchStripePayouts } from \"hooks/reactQuery/stripe/useConnectApi\";\nimport { useFetchStripePlatformPayouts } from \"hooks/reactQuery/stripe/usePlatformApi\";\n\nexport const useFetchData = ({ isPlatformEnabled, payload }) => {\n const data = {};\n const kind = isPlatformEnabled ? \"platform\" : \"connected\";\n const tab = snakeToCamelCase(payload?.tab || \"\");\n\n data.connected = useFetchStripePayouts(payload, {\n enabled: !isPlatformEnabled,\n });\n\n data.platform = useFetchStripePlatformPayouts(payload, {\n enabled: isPlatformEnabled,\n });\n\n return {\n data: data[kind]?.data?.payouts,\n dataSize: data[kind]?.data?.views?.[tab],\n isDataLoading: data[kind]?.isLoading,\n isDataFetching: data[kind]?.isFetching,\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 { SORT_DIRECTIONS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport { buildPayload, buildRowData } from \"utils/dashboard\";\n\nimport { DEFAULT_SORT_PROPERTIES } from \"./constants\";\nimport { useFetchData } from \"./hooks/useFetchData\";\n\nconst List = ({\n columnData,\n filters,\n pageProperties,\n setDataSize,\n setIsFilterButtonVisible,\n setPageProperties,\n setSortProperties,\n sortProperties,\n tab,\n isPlatformEnabled,\n}) => {\n const history = useHistory();\n const { t } = useTranslation();\n\n const { isTableConfigurationLoading, customizedColumns, hideColumn } =\n useTableConfigurations(TABLE_KEYS.PAYOUTS_TABLE, columnData);\n\n const {\n data: payouts,\n isDataLoading,\n dataSize,\n isDataFetching,\n } = useFetchData({\n payload: buildPayload({ filters, pageProperties, sortProperties, tab }),\n isPlatformEnabled,\n });\n\n useEffect(() => {\n setIsFilterButtonVisible(isPresent(payouts) || isPresent(filters));\n setDataSize(dataSize);\n }, [payouts]);\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 (isDataLoading) {\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(payouts)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData title={t(`neetoPayments.emptyState.payouts.${tab}`)} />\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={isDataFetching || isTableConfigurationLoading}\n rowData={buildRowData({ data: payouts, 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 { 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\";\nimport { processTab } from \"./utils/renderFunctions\";\n\nconst PayoutsDashboard = ({ payoutsPageRoute, isPlatformEnabled }) => {\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(payoutsPageRoute);\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.payouts\")}\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 dataSize > 0 && (\n <Typography\n className=\"neeto-ui-gray-800 me-2 font-semibold\"\n component=\"h4\"\n >\n {tab === TAB.all\n ? t(\"neetoPayments.countOf.payout\", { count: dataSize })\n : t(\"neetoPayments.countOf.payoutWithStatus\", {\n count: dataSize,\n status: processTab(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.PAYOUTS_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 isPlatformEnabled,\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(PayoutsDashboard),\n t(\"neetoPayments.title.payouts\")\n);\n"],"names":["TAB","all","paid","inTransit","failed","canceled","pending","TABS","Object","values","SEARCH_PROPS","key","node","model","DASHBOARD_MANDATORY_COLUMNS","FILTER_COLUMNS","label","t","type","showRuleSelector","DEFAULT_SORT_PROPERTIES","sortBy","orderBy","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","disconnected","undefined","onClose","_jsxs","Modal","isOpen","children","_jsx","Header","Typography","style","Body","Footer","className","Button","href","icon","Download","onClick","_Fragment","disabled","loading","COLUMNS","title","dataIndex","width","isHidable","render","renderStatus","sorter","renderDate","IDENTIFIER_COLUMN","processTab","status","camelToSnakeCase","split","join","renderPayoutIdentifier","curry","route","identifier","id","CopyButtonWrapper","content","size","to","buildUrl","useFiltersAndPagination","payoutsPageRoute","history","useHistory","isFilterButtonVisible","setIsFilterButtonVisible","isFilterPaneOpen","setIsFilterPaneOpen","pageProperties","setPageProperties","buildDefaultPageProperties","setSortProperties","useQueryParams","searchTerm","getQueryParams","searchKeywordProps","value","trim","setFilters","buildFiltersFromURL","dataSize","setDataSize","identifierColumn","assoc","columns","insert","columnData","removeBy","handleTabChange","queryParams","toCamelCase","newParams","page","page_size","pageSize","push","window","location","pathname","mergeLeft","useFetchData","isPlatformEnabled","snakeToCamelCase","connected","useFetchStripePayouts","enabled","platform","useFetchStripePlatformPayouts","payouts","views","isDataLoading","isLoading","isDataFetching","isFetching","List","isTableConfigurationLoading","customizedColumns","hideColumn","useTableConfigurations","TABLE_KEYS","PAYOUTS_TABLE","buildPayload","isPresent","handleTablePagination","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","handleTableChange","_","__","column","field","order","Spinner","NoData","TableWrapper","hasPagination","Table","fixedHeight","allowRowClick","currentPageNumber","handlePageChange","rowData","buildRowData","rowSelection","sortDirections","SORT_DIRECTIONS","totalCount","paginationProps","showSizeChanger","hideOnSinglePage","total","onChange","onColumnHide","PayoutsDashboard","startTransition","useTransition","isTabsVisible","handleFiltersChange","searchProps","placeholder","Tab","map","item","Item","active","SubHeader","leftActionBlock","component","count","rightActionBlock","RightBlock","columnsButtonProps","fixedColumns","tableKey","downloadButtonProps","filterProps","keyword","setIsOpen","FiltersBar","setIsPaneOpen","withTitle","withReactQuery"],"mappings":"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"}