datastake-daf 0.6.368 → 0.6.370

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.
@@ -1,321 +1,281 @@
1
- import { useCallback, useEffect, useMemo, useState } from "react";
2
- import { getDefaultActiveFilters } from "../utils/filters";
3
- import { StorageManager } from "../../helpers/StorageManager";
4
-
5
- const NEW_PAGINATION_TITLES = ["nashiriki"];
1
+ import { useCallback, useEffect, useMemo, useState } from 'react';
2
+ import { getDefaultActiveFilters } from '../utils/filters';
3
+ import { StorageManager } from '../../helpers/StorageManager';
6
4
 
7
5
  export const useFilters = ({
8
- view,
9
- module,
10
- filtersConfig,
11
- goTo,
12
- location,
13
- selectFiltersConfig,
14
- defaultPageSize = 20,
15
- defaultActiveFilters,
16
- defaultUrlParams = {},
17
- doPagination = true,
18
- getRedirectLink,
6
+ view,
7
+ module,
8
+ filtersConfig,
9
+ goTo,
10
+ location,
11
+ selectFiltersConfig,
12
+ defaultPageSize = 20,
13
+ defaultActiveFilters,
14
+ defaultUrlParams = {},
15
+ doPagination = true,
16
+ getRedirectLink,
19
17
  }) => {
20
- const PAGE = NEW_PAGINATION_TITLES.includes(module) ? "skip" : "page";
21
- const PAGE_SIZE = NEW_PAGINATION_TITLES.includes(module) ? "take" : "pageSize";
22
-
23
- const params = useMemo(() => new URLSearchParams(location.search), [location.search]);
24
- const [activeFilters, setActiveFilters] = useState(
25
- defaultActiveFilters ||
26
- getDefaultActiveFilters(
27
- params,
28
- selectFiltersConfig,
29
- defaultPageSize,
30
- defaultUrlParams,
31
- doPagination,
32
- ),
33
- );
34
- const [pagination, setPagination] = useState(
35
- defaultActiveFilters
36
- ? {
37
- current: defaultActiveFilters[PAGE] || 1,
38
- [PAGE_SIZE]: defaultActiveFilters[PAGE_SIZE] || defaultPageSize,
39
- showSizeChanger: true,
40
- }
41
- : {
42
- current: !isNaN(Number(params.get(PAGE))) ? Number(params.get(PAGE)) || 1 : 1,
43
- [PAGE_SIZE]: !isNaN(Number(params.get(PAGE_SIZE)))
44
- ? Number(params.get(PAGE_SIZE)) || defaultPageSize
45
- : defaultPageSize,
46
- showSizeChanger: true,
47
- },
48
- );
49
-
50
- useEffect(() => {
51
- if (defaultActiveFilters) {
52
- setPagination((prev) => ({
53
- ...prev,
54
- current: defaultActiveFilters[PAGE] || 1,
55
- [PAGE_SIZE]: defaultActiveFilters[PAGE_SIZE] || defaultPageSize,
56
- showSizeChanger: true,
57
- }));
58
- return;
59
- }
60
- setPagination((prev) => ({
61
- ...prev,
62
- current: !isNaN(Number(params.get(PAGE))) ? Number(params.get(PAGE)) || 1 : 1,
63
- [PAGE_SIZE]: !isNaN(Number(params.get(PAGE_SIZE)))
64
- ? Number(params.get(PAGE_SIZE)) || defaultPageSize
65
- : defaultPageSize,
66
- showSizeChanger: true,
67
- }));
68
- }, []);
69
-
70
- const updateQuery = useCallback(
71
- (filters, page) => {
72
- const qs = Object.keys(filters)
73
- .filter((key) => {
74
- if (!doPagination) {
75
- return !!filters[key] && key !== PAGE && key !== PAGE_SIZE;
76
- }
77
-
78
- return !!filters[key];
79
- })
80
- .map((key) => {
81
- if (filters[key] && typeof filters[key] === "object") {
82
- return `${key}=${JSON.stringify(filters[key])}`;
83
- }
84
- return `${key}=${filters[key]}`;
85
- })
86
- .join("&");
87
-
88
- if (view) {
89
- if (typeof getRedirectLink === "function") {
90
- goTo(
91
- getRedirectLink(
92
- view === "mine-monitoring"
93
- ? qs !== ""
94
- ? `${location.pathname}?${qs}`
95
- : doPagination
96
- ? `${location.pathname}?${PAGE}=${page}`
97
- : location.pathname
98
- : qs !== ""
99
- ? `${`/app/${view}`}?${qs}`
100
- : doPagination
101
- ? `${`/app/${view}`}?${PAGE}=${page}`
102
- : `${`/app/${view}`}`,
103
- ),
104
- );
105
- return;
106
- }
107
-
108
- if (view === "mine-monitoring") {
109
- goTo(
110
- qs !== ""
111
- ? `${location.pathname}?${qs}`
112
- : doPagination
113
- ? `${location.pathname}?${PAGE}=${page}`
114
- : location.pathname,
115
- );
116
- } else {
117
- goTo(
118
- qs !== ""
119
- ? `${`/app/${module}/${view}`}?${qs}`
120
- : doPagination
121
- ? `${`/app/${module}/${view}`}?${PAGE}=${page}`
122
- : `${`/app/${module}/${view}`}`,
123
- );
124
- }
125
- }
126
- },
127
- [module, view, location.pathname],
128
- ); // Updated dependency array
129
-
130
- const defaultFilters = useMemo(() => {
131
- const def = {};
132
- Object.keys(selectFiltersConfig).forEach((key) => {
133
- if (activeFilters[key]) {
134
- def[key] = activeFilters[key];
135
- }
136
- });
137
- return def;
138
- }, [activeFilters, selectFiltersConfig]);
139
-
140
- const newFiltersConfig = useMemo(() => {
141
- const o = filtersConfig;
142
- Object.keys(filtersConfig).forEach((key) => {
143
- if (params.has(key)) {
144
- o[key] = params.get(key);
145
- }
146
- });
147
- return o;
148
- }, [params, filtersConfig]);
149
-
150
- useEffect(() => {
151
- const filteredFilters = Object.keys(activeFilters).reduce((all, key) => {
152
- if (activeFilters[key]) {
153
- all[key] = activeFilters[key];
154
- }
155
- return all;
156
- }, {});
157
-
158
- const filters = StorageManager.saveFilters(module, view, { ...filteredFilters });
159
-
160
- if (!filters[PAGE_SIZE]) {
161
- filters[PAGE] = 1;
162
- filters[PAGE_SIZE] = pagination[PAGE_SIZE];
163
- }
164
-
165
- updateQuery(filters, 1);
166
- }, [activeFilters]);
167
-
168
- const onFiltersChange = useCallback(
169
- (filters) => {
170
- const filteredFilters = Object.keys(filters).reduce((all, key) => {
171
- const conf = selectFiltersConfig[key];
172
- if (conf) {
173
- const { show } = conf;
174
- if (typeof show === "function") {
175
- if (show(filters)) {
176
- return all;
177
- }
178
- }
179
- }
180
-
181
- if (Array.isArray(filters[key]) && !filters[key].length) {
182
- all[key] = undefined;
183
- return all;
184
- }
185
-
186
- all[key] = filters[key];
187
- return all;
188
- }, {});
189
-
190
- setActiveFilters((prev) => {
191
- const o = { ...prev };
192
- Object.keys(o).forEach((k) => {
193
- if (Object.keys(selectFiltersConfig).includes(k) || k === "authorId") {
194
- delete o[k];
195
- }
196
- });
197
- Object.entries(filteredFilters).forEach(([k, v]) => {
198
- o[k] = v;
199
- });
200
-
201
- if (doPagination) {
202
- o[PAGE] = 1;
203
- }
204
-
205
- return o;
206
- });
207
- setPagination((prev) => ({ ...prev, current: 1 }));
208
- },
209
- [selectFiltersConfig],
210
- );
211
-
212
- const onTableChange = (page, f, sorter) => {
213
- const { sortBy, sortDir } = activeFilters;
214
- const { columnKey, order } = sorter || {};
215
-
216
- let fs = {
217
- ...activeFilters,
218
- [PAGE]: page[PAGE_SIZE] !== activeFilters[PAGE_SIZE] ? 1 : page.current,
219
- [PAGE_SIZE]: page[PAGE_SIZE] || defaultPageSize,
220
- };
221
-
222
- if (sorter && (columnKey !== sortBy || order !== sortDir)) {
223
- fs[PAGE] = 1;
224
- }
225
-
226
- if (order) {
227
- fs = { ...fs, sortDir: order, sortBy: columnKey };
228
- } else if (sortBy || sortDir) {
229
- fs = Object.keys(fs).reduce((all, key) => {
230
- if (key !== "sortDir" && key !== "sortBy") {
231
- if (key === PAGE || key === PAGE_SIZE) {
232
- all[key] = fs[key];
233
- } else {
234
- all[key] = activeFilters[key];
235
- }
236
- }
237
- return all;
238
- }, {});
239
- }
240
-
241
- setActiveFilters(fs);
242
-
243
- if (isNaN(page.current)) {
244
- page.current = 1;
245
- }
246
-
247
- const filters = StorageManager.saveFilters(module, view, { [PAGE]: page.current }, true);
248
-
249
- updateQuery(filters, page.current);
250
- setPagination((prev) => ({
251
- ...prev,
252
- current: fs[PAGE],
253
- [PAGE_SIZE]: fs[PAGE_SIZE] || defaultPageSize,
254
- }));
255
- };
256
-
257
- const onSearch = useCallback((activeFilter, value) => {
258
- setActiveFilters((prev) => ({
259
- ...prev,
260
- [PAGE]: 1,
261
- searchParams: activeFilter,
262
- search: value,
263
- }));
264
- setPagination((prev) => ({ ...prev, current: 1 }));
265
- }, []);
266
-
267
- const totalPages = useMemo(() => {
268
- return Math.ceil(pagination.total / pagination[PAGE_SIZE]);
269
- }, [pagination]);
270
-
271
- const canGoPrev = useMemo(() => pagination.current !== 1, [pagination]);
272
- const canGoNext = useMemo(
273
- () => pagination.current !== totalPages && totalPages,
274
- [pagination, totalPages],
275
- );
276
-
277
- const goPrev = () => {
278
- if (!canGoPrev) {
279
- return;
280
- }
281
-
282
- const { sortDir, sortBy } = activeFilters;
283
-
284
- onTableChange(
285
- { ...pagination, current: pagination.current - 1 },
286
- undefined,
287
- sortBy && sortDir ? { sortBy, sortDir } : undefined,
288
- );
289
- };
290
-
291
- const goNext = () => {
292
- if (!canGoNext) {
293
- return;
294
- }
295
-
296
- const { sortDir, sortBy } = activeFilters;
297
-
298
- onTableChange(
299
- { ...pagination, current: pagination.current + 1 },
300
- undefined,
301
- sortBy && sortDir ? { columnKey: sortBy, order: sortDir } : undefined,
302
- );
303
- };
304
-
305
- return {
306
- newFiltersConfig,
307
- totalPages,
308
- canGoNext,
309
- canGoPrev,
310
- goPrev,
311
- goNext,
312
- pagination,
313
- activeFilters,
314
- onSearch,
315
- defaultFilters,
316
- onTableChange,
317
- setPagination,
318
- onFiltersChange,
319
- setActiveFilters,
320
- };
18
+ const params = useMemo(() => new URLSearchParams(location.search), [location.search]);
19
+ const [activeFilters, setActiveFilters] = useState(
20
+ defaultActiveFilters || getDefaultActiveFilters(params, selectFiltersConfig, defaultPageSize, defaultUrlParams, doPagination)
21
+ );
22
+ const [pagination, setPagination] = useState(
23
+ defaultActiveFilters ? {
24
+ current: defaultActiveFilters.page || 1,
25
+ pageSize: defaultActiveFilters.pageSize || defaultPageSize,
26
+ showSizeChanger: true,
27
+ } : {
28
+ current: !isNaN(Number(params.get('page'))) ? Number(params.get('page')) || 1 : 1,
29
+ pageSize: !isNaN(Number(params.get('pageSize'))) ? Number(params.get('pageSize')) || defaultPageSize : defaultPageSize,
30
+ showSizeChanger: true,
31
+ });
32
+
33
+ useEffect(() => {
34
+ if (defaultActiveFilters) {
35
+ setPagination((prev) => ({
36
+ ...prev,
37
+ current: defaultActiveFilters.page || 1,
38
+ pageSize: defaultActiveFilters.pageSize || defaultPageSize,
39
+ showSizeChanger: true,
40
+ }));
41
+ return;
42
+ }
43
+ setPagination((prev) => ({
44
+ ...prev,
45
+ current: !isNaN(Number(params.get('page'))) ? Number(params.get('page')) || 1 : 1,
46
+ pageSize: !isNaN(Number(params.get('pageSize'))) ? Number(params.get('pageSize')) || defaultPageSize : defaultPageSize,
47
+ showSizeChanger: true,
48
+ }));
49
+ }, []);
50
+
51
+ const updateQuery = useCallback((filters, page) => {
52
+ const qs = Object.keys(filters)
53
+ .filter((key) => {
54
+ if (!doPagination) {
55
+ return !!filters[key] && key !== 'page' && key !== 'pageSize';
56
+ }
57
+
58
+ return !!filters[key];
59
+ })
60
+ .map(key => {
61
+ if (filters[key] && typeof filters[key] === 'object') {
62
+ return `${key}=${JSON.stringify(filters[key])}`;
63
+ }
64
+ return `${key}=${filters[key]}`;
65
+ })
66
+ .join('&');
67
+
68
+ if (view) {
69
+ if (typeof getRedirectLink === 'function') {
70
+ goTo(getRedirectLink(
71
+ view === 'mine-monitoring'
72
+ ? (qs !== '' ? `${location.pathname}?${qs}`
73
+ : doPagination ? `${location.pathname}?page=${page}`
74
+ : location.pathname)
75
+ : (qs !== '' ? `${`/app/${view}`}?${qs}`
76
+ : doPagination ? `${`/app/${view}`}?page=${page}`
77
+ : `${`/app/${view}`}`)
78
+ ));
79
+ return;
80
+ }
81
+
82
+ if (view === 'mine-monitoring') {
83
+ goTo(
84
+ qs !== '' ? `${location.pathname}?${qs}`
85
+ : doPagination ? `${location.pathname}?page=${page}`
86
+ : location.pathname);
87
+ } else {
88
+ goTo(
89
+ qs !== '' ? `${`/app/${module}/${view}`}?${qs}`
90
+ : doPagination ? `${`/app/${module}/${view}`}?page=${page}`
91
+ : `${`/app/${module}/${view}`}`);
92
+ }
93
+ }
94
+ }, [module, view, location.pathname]); // Updated dependency array
95
+
96
+ const defaultFilters = useMemo(() => {
97
+ const def = {};
98
+ Object.keys(selectFiltersConfig).forEach((key) => {
99
+ if (activeFilters[key]) {
100
+ def[key] = activeFilters[key];
101
+ }
102
+ });
103
+ return def;
104
+ }, [activeFilters, selectFiltersConfig]);
105
+
106
+ const newFiltersConfig = useMemo(() => {
107
+ const o = filtersConfig;
108
+ Object.keys(filtersConfig).forEach((key) => {
109
+ if (params.has(key)) {
110
+ o[key] = params.get(key);
111
+ }
112
+ });
113
+ return o;
114
+ }, [params, filtersConfig]);
115
+
116
+ useEffect(() => {
117
+ const filteredFilters = Object.keys(activeFilters).reduce((all, key) => {
118
+ if (activeFilters[key]) {
119
+ all[key] = activeFilters[key];
120
+ }
121
+ return all;
122
+ }, {});
123
+
124
+ const filters = StorageManager.saveFilters(module, view, { ...filteredFilters });
125
+
126
+ if (!filters.pageSize) {
127
+ filters.page = 1;
128
+ filters.pageSize = pagination.pageSize;
129
+ }
130
+
131
+ updateQuery(filters, 1);
132
+ }, [activeFilters]);
133
+
134
+ const onFiltersChange = useCallback((filters) => {
135
+ const filteredFilters = Object.keys(filters).reduce((all, key) => {
136
+ const conf = selectFiltersConfig[key];
137
+ if (conf) {
138
+ const { show } = conf;
139
+ if (typeof show === 'function') {
140
+ if (show(filters)) {
141
+ return all;
142
+ }
143
+ }
144
+ }
145
+
146
+ if (Array.isArray(filters[key]) && !filters[key].length) {
147
+ all[key] = undefined;
148
+ return all;
149
+ }
150
+
151
+ all[key] = filters[key];
152
+ return all;
153
+ }, {});
154
+
155
+ setActiveFilters((prev) => {
156
+ const o = { ...prev };
157
+ Object.keys(o).forEach((k) => {
158
+ if (Object.keys(selectFiltersConfig).includes(k) || k === 'authorId') {
159
+ delete o[k];
160
+ }
161
+ });
162
+ Object.entries(filteredFilters).forEach(([k, v]) => {
163
+ o[k] = v;
164
+ });
165
+
166
+ if (doPagination) {
167
+ o.page = 1;
168
+ }
169
+
170
+ return o;
171
+ });
172
+ setPagination((prev) => ({ ...prev, current: 1 }));
173
+ }, [selectFiltersConfig]);
174
+
175
+ const onTableChange = (page, f, sorter) => {
176
+ const { sortBy, sortDir } = activeFilters;
177
+ const { columnKey, order } = sorter || {};
178
+
179
+ let fs = {
180
+ ...activeFilters,
181
+ page: page.pageSize !== activeFilters.pageSize ? 1 : page.current,
182
+ pageSize: page.pageSize || defaultPageSize,
183
+ };
184
+
185
+ if (sorter && (columnKey !== sortBy || order !== sortDir)) {
186
+ fs.page = 1;
187
+ }
188
+
189
+ if (order) {
190
+ fs = { ...fs, sortDir: order, sortBy: columnKey };
191
+ } else if (sortBy || sortDir) {
192
+ fs = Object.keys(fs).reduce((all, key) => {
193
+ if (key !== 'sortDir' && key !== 'sortBy') {
194
+ if (key === 'page' || key === 'pageSize') {
195
+ all[key] = fs[key];
196
+ } else {
197
+ all[key] = activeFilters[key];
198
+ }
199
+ }
200
+ return all;
201
+ }, {});
202
+ }
203
+
204
+ setActiveFilters(fs);
205
+
206
+ if (isNaN(page.current)) {
207
+ page.current = 1;
208
+ }
209
+
210
+ const filters = StorageManager.saveFilters(module, view, { page: page.current }, true);
211
+
212
+ updateQuery(filters, page.current);
213
+ setPagination((prev) => ({
214
+ ...prev,
215
+ current: fs.page,
216
+ pageSize: fs.pageSize || defaultPageSize
217
+ }));
218
+ };
219
+
220
+ const onSearch = useCallback((activeFilter, value) => {
221
+ setActiveFilters((prev) => ({
222
+ ...prev,
223
+ page: 1,
224
+ searchParams: activeFilter,
225
+ search: value,
226
+ }));
227
+ setPagination((prev) => ({ ...prev, current: 1 }));
228
+ }, []);
229
+
230
+ const totalPages = useMemo(() => {
231
+ return Math.ceil(pagination.total / pagination.pageSize);
232
+ }, [pagination]);
233
+
234
+ const canGoPrev = useMemo(() => pagination.current !== 1, [pagination]);
235
+ const canGoNext = useMemo(() => pagination.current !== totalPages && totalPages, [pagination, totalPages]);
236
+
237
+ const goPrev = () => {
238
+ if (!canGoPrev) {
239
+ return;
240
+ }
241
+
242
+ const { sortDir, sortBy } = activeFilters;
243
+
244
+ onTableChange(
245
+ { ...pagination, current: pagination.current - 1 },
246
+ undefined,
247
+ sortBy && sortDir ? { sortBy, sortDir } : undefined
248
+ );
249
+ };
250
+
251
+ const goNext = () => {
252
+ if (!canGoNext) {
253
+ return;
254
+ }
255
+
256
+ const { sortDir, sortBy } = activeFilters;
257
+
258
+ onTableChange(
259
+ { ...pagination, current: pagination.current + 1 },
260
+ undefined,
261
+ sortBy && sortDir ? { columnKey: sortBy, order: sortDir } : undefined
262
+ );
263
+ };
264
+
265
+ return {
266
+ newFiltersConfig,
267
+ totalPages,
268
+ canGoNext,
269
+ canGoPrev,
270
+ goPrev,
271
+ goNext,
272
+ pagination,
273
+ activeFilters,
274
+ onSearch,
275
+ defaultFilters,
276
+ onTableChange,
277
+ setPagination,
278
+ onFiltersChange,
279
+ setActiveFilters,
280
+ };
321
281
  };
