@bigbinary/neeto-payments-frontend 1.5.0-beta1 → 1.6.0-beta2

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