@bigbinary/neeto-payments-frontend 6.1.14 → 6.1.15

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 (34) hide show
  1. package/dist/AccountsDashboard.js +2 -1
  2. package/dist/AccountsDashboard.js.map +1 -1
  3. package/dist/PaymentsDashboard.js +9 -3
  4. package/dist/PaymentsDashboard.js.map +1 -1
  5. package/dist/PayoutsDashboard.js +2 -1
  6. package/dist/PayoutsDashboard.js.map +1 -1
  7. package/dist/RefundsDashboard.js +11 -5
  8. package/dist/RefundsDashboard.js.map +1 -1
  9. package/dist/cjs/AccountsDashboard.js +4 -3
  10. package/dist/cjs/AccountsDashboard.js.map +1 -1
  11. package/dist/cjs/PaymentsDashboard.js +9 -3
  12. package/dist/cjs/PaymentsDashboard.js.map +1 -1
  13. package/dist/cjs/PayoutsDashboard.js +4 -3
  14. package/dist/cjs/PayoutsDashboard.js.map +1 -1
  15. package/dist/cjs/RefundsDashboard.js +10 -4
  16. package/dist/cjs/RefundsDashboard.js.map +1 -1
  17. package/dist/cjs/dashboard-CKAjPwyz.js +82 -0
  18. package/dist/cjs/dashboard-CKAjPwyz.js.map +1 -0
  19. package/dist/cjs/index.js +3 -2
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/{dashboard-B1R6fLcS.js → useExportsApi-DJOI2Dxh.js} +1 -47
  22. package/dist/cjs/useExportsApi-DJOI2Dxh.js.map +1 -0
  23. package/dist/dashboard-C6VM90Lt.js +77 -0
  24. package/dist/dashboard-C6VM90Lt.js.map +1 -0
  25. package/dist/index.js +3 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/useExportsApi-DPxXEeX2.js +47 -0
  28. package/dist/useExportsApi-DPxXEeX2.js.map +1 -0
  29. package/package.json +5 -5
  30. package/types/PaymentsDashboard.d.ts +21 -0
  31. package/types/RefundsDashboard.d.ts +20 -0
  32. package/dist/cjs/dashboard-B1R6fLcS.js.map +0 -1
  33. package/dist/dashboard-CKB3Vyop.js +0 -90
  34. package/dist/dashboard-CKB3Vyop.js.map +0 -1