@@ -1,20 +1,17 @@
1
1
  import { useEffect, useState } from "react";
2
2
 
3
- const PAGE = "page";
4
- const PAGE_SIZE = "pageSize";
5
-
6
3
  export default function useSource({ user = {}, t = () => {}, getData = () => {}, id }) {
7
4
  const [loading, setLoading] = useState(true);
8
5
  const [partners, setPartners] = useState([]);
9
6
  const [selectedPartners, setSelectedPartners] = useState({ loading: true });
10
-
7
+
11
8
  useEffect(() => {
12
9
  async function fetchPartners() {
13
10
  try {
14
11
  setLoading(true);
15
12
  const { data } = await getData({
16
- [PAGE]: 1,
17
- [PAGE_SIZE]: 100,
13
+ page: 1,
14
+ pageSize: 100,
18
15
  type: "partners",
19
16
  });
20
17
 
package/.env DELETED
@@ -1,8 +0,0 @@
1
- REACT_APP_API_KEY=
2
- REACT_APP_AUTH_DOMAIN=
3
- REACT_APP_PROJECT_ID=
4
- REACT_APP_STORAGE_BUCKED=
5
- REACT_APP_SENDER_ID=
6
- REACT_APP_APP_ID=
7
- REACT_APP_MEASUREMENT_ID=
8
- REACT_APP_VAPID_KEY=
@@ -1,13 +0,0 @@
1
- {
2
- "cSpell.words": ["cukura"],
3
- "files.autoSave": "afterDelay",
4
- "editor.wordWrap": "on",
5
- "editor.autoClosingBrackets": "always",
6
- "editor.autoClosingComments": "always",
7
- "editor.autoClosingQuotes": "always",
8
- "editor.defaultFormatter": "esbenp.prettier-vscode",
9
- "editor.formatOnPaste": true,
10
- "editor.formatOnSave": true,
11
- "notebook.defaultFormatter": "esbenp.prettier-vscode",
12
- "javascript.format.semicolons": "insert"
13
- }