@bigbinary/neeto-payments-frontend 1.4.17 → 1.4.19

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