@@ -0,0 +1,77 @@
1
+ import { camelToSnakeCase } from 'neetocist';
2
+ import { isEmpty, concat, assoc, modify } from 'ramda';
3
+ import { i as DEFAULT_PAGE_VALUES } from './index-BTVToZp9.js';
4
+
5
+ const buildEnforcedFilter = (enforceFilter, filterableColumns) => {
6
+ const {
7
+ key,
8
+ value,
9
+ rule,
10
+ node
11
+ } = enforceFilter;
12
+ const filterConfig = filterableColumns.find(col => col.key === key);
13
+ if (!filterConfig) return null;
14
+ return {
15
+ conditions: [{
16
+ key,
17
+ node: node || filterConfig.node,
18
+ model: filterConfig.model,
19
+ type: filterConfig.type,
20
+ values: value,
21
+ rule,
22
+ value
23
+ }]
24
+ };
25
+ };
26
+ const mergeEnforcedFilters = (filters = [], enforceFilterValues = [], filterableColumns = []) => {
27
+ if (isEmpty(enforceFilterValues)) return filters;
28
+
29
+ // Build full filter objects from enforced values using filterableColumns config
30
+ const enforcedFilters = enforceFilterValues.map(enforceFilter => buildEnforcedFilter(enforceFilter, filterableColumns)).filter(Boolean);
31
+
32
+ // Simply append enforced filters to existing filters
33
+ return concat(filters, enforcedFilters);
34
+ };
35
+ const processSortProperties = sortProperties => {
36
+ if (sortProperties.sortBy === "payment_amount") {
37
+ return assoc("sortBy", "neeto_payments_engine_payments.amount", sortProperties);
38
+ }
39
+ if (sortProperties.sortBy === "email" || sortProperties.sortBy === "first_name") {
40
+ return modify("sortBy", concat("users."), sortProperties);
41
+ }
42
+ if (sortProperties.sortBy === "payable,ends_at") {
43
+ return assoc("sortBy", "bookings.ends_at", sortProperties);
44
+ }
45
+ return sortProperties;
46
+ };
47
+ const buildDefaultPageProperties = tabs => tabs.reduce((pageProperties, tab) => ({
48
+ ...pageProperties,
49
+ [tab]: DEFAULT_PAGE_VALUES
50
+ }), {});
51
+ const buildPayload = ({
52
+ tab,
53
+ filters,
54
+ pageProperties,
55
+ sortProperties = {},
56
+ payoutId = null
57
+ }) => ({
58
+ tab: camelToSnakeCase(tab),
59
+ payoutId,
60
+ page: pageProperties[tab]?.page,
61
+ pageSize: pageProperties[tab]?.pageSize,
62
+ filters,
63
+ ...processSortProperties(sortProperties)
64
+ });
65
+ const buildRowData = ({
66
+ data,
67
+ pageProperties = {},
68
+ tab = "all"
69
+ }) => data.map((element, index) => ({
70
+ ...element,
71
+ payable: element.payable,
72
+ identifier: element,
73
+ id: isEmpty(pageProperties) ? index + 1 : pageProperties[tab]?.pageSize * (pageProperties[tab]?.page - 1) + index + 1
74
+ }));
75
+
76
+ export { buildPayload as a, buildDefaultPageProperties as b, buildRowData as c, mergeEnforcedFilters as m };
77
+ //# sourceMappingURL=dashboard-C6VM90Lt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-C6VM90Lt.js","sources":["../app/javascript/src/utils/dashboard.js"],"sourcesContent":["import { camelToSnakeCase } from \"neetocist\";\nimport { assoc, concat, isEmpty, modify } from \"ramda\";\n\nconst buildEnforcedFilter = (enforceFilter, filterableColumns) => {\n const { key, value, rule, node } = enforceFilter;\n const filterConfig = filterableColumns.find(col => col.key === key);\n\n if (!filterConfig) return null;\n\n return {\n conditions: [\n {\n key,\n node: node || filterConfig.node,\n model: filterConfig.model,\n type: filterConfig.type,\n values: value,\n rule,\n value,\n },\n ],\n };\n};\n\nexport const mergeEnforcedFilters = (\n filters = [],\n enforceFilterValues = [],\n filterableColumns = []\n) => {\n if (isEmpty(enforceFilterValues)) return filters;\n\n // Build full filter objects from enforced values using filterableColumns config\n const enforcedFilters = enforceFilterValues\n .map(enforceFilter => buildEnforcedFilter(enforceFilter, filterableColumns))\n .filter(Boolean);\n\n // Simply append enforced filters to existing filters\n return concat(filters, enforcedFilters);\n};\n\nimport { DEFAULT_PAGE_VALUES } from \"src/constants\";\n\nconst processSortProperties = sortProperties => {\n if (sortProperties.sortBy === \"payment_amount\") {\n return assoc(\n \"sortBy\",\n \"neeto_payments_engine_payments.amount\",\n sortProperties\n );\n }\n\n if (\n sortProperties.sortBy === \"email\" ||\n sortProperties.sortBy === \"first_name\"\n ) {\n return modify(\"sortBy\", concat(\"users.\"), sortProperties);\n }\n\n if (sortProperties.sortBy === \"payable,ends_at\") {\n return assoc(\"sortBy\", \"bookings.ends_at\", sortProperties);\n }\n\n return sortProperties;\n};\n\nexport const buildDefaultPageProperties = tabs =>\n tabs.reduce(\n (pageProperties, tab) => ({\n ...pageProperties,\n [tab]: DEFAULT_PAGE_VALUES,\n }),\n {}\n );\n\nexport const buildPayload = ({\n tab,\n filters,\n pageProperties,\n sortProperties = {},\n payoutId = null,\n}) => ({\n tab: camelToSnakeCase(tab),\n payoutId,\n page: pageProperties[tab]?.page,\n pageSize: pageProperties[tab]?.pageSize,\n filters,\n ...processSortProperties(sortProperties),\n});\n\nexport const buildRowData = ({ data, pageProperties = {}, tab = \"all\" }) =>\n data.map((element, index) => ({\n ...element,\n payable: element.payable,\n identifier: element,\n id: isEmpty(pageProperties)\n ? index + 1\n : pageProperties[tab]?.pageSize * (pageProperties[tab]?.page - 1) +\n index +\n 1,\n }));\n"],"names":["buildEnforcedFilter","enforceFilter","filterableColumns","key","value","rule","node","filterConfig","find","col","conditions","model","type","values","mergeEnforcedFilters","filters","enforceFilterValues","isEmpty","enforcedFilters","map","filter","Boolean","concat","processSortProperties","sortProperties","sortBy","assoc","modify","buildDefaultPageProperties","tabs","reduce","pageProperties","tab","DEFAULT_PAGE_VALUES","buildPayload","payoutId","camelToSnakeCase","page","pageSize","buildRowData","data","element","index","payable","identifier","id"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -34,17 +34,18 @@ import '@bigbinary/neeto-molecules/Header';
34
34
  import '@bigbinary/neeto-molecules/SubHeader';
