@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,597 @@
1
+ import { _ as _extends } from './extends-093996c9.js';
2
+ import React__default, { useState, useEffect, useTransition } from 'react';
3
+ import { t } from 'i18next';
4
+ import { isPresent, camelToSnakeCase, isNotPresent } from '@bigbinary/neeto-cist';
5
+ import { useQueryParams, withTitle } from '@bigbinary/neeto-commons-frontend/react-utils';
6
+ import { buildFiltersFromURL, Bar } from '@bigbinary/neeto-filters-frontend';
7
+ import Header from '@bigbinary/neeto-molecules/Header';
8
+ import SubHeader from '@bigbinary/neeto-molecules/SubHeader';
9
+ import Tab from '@bigbinary/neetoui/Tab';
10
+ import Typography from '@bigbinary/neetoui/Typography';
11
+ import { useTranslation } from 'react-i18next';
12
+ import { d as buildDefaultPageProperties, r as renderStatus, f as buildRowData, c as renderDate, e as buildPayload, w as withReactQuery } from './renderFunctions-5f829290.js';
13
+ import { T as TAB, a as TABS, b as TAB_METADATA, I as INITIAL_PANE_STATUS, D as DASHBOARD_MANDATORY_COLUMNS, K as KIND } from './index-1aedc364.js';
14
+ import { b as buildFilterColumns, m as modifySearchProps, a as buildPaymentColumns, r as renderSplitIdentifier, c as renderRefundIdentifier, i as isSplitKind, d as isTransferKind, e as isConnectedKind, f as isRefundKind, g as isPlatformKind, p as processResponse, h as renderIdentifier, E as ExportModal } from './ExportModal-a00544db.js';
15
+ import { getQueryParams, buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
16
+ import { modify, mergeLeft, isEmpty, assoc } from 'ramda';
17
+ import { useHistory } from 'react-router-dom';
18
+ import { DEFAULT_SORT_PROPERTIES, SORT_DIRECTIONS } from './constants.js';
19
+ import { p as processDataIndex } from './index-48f8b281.js';
20
+ import { DEFAULT_PAGE_SIZE, DEFAULT_PAGE_INDEX } from '@bigbinary/neeto-commons-frontend/constants';
21
+ import { useHiddenColumns } from '@bigbinary/neeto-molecules/Columns';
22
+ import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
23
+ import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
24
+ import Table from '@bigbinary/neetoui/Table';
25
+ import NoData from '@bigbinary/neetoui/NoData';
26
+ import { u as useFetchStripeTransactions, a as useFetchConnectedStripeAccount } from './useConnectApi-185a67ad.js';
27
+ import { u as useFetchStripeRefunds, a as useFetchStripePlatformTransactions, b as useFetchStripePlatformSplits, c as useFetchStripePlatformTransaction, d as useFetchStripePlatformAccount } from './usePlatformApi-5dba6b28.js';
28
+ import { Down, Right } from '@bigbinary/neeto-icons';
29
+ import Pane from '@bigbinary/neetoui/Pane';
30
+ import 'react-query';
31
+ import 'react-query/devtools';
32
+ import '@bigbinary/neetoui/Toastr';
33
+ import '@bigbinary/neeto-molecules/DateFormat';
34
+ import '@bigbinary/neetoui/Button';
35
+ import '@bigbinary/neetoui/Tag';
36
+ import '@bigbinary/neetoui/Tooltip';
37
+ import '@bigbinary/neeto-molecules/CopyToClipboardButton';
38
+ import '@bigbinary/neetoui/Modal';
39
+ import 'axios';
40
+ import './exportChannel-e0822151.js';
41
+ import './IdentifierButton-73cadb18.js';
42
+ import 'util';
43
+ import './queryConstants-9b7fe0cf.js';
44
+
45
+ const useFiltersAndPagination = _ref => {
46
+ let {
47
+ payableEntityColumns,
48
+ kind,
49
+ searchProps
50
+ } = _ref;
51
+ const {
52
+ tab = TAB.all
53
+ } = useQueryParams();
54
+ const history = useHistory();
55
+ const tabs = TABS.filter(tab => !TAB_METADATA[tab]?.isHidden?.[kind]);
56
+ const [isFilterButtonVisible, setIsFilterButtonVisible] = useState(false);
57
+ const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);
58
+ const [pageProperties, setPageProperties] = useState(buildDefaultPageProperties(tabs));
59
+ const [sortProperties, setSortProperties] = useState(DEFAULT_SORT_PROPERTIES);
60
+ const filterableColumns = buildFilterColumns(tab, kind, payableEntityColumns);
61
+ const {
62
+ searchTerm = ""
63
+ } = getQueryParams();
64
+ const searchKeywordProps = {
65
+ ...modifySearchProps({
66
+ searchProps,
67
+ kind
68
+ }),
69
+ key: "search_term",
70
+ value: searchTerm.trim()
71
+ };
72
+ const [filters, setFilters] = useState(buildFiltersFromURL([...filterableColumns, searchKeywordProps]));
73
+ const [dataSize, setDataSize] = useState(null);
74
+ const [paneStatus, setPaneStatus] = useState(INITIAL_PANE_STATUS);
75
+ const columns = buildPaymentColumns({
76
+ tab,
77
+ kind,
78
+ payableEntityColumns,
79
+ specialColumnArguments: {
80
+ setPaneStatus
81
+ }
82
+ });
83
+ const modifiedColumns = columns.map(modify("dataIndex", processDataIndex));
84
+ const handleTabChange = tab => {
85
+ setDataSize(null);
86
+ const queryParams = getQueryParams({
87
+ toCamelCase: false
88
+ });
89
+ const newParams = {
90
+ tab,
91
+ page: pageProperties[tab]?.page,
92
+ page_size: pageProperties[tab]?.pageSize
93
+ };
94
+ history.push(buildUrl(window.location.pathname, mergeLeft(newParams, queryParams)));
95
+ };
96
+ return {
97
+ isFilterButtonVisible,
98
+ isFilterPaneOpen,
99
+ pageProperties,
100
+ paneStatus,
101
+ filters,
102
+ searchKeywordProps,
103
+ tabs,
104
+ tab,
105
+ dataSize,
106
+ filterableColumns,
107
+ sortProperties,
108
+ columns,
109
+ modifiedColumns,
110
+ setIsFilterButtonVisible,
111
+ setIsFilterPaneOpen,
112
+ setPageProperties,
113
+ setPaneStatus,
114
+ setFilters,
115
+ handleTabChange,
116
+ setDataSize,
117
+ setSortProperties
118
+ };
119
+ };
120
+
121
+ const SPLIT_COLUMNS = [{
122
+ key: "splitSubId",
123
+ title: t("neetoPayments.common.id"),
124
+ dataIndex: "id",
125
+ width: "72px"
126
+ }, {
127
+ key: "splitSubIdentifier",
128
+ title: t("neetoPayments.common.identifier"),
129
+ dataIndex: "identifier",
130
+ width: "300px",
131
+ render: renderSplitIdentifier
132
+ }, {
133
+ key: "splitSubAmount",
134
+ title: t("neetoPayments.common.amount"),
135
+ dataIndex: "amount",
136
+ width: "150px"
137
+ }, {
138
+ key: "splitSubStatus",
139
+ title: t("neetoPayments.common.status"),
140
+ dataIndex: "status",
141
+ width: "130px",
142
+ render: renderStatus("split")
143
+ }];
144
+ const REFUND_COLUMNS = [{
145
+ key: "refundId",
146
+ title: t("neetoPayments.common.id"),
147
+ dataIndex: "id",
148
+ width: "72px"
149
+ }, {
150
+ key: "refundIdentifier",
151
+ title: t("neetoPayments.common.identifier"),
152
+ dataIndex: "identifier",
153
+ width: "290px",
154
+ render: renderRefundIdentifier
155
+ }, {
156
+ key: "refundAmount",
157
+ title: t("neetoPayments.common.amount"),
158
+ dataIndex: "amount",
159
+ width: "150px"
160
+ }, {
161
+ key: "refundStatus",
162
+ title: t("neetoPayments.common.status"),
163
+ dataIndex: "status",
164
+ width: "200px",
165
+ render: renderStatus("refund")
166
+ }];
167
+
168
+ const SubTable = _ref => {
169
+ let {
170
+ data = [],
171
+ className = "",
172
+ kind = "split"
173
+ } = _ref;
174
+ return /*#__PURE__*/React__default.createElement("div", {
175
+ className: className || "ml-12 max-w-3xl"
176
+ }, /*#__PURE__*/React__default.createElement(TableWrapper, {
177
+ hasPagination: false
178
+ }, /*#__PURE__*/React__default.createElement(Table, {
179
+ fixedHeight: true,
180
+ columnData: isSplitKind(kind) ? SPLIT_COLUMNS : REFUND_COLUMNS,
181
+ pagination: false,
182
+ rowData: buildRowData({
183
+ data
184
+ }),
185
+ scroll: {
186
+ y: 300
187
+ }
188
+ })));
189
+ };
190
+
191
+ const ExpandedRow = function () {
192
+ let {
193
+ splits = [],
194
+ refunds = []
195
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
196
+ return /*#__PURE__*/React__default.createElement("div", {
197
+ className: "my-2 space-y-2"
198
+ }, !isEmpty(splits) && /*#__PURE__*/React__default.createElement("div", {
199
+ className: "space-y-4"
200
+ }, /*#__PURE__*/React__default.createElement(Typography, {
201
+ className: "ml-12",
202
+ style: "h3"
203
+ }, t("neetoPayments.common.splits")), /*#__PURE__*/React__default.createElement(SubTable, {
204
+ data: splits
205
+ })), !isEmpty(refunds) && /*#__PURE__*/React__default.createElement("div", {
206
+ className: "space-y-4"
207
+ }, /*#__PURE__*/React__default.createElement(Typography, {
208
+ className: "ml-12",
209
+ style: "h3"
210
+ }, t("neetoPayments.title.refund")), /*#__PURE__*/React__default.createElement(SubTable, {
211
+ data: refunds,
212
+ kind: "refund"
213
+ })));
214
+ };
215
+
216
+ const useFetchData = _ref => {
217
+ let {
218
+ kind,
219
+ holdableId,
220
+ payload,
221
+ isPlatformEnabled
222
+ } = _ref;
223
+ const data = {};
224
+ data.transfer = data.connected = useFetchStripeTransactions(holdableId, {
225
+ ...payload,
226
+ kind
227
+ }, {
228
+ enabled: isTransferKind(kind) || isConnectedKind(kind)
229
+ });
230
+ data.refund = useFetchStripeRefunds(payload, {
231
+ enabled: isRefundKind(kind)
232
+ });
233
+ data.platform = useFetchStripePlatformTransactions(payload, {
234
+ enabled: isPlatformKind(kind) && isPlatformEnabled
235
+ });
236
+ data.split = useFetchStripePlatformSplits(payload, {
237
+ enabled: isSplitKind(kind)
238
+ });
239
+ return {
240
+ data: processResponse(data[kind]?.data, kind),
241
+ dataSize: data[kind]?.data?.counts?.[payload?.tab],
242
+ isDataLoading: data[kind]?.isLoading,
243
+ isDataFetching: data[kind]?.isFetching
244
+ };
245
+ };
246
+
247
+ const RowExpander = _ref => {
248
+ let {
249
+ expanded,
250
+ onExpand,
251
+ record,
252
+ expandable
253
+ } = _ref;
254
+ return expandable && (expanded ? /*#__PURE__*/React__default.createElement(Down, {
255
+ className: "cursor-pointer",
256
+ onClick: e => onExpand(record, e)
257
+ }) : /*#__PURE__*/React__default.createElement(Right, {
258
+ className: "cursor-pointer",
259
+ onClick: e => onExpand(record, e)
260
+ }));
261
+ };
262
+
263
+ const Details = _ref => {
264
+ let {
265
+ transactionId,
266
+ ...paneProps
267
+ } = _ref;
268
+ const {
269
+ t
270
+ } = useTranslation();
271
+ const {
272
+ isLoading,
273
+ data: {
274
+ amount,
275
+ netAmount,
276
+ status,
277
+ paymentAt,
278
+ identifier,
279
+ live,
280
+ splits = []
281
+ } = {}
282
+ } = useFetchStripePlatformTransaction(transactionId);
283
+ return /*#__PURE__*/React__default.createElement(Pane, _extends({}, paneProps, {
284
+ size: "large"
285
+ }), /*#__PURE__*/React__default.createElement(Pane.Header, null, /*#__PURE__*/React__default.createElement(Typography, {
286
+ style: "h2"
287
+ }, "Transaction Details")), /*#__PURE__*/React__default.createElement(Pane.Body, null, isLoading ? /*#__PURE__*/React__default.createElement(PageLoader, null) : /*#__PURE__*/React__default.createElement("div", {
288
+ className: "w-full space-y-6 p-2"
289
+ }, /*#__PURE__*/React__default.createElement("div", {
290
+ className: "w-full space-y-2"
291
+ }, /*#__PURE__*/React__default.createElement("div", {
292
+ className: "flex items-center space-x-2"
293
+ }, /*#__PURE__*/React__default.createElement(Typography, {
294
+ style: "body2"
295
+ }, t("neetoPayments.transactionPane.transactionId")), /*#__PURE__*/React__default.createElement(Typography, {
296
+ className: "neeto-ui-text-black font-medium",
297
+ style: "body2"
298
+ }, renderIdentifier({
299
+ identifier,
300
+ live
301
+ }))), /*#__PURE__*/React__default.createElement("div", {
302
+ className: "flex items-center space-x-2"
303
+ }, /*#__PURE__*/React__default.createElement(Typography, {
304
+ style: "body2"
305
+ }, t("neetoPayments.transactionPane.amount")), /*#__PURE__*/React__default.createElement(Typography, {
306
+ className: "neeto-ui-text-black font-medium",
307
+ style: "body2"
308
+ }, amount)), /*#__PURE__*/React__default.createElement("div", {
309
+ className: "flex items-center space-x-2"
310
+ }, /*#__PURE__*/React__default.createElement(Typography, {
311
+ style: "body2"
312
+ }, t("neetoPayments.transactionPane.netAmount")), /*#__PURE__*/React__default.createElement(Typography, {
313
+ className: "neeto-ui-text-black font-medium",
314
+ style: "body2"
315
+ }, netAmount)), /*#__PURE__*/React__default.createElement("div", {
316
+ className: "flex items-center space-x-2"
317
+ }, /*#__PURE__*/React__default.createElement(Typography, {
318
+ style: "body2"
319
+ }, t("neetoPayments.transactionPane.status")), renderStatus("transaction", status)), /*#__PURE__*/React__default.createElement("div", {
320
+ className: "flex items-center space-x-2"
321
+ }, /*#__PURE__*/React__default.createElement(Typography, {
322
+ style: "body2"
323
+ }, t("neetoPayments.transactionPane.paidOn")), /*#__PURE__*/React__default.createElement(Typography, {
324
+ className: "neeto-ui-text-black font-medium",
325
+ style: "body2"
326
+ }, renderDate(paymentAt)))), /*#__PURE__*/React__default.createElement(Typography, {
327
+ style: "h3"
328
+ }, "Splits"), /*#__PURE__*/React__default.createElement(SubTable, {
329
+ className: "ml-0 w-full",
330
+ data: splits
331
+ }))));
332
+ };
333
+
334
+ const List = _ref => {
335
+ let {
336
+ isPlatformEnabled = false,
337
+ kind,
338
+ holdableId = null,
339
+ filters,
340
+ setIsFilterButtonVisible,
341
+ pageProperties,
342
+ setPageProperties,
343
+ tab,
344
+ paneStatus,
345
+ setPaneStatus,
346
+ setDataSize,
347
+ sortProperties,
348
+ setSortProperties,
349
+ payoutId,
350
+ columns
351
+ } = _ref;
352
+ const history = useHistory();
353
+ const {
354
+ t
355
+ } = useTranslation();
356
+ const {
357
+ hideColumn,
358
+ hiddenColumns = []
359
+ } = useHiddenColumns(`stripePaymentDashboard_${kind}`);
360
+ const {
361
+ isLoading: isStripePlatformAccountLoading,
362
+ data: {
363
+ platformAccount: stripePlatformAccount
364
+ } = {}
365
+ } = useFetchStripePlatformAccount({
366
+ enabled: isPlatformEnabled
367
+ });
368
+ const {
369
+ isLoading: isStripeAccountLoading,
370
+ data: {
371
+ account: stripeConnectedAccount
372
+ } = {}
373
+ } = useFetchConnectedStripeAccount(holdableId);
374
+ const {
375
+ data,
376
+ isDataLoading,
377
+ dataSize,
378
+ isDataFetching
379
+ } = useFetchData({
380
+ kind,
381
+ holdableId,
382
+ payload: buildPayload({
383
+ tab,
384
+ filters,
385
+ pageProperties,
386
+ sortProperties,
387
+ payoutId
388
+ }),
389
+ isPlatformEnabled
390
+ });
391
+ const isStripeAccountConnected = stripeConnectedAccount?.isConnected || stripePlatformAccount?.isConnected;
392
+ useEffect(() => {
393
+ setIsFilterButtonVisible(isPresent(data) || isPresent(filters));
394
+ setDataSize(dataSize);
395
+ }, [data]);
396
+ const handleTablePaginaton = (page, pageSize) => {
397
+ const queryParams = getQueryParams({
398
+ toCamelCase: false
399
+ });
400
+ history.push(buildUrl(window.location.pathname, mergeLeft({
401
+ page,
402
+ page_size: pageSize
403
+ }, queryParams)));
404
+ setPageProperties(assoc(tab, {
405
+ page,
406
+ pageSize
407
+ }));
408
+ };
409
+ useEffect(() => {
410
+ handleTablePaginaton(DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE);
411
+ setSortProperties(DEFAULT_SORT_PROPERTIES);
412
+ }, [filters, tab]);
413
+ const handleTableChange = (_, __, sorter) => {
414
+ setSortProperties(isPresent(sorter?.column) ? {
415
+ sortBy: camelToSnakeCase(processDataIndex(sorter.field)),
416
+ orderBy: sorter.order === "ascend" ? "ASC" : "DESC"
417
+ } : DEFAULT_SORT_PROPERTIES);
418
+ };
419
+ if (isStripeAccountLoading || isStripePlatformAccountLoading || isDataLoading) {
420
+ return /*#__PURE__*/React__default.createElement(PageLoader, null);
421
+ }
422
+ if (!isStripeAccountConnected && dataSize <= 0 || !isPresent(data)) {
423
+ return /*#__PURE__*/React__default.createElement("div", {
424
+ className: "flex h-full w-full items-center justify-center"
425
+ }, /*#__PURE__*/React__default.createElement(NoData, {
426
+ title: tab === TAB.all ? t(`neetoPayments.emptyState.${kind}`) : t(`neetoPayments.emptyState.${kind}WithStatus`, {
427
+ status: tab
428
+ })
429
+ }));
430
+ }
431
+ const visibleColumns = columns.filter(_ref2 => {
432
+ let {
433
+ dataIndex
434
+ } = _ref2;
435
+ return !hiddenColumns.includes(processDataIndex(dataIndex));
436
+ });
437
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TableWrapper, {
438
+ hasPagination: dataSize > pageProperties[tab]?.pageSize
439
+ }, /*#__PURE__*/React__default.createElement(Table, {
440
+ fixedHeight: true,
441
+ allowRowClick: false,
442
+ columnData: visibleColumns,
443
+ currentPageNumber: pageProperties[tab]?.page,
444
+ handlePageChange: handleTablePaginaton,
445
+ loading: isDataFetching,
446
+ rowData: buildRowData({
447
+ data,
448
+ pageProperties,
449
+ tab
450
+ }),
451
+ rowSelection: false,
452
+ sortDirections: SORT_DIRECTIONS,
453
+ totalCount: dataSize,
454
+ expandable: {
455
+ expandedRowRender: ExpandedRow,
456
+ showExpandColumn: isPlatformKind(kind),
457
+ rowExpandable: record => !(isEmpty(record.splits) && isEmpty(record.refunds)),
458
+ columnWidth: "64px",
459
+ expandIcon: RowExpander
460
+ },
461
+ paginationProps: {
462
+ showSizeChanger: true,
463
+ hideOnSinglePage: true,
464
+ pageSize: pageProperties[tab]?.pageSize,
465
+ total: dataSize
466
+ },
467
+ onChange: handleTableChange,
468
+ onColumnHide: column => {
469
+ hideColumn(processDataIndex(column.dataIndex));
470
+ }
471
+ })), /*#__PURE__*/React__default.createElement(Details, _extends({}, paneStatus, {
472
+ onClose: () => setPaneStatus(INITIAL_PANE_STATUS)
473
+ })));
474
+ };
475
+
476
+ const Dashboard = _ref => {
477
+ let {
478
+ isPlatformEnabled = false,
479
+ searchProps,
480
+ headerProps = {},
481
+ holdableId = null,
482
+ payableEntityColumns = [],
483
+ kind = "connected",
484
+ payoutId = null
485
+ } = _ref;
486
+ const [_, startTransition] = useTransition();
487
+ const {
488
+ t
489
+ } = useTranslation();
490
+ const [showExportModal, setShowExportModal] = useState(false);
491
+ const {
492
+ searchKeywordProps,
493
+ pageProperties,
494
+ filterableColumns,
495
+ isFilterButtonVisible,
496
+ isFilterPaneOpen,
497
+ filters,
498
+ tabs,
499
+ tab,
500
+ dataSize,
501
+ sortProperties,
502
+ columns,
503
+ modifiedColumns,
504
+ paneStatus,
505
+ setPaneStatus,
506
+ setIsFilterButtonVisible,
507
+ setIsFilterPaneOpen,
508
+ setFilters,
509
+ setPageProperties,
510
+ handleTabChange,
511
+ setDataSize,
512
+ setSortProperties
513
+ } = useFiltersAndPagination({
514
+ payableEntityColumns,
515
+ kind,
516
+ searchProps
517
+ });
518
+ const isTabsVisible = (isFilterButtonVisible || tab !== "all") && isNotPresent(payoutId);
519
+ const titleKind = kind === "transfer" && !isPlatformEnabled ? KIND.connected : kind;
520
+ const handleFiltersChange = filters => {
521
+ startTransition(() => {
522
+ setFilters(filters);
523
+ });
524
+ };
525
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Header, _extends({}, headerProps, {
526
+ title: t(`neetoPayments.title.${titleKind}`),
527
+ searchProps: isFilterButtonVisible && {
528
+ placeholder: searchKeywordProps.placeholder,
529
+ className: "w-80"
530
+ }
531
+ })), isTabsVisible && /*#__PURE__*/React__default.createElement(Tab, null, tabs.map(item => /*#__PURE__*/React__default.createElement(Tab.Item, {
532
+ active: tab === item,
533
+ key: item,
534
+ onClick: () => handleTabChange(item)
535
+ }, t(`neetoPayments.common.${item}`)))), /*#__PURE__*/React__default.createElement(SubHeader, {
536
+ className: "mt-4",
537
+ leftActionBlock: isPresent(dataSize) && /*#__PURE__*/React__default.createElement(Typography, {
538
+ className: "neeto-ui-gray-800 mr-2 font-semibold",
539
+ component: "h4"
540
+ }, tab === TAB.all ? t(`neetoPayments.countOf.${kind}`, {
541
+ count: dataSize
542
+ }) : t(`neetoPayments.countOf.${kind}WithStatus`, {
543
+ count: dataSize,
544
+ status: tab
545
+ })),
546
+ rightActionBlock: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Bar, {
547
+ columns: filterableColumns,
548
+ keyword: searchKeywordProps,
549
+ setIsPaneOpen: setIsFilterPaneOpen,
550
+ onChange: handleFiltersChange
551
+ }), isFilterButtonVisible && /*#__PURE__*/React__default.createElement(SubHeader.RightBlock, {
552
+ columnsButtonProps: {
553
+ columnData: modifiedColumns,
554
+ fixedColumns: DASHBOARD_MANDATORY_COLUMNS,
555
+ localStorageKey: `stripePaymentDashboard_${kind}`
556
+ },
557
+ downloadButtonProps: {
558
+ onClick: () => setShowExportModal(true)
559
+ },
560
+ filterProps: {
561
+ columns: filterableColumns,
562
+ isOpen: isFilterPaneOpen,
563
+ keyword: searchKeywordProps,
564
+ setIsOpen: setIsFilterPaneOpen,
565
+ onChange: handleFiltersChange
566
+ }
567
+ }))
568
+ }), /*#__PURE__*/React__default.createElement(List, {
569
+ columns,
570
+ filters,
571
+ holdableId,
572
+ isPlatformEnabled,
573
+ kind,
574
+ pageProperties,
575
+ paneStatus,
576
+ payoutId,
577
+ setDataSize,
578
+ setIsFilterButtonVisible,
579
+ setPageProperties,
580
+ setPaneStatus,
581
+ setSortProperties,
582
+ sortProperties,
583
+ tab
584
+ }), /*#__PURE__*/React__default.createElement(ExportModal, {
585
+ filters,
586
+ holdableId,
587
+ kind,
588
+ setShowExportModal,
589
+ showExportModal,
590
+ sortProperties,
591
+ tab
592
+ }));
593
+ };
594
+ var Dashboard$1 = withTitle(withReactQuery(Dashboard), t("neetoPayments.common.payments"));
595
+
596
+ export { Dashboard$1 as default };
597
+ //# sourceMappingURL=Dashboard.js.map