35
35
  import '@bigbinary/neetoui';
36
36
  import 'react-i18next';
37
- import './dashboard-CKB3Vyop.js';
37
+ import './useExportsApi-DPxXEeX2.js';
38
38
  import '@tanstack/react-query';
39
39
  import '@tanstack/react-query-devtools';
40
40
  import 'neetocommons/constants';
41
41
  import 'react/jsx-runtime';
42
42
  import 'axios';
43
- import 'ramda';
44
43
  import './exportChannel-Db0U5gc1.js';
45
44
  import 'neetocommons/utils';
46
45
  import '@bigbinary/neeto-icons';
46
+ import 'ramda';
47
47
  import 'react-router-dom';
48
+ import './dashboard-C6VM90Lt.js';
48
49
  import './renderFunctions-BB3hiqhN.js';
49
50
  import '@bigbinary/neeto-molecules/DateFormat';
50
51
  import '@bigbinary/neeto-molecules/CopyToClipboardButton';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,47 @@
1
+ import { QueryClient, QueryCache, keepPreviousData, QueryClientProvider, useMutation } from '@tanstack/react-query';
2
+ import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
3
+ import { DEFAULT_STALE_TIME } from 'neetocommons/constants';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+ import axios from 'axios';
6
+ import { B as BASE_URL } from './index-BTVToZp9.js';
7
+
8
+ /* eslint-disable @bigbinary/neeto/api-connector-name-should-match-filename */
9
+ /* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */
10
+ const queryClient = new QueryClient({
11
+ queryCache: new QueryCache(),
12
+ defaultOptions: {
13
+ queries: {
14
+ staleTime: DEFAULT_STALE_TIME,
15
+ placeholderData: keepPreviousData
16
+ }
17
+ }
18
+ });
19
+
20
+ /* eslint-disable sonarjs/prefer-immediate-return */
21
+ /* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */
22
+ const withReactQuery = Component => {
23
+ const QueryWrapper = props => /*#__PURE__*/jsxs(QueryClientProvider, {
24
+ client: queryClient,
25
+ children: [/*#__PURE__*/jsx(Component, {
26
+ ...props
27
+ }), /*#__PURE__*/jsx(ReactQueryDevtools, {
28
+ initialIsOpen: false,
29
+ position: "bottom"
30
+ })]
31
+ });
32
+ return QueryWrapper;
33
+ };
34
+
35
+ const exportData = payload => axios.post(`${BASE_URL}/api/v1/stripe/exports`, payload, {
36
+ showToastr: false
37
+ });
38
+ const exportsApi = {
39
+ exportData
40
+ };
41
+
42
+ const useExportData = () => useMutation({
43
+ mutationFn: exportsApi.exportData
44
+ });
45
+
46
+ export { useExportData as u, withReactQuery as w };
47
+ //# sourceMappingURL=useExportsApi-DPxXEeX2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useExportsApi-DPxXEeX2.js","sources":["../app/javascript/src/apis/queryClient.js","../app/javascript/src/components/Common/withReactQuery.jsx","../app/javascript/src/apis/stripe/holdables/exports.js","../app/javascript/src/hooks/reactQuery/stripe/useExportsApi.js"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/api-connector-name-should-match-filename */\n/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport {\n QueryCache,\n QueryClient,\n keepPreviousData,\n} from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nconst queryClient = new QueryClient({\n queryCache: new QueryCache(),\n defaultOptions: {\n queries: {\n staleTime: DEFAULT_STALE_TIME,\n placeholderData: keepPreviousData,\n },\n },\n});\n\nexport default queryClient;\n","/* eslint-disable sonarjs/prefer-immediate-return */\n/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport { ReactQueryDevtools } from \"@tanstack/react-query-devtools\";\n\nimport queryClient from \"apis/queryClient\";\n\nconst withReactQuery = Component => {\n const QueryWrapper = props => (\n <QueryClientProvider client={queryClient}>\n <Component {...props} />\n <ReactQueryDevtools initialIsOpen={false} position=\"bottom\" />\n </QueryClientProvider>\n );\n\n return QueryWrapper;\n};\n\nexport default withReactQuery;\n","import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst exportData = payload =>\n axios.post(`${BASE_URL}/api/v1/stripe/exports`, payload, {\n showToastr: false,\n });\n\nconst exportsApi = { exportData };\n\nexport default exportsApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport exportsApi from \"apis/stripe/holdables/exports\";\n\nconst useExportData = () => useMutation({ mutationFn: exportsApi.exportData });\n\nexport { useExportData };\n"],"names":["queryClient","QueryClient","queryCache","QueryCache","defaultOptions","queries","staleTime","DEFAULT_STALE_TIME","placeholderData","keepPreviousData","withReactQuery","Component","QueryWrapper","props","_jsxs","QueryClientProvider","client","children","_jsx","ReactQueryDevtools","initialIsOpen","position","exportData","payload","axios","post","BASE_URL","showToastr","exportsApi","useExportData","useMutation","mutationFn"],"mappings":";;;;;;;AAAA;AACA;AAQA,MAAMA,WAAW,GAAG,IAAIC,WAAW,CAAC;AAClCC,EAAAA,UAAU,EAAE,IAAIC,UAAU,EAAE;AAC5BC,EAAAA,cAAc,EAAE;AACdC,IAAAA,OAAO,EAAE;AACPC,MAAAA,SAAS,EAAEC,kBAAkB;AAC7BC,MAAAA,eAAe,EAAEC;AACnB;AACF;AACF,CAAC,CAAC;;ACjBF;AACA;AAMMC,MAAAA,cAAc,GAAGC,SAAS,IAAI;AAClC,EAAA,MAAMC,YAAY,GAAGC,KAAK,iBACxBC,IAAA,CAACC,mBAAmB,EAAA;AAACC,IAAAA,MAAM,EAAEhB,WAAY;IAAAiB,QAAA,EAAA,cACvCC,GAAA,CAACP,SAAS,EAAA;MAAA,GAAKE;AAAK,KAAG,CAAC,eACxBK,GAAA,CAACC,kBAAkB,EAAA;AAACC,MAAAA,aAAa,EAAE,KAAM;AAACC,MAAAA,QAAQ,EAAC;AAAQ,KAAE,CAAC;AAAA,GAC3C,CACtB;AAED,EAAA,OAAOT,YAAY;AACrB;;ACZA,MAAMU,UAAU,GAAGC,OAAO,IACxBC,KAAK,CAACC,IAAI,CAAC,CAAGC,EAAAA,QAAQ,CAAwB,sBAAA,CAAA,EAAEH,OAAO,EAAE;AACvDI,EAAAA,UAAU,EAAE;AACd,CAAC,CAAC;AAEJ,MAAMC,UAAU,GAAG;AAAEN,EAAAA;AAAW,CAAC;;ACLjC,MAAMO,aAAa,GAAGA,MAAMC,WAAW,CAAC;EAAEC,UAAU,EAAEH,UAAU,CAACN;AAAW,CAAC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-payments-frontend",
3
- "version": "6.1.14",
3
+ "version": "6.1.15",
4
4
  "description": "To manage payments across the neeto products.",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://github.com/bigbinary/neeto-payments-nano",
@@ -63,9 +63,9 @@
63
63
  "@bigbinary/babel-preset-neeto": "^1.0.3",
64
64
  "@bigbinary/eslint-plugin-neeto": "1.8.0",
65
65
  "@bigbinary/neeto-cist": "1.0.17",
66
- "@bigbinary/neeto-editor": "1.47.81",
66
+ "@bigbinary/neeto-editor": "1.47.85",
67
67
  "@bigbinary/neeto-filters-frontend": "4.3.30",
68
- "@bigbinary/neeto-icons": "1.20.79",
68
+ "@bigbinary/neeto-icons": "1.20.80",
69
69
  "@dnd-kit/core": "6.3.1",
70
70
  "@dnd-kit/sortable": "10.0.0",
71
71
  "@emotion/is-prop-valid": "1.2.0",
@@ -175,9 +175,9 @@
175
175
  "peerDependencies": {
176
176
  "@babel/runtime": "7.26.10",
177
177
  "@bigbinary/neeto-cist": "1.0.17",
178
- "@bigbinary/neeto-editor": "1.47.81",
178
+ "@bigbinary/neeto-editor": "1.47.85",
179
179
  "@bigbinary/neeto-filters-frontend": "4.3.30",
180
- "@bigbinary/neeto-icons": "1.20.79",
180
+ "@bigbinary/neeto-icons": "1.20.80",
181
181
  "@dnd-kit/core": "6.3.1",
182
182
  "@dnd-kit/sortable": "10.0.0",
183
183
  "@honeybadger-io/js": "6.10.1",
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+
3
+ interface EnforceFilterValue {
4
+ key: string;
5
+ value: unknown;
6
+ rule?: string;
7
+ node?: string;
8
+ }
9
+
10
+ interface PaymentsDashboardProps {
11
+ searchProps: object;
12
+ payableEntityColumns?: object[];
13
+ holdableIds?: object;
14
+ enforceFilterKeys?: string[];
15
+ enforceFilterValues?: EnforceFilterValue[];
16
+ dashboardKind?: string;
17
+ }
18
+
19
+ const PaymentsDashboard: React.FC<PaymentsDashboardProps>;
20
+
21
+ export default PaymentsDashboard;
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+
3
+ interface EnforceFilterValue {
4
+ key: string;
5
+ value: unknown;
6
+ rule?: string;
7
+ node?: string;
8
+ }
9
+
10
+ interface RefundsDashboardProps {
11
+ searchProps: object;
12
+ payableEntityColumns?: object[];
13
+ accountIds?: object;
14
+ enforceFilterKeys?: string[];
15
+ enforceFilterValues?: EnforceFilterValue[];
16
+ }
17
+
18
+ const RefundsDashboard: React.FC<RefundsDashboardProps>;
19
+
20
+ export default RefundsDashboard;
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-B1R6fLcS.js","sources":["../../app/javascript/src/apis/queryClient.js","../../app/javascript/src/components/Common/withReactQuery.jsx","../../app/javascript/src/apis/stripe/holdables/exports.js","../../app/javascript/src/hooks/reactQuery/stripe/useExportsApi.js","../../app/javascript/src/utils/dashboard.js"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/api-connector-name-should-match-filename */\n/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport {\n QueryCache,\n QueryClient,\n keepPreviousData,\n} from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nconst queryClient = new QueryClient({\n queryCache: new QueryCache(),\n defaultOptions: {\n queries: {\n staleTime: DEFAULT_STALE_TIME,\n placeholderData: keepPreviousData,\n },\n },\n});\n\nexport default queryClient;\n","/* eslint-disable sonarjs/prefer-immediate-return */\n/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport { ReactQueryDevtools } from \"@tanstack/react-query-devtools\";\n\nimport queryClient from \"apis/queryClient\";\n\nconst withReactQuery = Component => {\n const QueryWrapper = props => (\n <QueryClientProvider client={queryClient}>\n <Component {...props} />\n <ReactQueryDevtools initialIsOpen={false} position=\"bottom\" />\n </QueryClientProvider>\n );\n\n return QueryWrapper;\n};\n\nexport default withReactQuery;\n","import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst exportData = payload =>\n axios.post(`${BASE_URL}/api/v1/stripe/exports`, payload, {\n showToastr: false,\n });\n\nconst exportsApi = { exportData };\n\nexport default exportsApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport exportsApi from \"apis/stripe/holdables/exports\";\n\nconst useExportData = () => useMutation({ mutationFn: exportsApi.exportData });\n\nexport { useExportData };\n","import { camelToSnakeCase } from \"neetocist\";\nimport { assoc, concat, isEmpty, modify } from \"ramda\";\n\nimport { DEFAULT_PAGE_VALUES } from \"src/constants\";\n\nconst processSortProperties = sortProperties => {\n if (sortProperties.sortBy === \"payment_amount\") {\n return assoc(\n \"sortBy\",\n \"neeto_payments_engine_payments.amount\",\n sortProperties\n );\n }\n\n if (\n sortProperties.sortBy === \"email\" ||\n sortProperties.sortBy === \"first_name\"\n ) {\n return modify(\"sortBy\", concat(\"users.\"), sortProperties);\n }\n\n if (sortProperties.sortBy === \"payable,ends_at\") {\n return assoc(\"sortBy\", \"bookings.ends_at\", sortProperties);\n }\n\n return sortProperties;\n};\n\nexport const buildDefaultPageProperties = tabs =>\n tabs.reduce(\n (pageProperties, tab) => ({\n ...pageProperties,\n [tab]: DEFAULT_PAGE_VALUES,\n }),\n {}\n );\n\nexport const buildPayload = ({\n tab,\n filters,\n pageProperties,\n sortProperties = {},\n payoutId = null,\n}) => ({\n tab: camelToSnakeCase(tab),\n payoutId,\n page: pageProperties[tab]?.page,\n pageSize: pageProperties[tab]?.pageSize,\n filters,\n ...processSortProperties(sortProperties),\n});\n\nexport const buildRowData = ({ data, pageProperties = {}, tab = \"all\" }) =>\n data.map((element, index) => ({\n ...element,\n payable: element.payable,\n identifier: element,\n id: isEmpty(pageProperties)\n ? index + 1\n : pageProperties[tab]?.pageSize * (pageProperties[tab]?.page - 1) +\n index +\n 1,\n }));\n"],"names":["queryClient","QueryClient","queryCache","QueryCache","defaultOptions","queries","staleTime","DEFAULT_STALE_TIME","placeholderData","keepPreviousData","withReactQuery","Component","QueryWrapper","props","_jsxs","QueryClientProvider","client","children","_jsx","ReactQueryDevtools","initialIsOpen","position","exportData","payload","axios","post","BASE_URL","showToastr","exportsApi","useExportData","useMutation","mutationFn","processSortProperties","sortProperties","sortBy","assoc","modify","concat","buildDefaultPageProperties","tabs","reduce","pageProperties","tab","DEFAULT_PAGE_VALUES","buildPayload","filters","payoutId","camelToSnakeCase","page","pageSize","buildRowData","data","map","element","index","payable","identifier","id","isEmpty"],"mappings":"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"}
@@ -1,90 +0,0 @@
1
- import { QueryClient, QueryCache, keepPreviousData, QueryClientProvider, useMutation } from '@tanstack/react-query';
2
- import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
3
- import { DEFAULT_STALE_TIME } from 'neetocommons/constants';
4
- import { jsxs, jsx } from 'react/jsx-runtime';
5
- import axios from 'axios';
6
- import { B as BASE_URL, i as DEFAULT_PAGE_VALUES } from './index-BTVToZp9.js';
7
- import { camelToSnakeCase } from 'neetocist';
8
- import { isEmpty, assoc, modify, concat } from 'ramda';
9
-
10
- /* eslint-disable @bigbinary/neeto/api-connector-name-should-match-filename */
11
- /* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */
12
- const queryClient = new QueryClient({
13
- queryCache: new QueryCache(),
14
- defaultOptions: {
15
- queries: {
16
- staleTime: DEFAULT_STALE_TIME,
17
- placeholderData: keepPreviousData
18
- }
19
- }
20
- });
21
-
22
- /* eslint-disable sonarjs/prefer-immediate-return */
23
- /* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */
24
- const withReactQuery = Component => {
25
- const QueryWrapper = props => /*#__PURE__*/jsxs(QueryClientProvider, {
26
- client: queryClient,
27
- children: [/*#__PURE__*/jsx(Component, {
28
- ...props
29
- }), /*#__PURE__*/jsx(ReactQueryDevtools, {
30
- initialIsOpen: false,
31
- position: "bottom"
32
- })]
33
- });
34
- return QueryWrapper;
35
- };
36
-
37
- const exportData = payload => axios.post(`${BASE_URL}/api/v1/stripe/exports`, payload, {
38
- showToastr: false
39
- });
40
- const exportsApi = {
41
- exportData
42
- };
43
-
44
- const useExportData = () => useMutation({
45
- mutationFn: exportsApi.exportData
46
- });
47
-
48
- const processSortProperties = sortProperties => {
49
- if (sortProperties.sortBy === "payment_amount") {
50
- return assoc("sortBy", "neeto_payments_engine_payments.amount", sortProperties);
51
- }
52
- if (sortProperties.sortBy === "email" || sortProperties.sortBy === "first_name") {
53
- return modify("sortBy", concat("users."), sortProperties);
54
- }
55
- if (sortProperties.sortBy === "payable,ends_at") {
56
- return assoc("sortBy", "bookings.ends_at", sortProperties);
57
- }
58
- return sortProperties;
59
- };
60
- const buildDefaultPageProperties = tabs => tabs.reduce((pageProperties, tab) => ({
61
- ...pageProperties,
62
- [tab]: DEFAULT_PAGE_VALUES
63
- }), {});
64
- const buildPayload = ({
65
- tab,
66
- filters,
67
- pageProperties,
68
- sortProperties = {},
69
- payoutId = null
70
- }) => ({
71
- tab: camelToSnakeCase(tab),
72
- payoutId,
73
- page: pageProperties[tab]?.page,
74
- pageSize: pageProperties[tab]?.pageSize,
75
- filters,
76
- ...processSortProperties(sortProperties)
77
- });
78
- const buildRowData = ({
79
- data,
80
- pageProperties = {},
81
- tab = "all"
82
- }) => data.map((element, index) => ({
83
- ...element,
84
- payable: element.payable,
85
- identifier: element,
86
- id: isEmpty(pageProperties) ? index + 1 : pageProperties[tab]?.pageSize * (pageProperties[tab]?.page - 1) + index + 1
87
- }));
88
-
89
- export { buildPayload as a, buildDefaultPageProperties as b, buildRowData as c, useExportData as u, withReactQuery as w };
90
- //# sourceMappingURL=dashboard-CKB3Vyop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-CKB3Vyop.js","sources":["../app/javascript/src/apis/queryClient.js","../app/javascript/src/components/Common/withReactQuery.jsx","../app/javascript/src/apis/stripe/holdables/exports.js","../app/javascript/src/hooks/reactQuery/stripe/useExportsApi.js","../app/javascript/src/utils/dashboard.js"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/api-connector-name-should-match-filename */\n/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport {\n QueryCache,\n QueryClient,\n keepPreviousData,\n} from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nconst queryClient = new QueryClient({\n queryCache: new QueryCache(),\n defaultOptions: {\n queries: {\n staleTime: DEFAULT_STALE_TIME,\n placeholderData: keepPreviousData,\n },\n },\n});\n\nexport default queryClient;\n","/* eslint-disable sonarjs/prefer-immediate-return */\n/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport { ReactQueryDevtools } from \"@tanstack/react-query-devtools\";\n\nimport queryClient from \"apis/queryClient\";\n\nconst withReactQuery = Component => {\n const QueryWrapper = props => (\n <QueryClientProvider client={queryClient}>\n <Component {...props} />\n <ReactQueryDevtools initialIsOpen={false} position=\"bottom\" />\n </QueryClientProvider>\n );\n\n return QueryWrapper;\n};\n\nexport default withReactQuery;\n","import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst exportData = payload =>\n axios.post(`${BASE_URL}/api/v1/stripe/exports`, payload, {\n showToastr: false,\n });\n\nconst exportsApi = { exportData };\n\nexport default exportsApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport exportsApi from \"apis/stripe/holdables/exports\";\n\nconst useExportData = () => useMutation({ mutationFn: exportsApi.exportData });\n\nexport { useExportData };\n","import { camelToSnakeCase } from \"neetocist\";\nimport { assoc, concat, isEmpty, modify } from \"ramda\";\n\nimport { DEFAULT_PAGE_VALUES } from \"src/constants\";\n\nconst processSortProperties = sortProperties => {\n if (sortProperties.sortBy === \"payment_amount\") {\n return assoc(\n \"sortBy\",\n \"neeto_payments_engine_payments.amount\",\n sortProperties\n );\n }\n\n if (\n sortProperties.sortBy === \"email\" ||\n sortProperties.sortBy === \"first_name\"\n ) {\n return modify(\"sortBy\", concat(\"users.\"), sortProperties);\n }\n\n if (sortProperties.sortBy === \"payable,ends_at\") {\n return assoc(\"sortBy\", \"bookings.ends_at\", sortProperties);\n }\n\n return sortProperties;\n};\n\nexport const buildDefaultPageProperties = tabs =>\n tabs.reduce(\n (pageProperties, tab) => ({\n ...pageProperties,\n [tab]: DEFAULT_PAGE_VALUES,\n }),\n {}\n );\n\nexport const buildPayload = ({\n tab,\n filters,\n pageProperties,\n sortProperties = {},\n payoutId = null,\n}) => ({\n tab: camelToSnakeCase(tab),\n payoutId,\n page: pageProperties[tab]?.page,\n pageSize: pageProperties[tab]?.pageSize,\n filters,\n ...processSortProperties(sortProperties),\n});\n\nexport const buildRowData = ({ data, pageProperties = {}, tab = \"all\" }) =>\n data.map((element, index) => ({\n ...element,\n payable: element.payable,\n identifier: element,\n id: isEmpty(pageProperties)\n ? index + 1\n : pageProperties[tab]?.pageSize * (pageProperties[tab]?.page - 1) +\n index +\n 1,\n }));\n"],"names":["queryClient","QueryClient","queryCache","QueryCache","defaultOptions","queries","staleTime","DEFAULT_STALE_TIME","placeholderData","keepPreviousData","withReactQuery","Component","QueryWrapper","props","_jsxs","QueryClientProvider","client","children","_jsx","ReactQueryDevtools","initialIsOpen","position","exportData","payload","axios","post","BASE_URL","showToastr","exportsApi","useExportData","useMutation","mutationFn","processSortProperties","sortProperties","sortBy","assoc","modify","concat","buildDefaultPageProperties","tabs","reduce","pageProperties","tab","DEFAULT_PAGE_VALUES","buildPayload","filters","payoutId","camelToSnakeCase","page","pageSize","buildRowData","data","map","element","index","payable","identifier","id","isEmpty"],"mappings":"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"}