@panneau/data 3.0.169 → 3.0.174
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.
- package/es/index.js +518 -20
- package/lib/index.js +1073 -571
- package/package.json +5 -3
package/es/index.js
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
|
-
import React, { useState, useCallback, useEffect,
|
|
2
|
+
import React, { useState, useCallback, useEffect, useMemo, useRef, useContext } from 'react';
|
|
3
3
|
import { useUrlGenerator } from '@panneau/core/contexts';
|
|
4
4
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
5
5
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
6
6
|
import _callSuper from '@babel/runtime/helpers/callSuper';
|
|
7
7
|
import _inherits from '@babel/runtime/helpers/inherits';
|
|
8
8
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
9
|
-
import {
|
|
9
|
+
import { getJSON, getCSRFHeaders, postJSON } from '@folklore/fetch';
|
|
10
10
|
import { generatePath } from '@folklore/routes';
|
|
11
11
|
import queryString from 'query-string';
|
|
12
|
+
import { useQuery, keepPreviousData, QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
12
13
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
13
|
-
import
|
|
14
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
14
15
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
16
|
+
import isEmpty from 'lodash/isEmpty';
|
|
17
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
15
18
|
|
|
16
19
|
var useData = function useData(loadData) {
|
|
17
20
|
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
@@ -70,6 +73,231 @@ var useData = function useData(loadData) {
|
|
|
70
73
|
};
|
|
71
74
|
var useData$1 = useData;
|
|
72
75
|
|
|
76
|
+
var _excluded$3 = ["store", "url", "paginated", "query", "onQueryChange", "queryConfig", "keepData"],
|
|
77
|
+
_excluded2$1 = ["page", "count"],
|
|
78
|
+
_excluded3 = ["data", "refetch", "isLoading", "isFetched", "status", "error"];
|
|
79
|
+
var useItems$2 = function useItems(_ref) {
|
|
80
|
+
var store = _ref.store,
|
|
81
|
+
url = _ref.url,
|
|
82
|
+
_ref$paginated = _ref.paginated,
|
|
83
|
+
initialPaginated = _ref$paginated === void 0 ? false : _ref$paginated,
|
|
84
|
+
_ref$query = _ref.query,
|
|
85
|
+
initialQuery = _ref$query === void 0 ? null : _ref$query,
|
|
86
|
+
onQueryChange = _ref.onQueryChange,
|
|
87
|
+
_ref$queryConfig = _ref.queryConfig,
|
|
88
|
+
queryConfig = _ref$queryConfig === void 0 ? null : _ref$queryConfig,
|
|
89
|
+
_ref$keepData = _ref.keepData,
|
|
90
|
+
keepData = _ref$keepData === void 0 ? true : _ref$keepData,
|
|
91
|
+
oldProps = _objectWithoutProperties(_ref, _excluded$3);
|
|
92
|
+
// Legacy
|
|
93
|
+
var _ref2 = oldProps || {},
|
|
94
|
+
_ref2$getPage = _ref2.getPage,
|
|
95
|
+
getPage = _ref2$getPage === void 0 ? null : _ref2$getPage,
|
|
96
|
+
_ref2$getItems = _ref2.getItems,
|
|
97
|
+
getItems = _ref2$getItems === void 0 ? null : _ref2$getItems,
|
|
98
|
+
_ref2$page = _ref2.page,
|
|
99
|
+
oldPage = _ref2$page === void 0 ? null : _ref2$page,
|
|
100
|
+
_ref2$count = _ref2.count,
|
|
101
|
+
oldCount = _ref2$count === void 0 ? null : _ref2$count,
|
|
102
|
+
_ref2$items = _ref2.items,
|
|
103
|
+
providedItems = _ref2$items === void 0 ? null : _ref2$items,
|
|
104
|
+
_ref2$pages = _ref2.pages,
|
|
105
|
+
initialPages = _ref2$pages === void 0 ? null : _ref2$pages,
|
|
106
|
+
_ref2$getPageFromResp = _ref2.getPageFromResponse,
|
|
107
|
+
getPageFromResponse = _ref2$getPageFromResp === void 0 ? function () {
|
|
108
|
+
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
109
|
+
_ref3$pagination = _ref3.pagination,
|
|
110
|
+
_ref3$pagination$page = _ref3$pagination.page,
|
|
111
|
+
currentPage = _ref3$pagination$page === void 0 ? null : _ref3$pagination$page,
|
|
112
|
+
_ref3$pagination$last = _ref3$pagination.last_page,
|
|
113
|
+
lastPage = _ref3$pagination$last === void 0 ? null : _ref3$pagination$last,
|
|
114
|
+
_ref3$pagination$tota = _ref3$pagination.total,
|
|
115
|
+
total = _ref3$pagination$tota === void 0 ? null : _ref3$pagination$tota,
|
|
116
|
+
_ref3$pagination$per_ = _ref3$pagination.per_page,
|
|
117
|
+
perPage = _ref3$pagination$per_ === void 0 ? null : _ref3$pagination$per_,
|
|
118
|
+
_ref3$data = _ref3.data,
|
|
119
|
+
items = _ref3$data === void 0 ? null : _ref3$data;
|
|
120
|
+
return {
|
|
121
|
+
page: parseInt(currentPage, 10),
|
|
122
|
+
lastPage: parseInt(lastPage, 10),
|
|
123
|
+
total: parseInt(total, 10),
|
|
124
|
+
count: parseInt(perPage, 10),
|
|
125
|
+
items: items
|
|
126
|
+
};
|
|
127
|
+
} : _ref2$getPageFromResp,
|
|
128
|
+
_ref2$getItemsFromRes = _ref2.getItemsFromResponse,
|
|
129
|
+
getItemsFromResponse = _ref2$getItemsFromRes === void 0 ? function (data) {
|
|
130
|
+
return data;
|
|
131
|
+
} : _ref2$getItemsFromRes,
|
|
132
|
+
_ref2$onItemsLoaded = _ref2.onItemsLoaded,
|
|
133
|
+
onItemsLoaded = _ref2$onItemsLoaded === void 0 ? null : _ref2$onItemsLoaded,
|
|
134
|
+
_ref2$onPageLoaded = _ref2.onPageLoaded,
|
|
135
|
+
onPageLoaded = _ref2$onPageLoaded === void 0 ? null : _ref2$onPageLoaded,
|
|
136
|
+
_ref2$onLoaded = _ref2.onLoaded,
|
|
137
|
+
onLoaded = _ref2$onLoaded === void 0 ? null : _ref2$onLoaded,
|
|
138
|
+
_ref2$onError = _ref2.onError,
|
|
139
|
+
onError = _ref2$onError === void 0 ? null : _ref2$onError;
|
|
140
|
+
var paginated = useMemo(function () {
|
|
141
|
+
return getPage !== null || initialPages !== null || initialPaginated;
|
|
142
|
+
}, [getPage, initialPages, initialPaginated]);
|
|
143
|
+
var query = useMemo(function () {
|
|
144
|
+
// Backwards compatible
|
|
145
|
+
if (oldPage !== null || oldCount !== null) {
|
|
146
|
+
return _objectSpread({
|
|
147
|
+
page: oldPage,
|
|
148
|
+
count: oldCount
|
|
149
|
+
}, initialQuery);
|
|
150
|
+
}
|
|
151
|
+
return initialQuery;
|
|
152
|
+
}, [initialQuery]);
|
|
153
|
+
var _ref4 = query || {},
|
|
154
|
+
_ref4$page = _ref4.page,
|
|
155
|
+
page = _ref4$page === void 0 ? null : _ref4$page,
|
|
156
|
+
_ref4$count = _ref4.count,
|
|
157
|
+
count = _ref4$count === void 0 ? null : _ref4$count,
|
|
158
|
+
queryWithoutPageAndCount = _objectWithoutProperties(_ref4, _excluded2$1);
|
|
159
|
+
var queryKey = useMemo(function () {
|
|
160
|
+
return paginated && getPage !== null ? [store, page, count || 10, queryWithoutPageAndCount] : [store, query];
|
|
161
|
+
}, [paginated, page, count, queryWithoutPageAndCount]);
|
|
162
|
+
var _useQuery = useQuery(_objectSpread(_objectSpread(_objectSpread({
|
|
163
|
+
queryKey: queryKey,
|
|
164
|
+
queryFn: function queryFn(_ref5) {
|
|
165
|
+
var key = _ref5.queryKey;
|
|
166
|
+
if (paginated && getPage !== null) {
|
|
167
|
+
var _key = _slicedToArray(key, 4),
|
|
168
|
+
_key$ = _key[1],
|
|
169
|
+
p = _key$ === void 0 ? null : _key$,
|
|
170
|
+
_key$2 = _key[2],
|
|
171
|
+
c = _key$2 === void 0 ? null : _key$2,
|
|
172
|
+
_key$3 = _key[3],
|
|
173
|
+
_q = _key$3 === void 0 ? null : _key$3;
|
|
174
|
+
return getPage(p, c, _q);
|
|
175
|
+
}
|
|
176
|
+
if (!paginated && getItems !== null) {
|
|
177
|
+
var _key2 = _slicedToArray(key, 2),
|
|
178
|
+
_key2$ = _key2[1],
|
|
179
|
+
_q2 = _key2$ === void 0 ? null : _key2$;
|
|
180
|
+
return getItems(_q2);
|
|
181
|
+
}
|
|
182
|
+
var _key3 = _slicedToArray(key, 2),
|
|
183
|
+
_key3$ = _key3[1],
|
|
184
|
+
q = _key3$ === void 0 ? null : _key3$;
|
|
185
|
+
return getJSON("".concat(url).concat(!isEmpty(q) ? "?".concat(queryString.stringify(q, {
|
|
186
|
+
arrayFormat: 'bracket'
|
|
187
|
+
})) : ''));
|
|
188
|
+
}
|
|
189
|
+
}, keepData ? {
|
|
190
|
+
placeholderData: keepPreviousData
|
|
191
|
+
} : null), providedItems !== null ? {
|
|
192
|
+
initialData: providedItems
|
|
193
|
+
} : null), queryConfig)),
|
|
194
|
+
_useQuery$data = _useQuery.data,
|
|
195
|
+
data = _useQuery$data === void 0 ? null : _useQuery$data,
|
|
196
|
+
reload = _useQuery.refetch,
|
|
197
|
+
loading = _useQuery.isLoading,
|
|
198
|
+
loaded = _useQuery.isFetched,
|
|
199
|
+
_useQuery$status = _useQuery.status,
|
|
200
|
+
status = _useQuery$status === void 0 ? null : _useQuery$status,
|
|
201
|
+
_useQuery$error = _useQuery.error,
|
|
202
|
+
error = _useQuery$error === void 0 ? null : _useQuery$error,
|
|
203
|
+
otherProps = _objectWithoutProperties(_useQuery, _excluded3);
|
|
204
|
+
var _ref6 = data || {},
|
|
205
|
+
_ref6$data = _ref6.data,
|
|
206
|
+
items = _ref6$data === void 0 ? [] : _ref6$data,
|
|
207
|
+
_ref6$pagination = _ref6.pagination,
|
|
208
|
+
pagination = _ref6$pagination === void 0 ? null : _ref6$pagination;
|
|
209
|
+
var _ref7 = pagination || {},
|
|
210
|
+
_ref7$page = _ref7.page,
|
|
211
|
+
currentPage = _ref7$page === void 0 ? null : _ref7$page,
|
|
212
|
+
_ref7$last_page = _ref7.last_page,
|
|
213
|
+
lastPage = _ref7$last_page === void 0 ? null : _ref7$last_page,
|
|
214
|
+
_ref7$total = _ref7.total,
|
|
215
|
+
total = _ref7$total === void 0 ? null : _ref7$total;
|
|
216
|
+
var loadNextPage = useCallback(function () {
|
|
217
|
+
if (onQueryChange !== null && paginated && page !== null && page < lastPage) {
|
|
218
|
+
onQueryChange(_objectSpread(_objectSpread({}, query), {}, {
|
|
219
|
+
page: page + 1
|
|
220
|
+
}));
|
|
221
|
+
}
|
|
222
|
+
}, [paginated, pagination, page]);
|
|
223
|
+
var loadPage = useCallback(function (newPage) {
|
|
224
|
+
if (onQueryChange !== null && newPage !== null) {
|
|
225
|
+
onQueryChange(_objectSpread(_objectSpread({}, query), {}, {
|
|
226
|
+
page: newPage
|
|
227
|
+
}));
|
|
228
|
+
}
|
|
229
|
+
}, [query, onQueryChange]);
|
|
230
|
+
var pages = useRef(null);
|
|
231
|
+
useEffect(function () {
|
|
232
|
+
if (loaded && page !== null && data !== null) {
|
|
233
|
+
pages.current = _objectSpread(_objectSpread({}, pages.current), {}, _defineProperty({}, page, data));
|
|
234
|
+
}
|
|
235
|
+
}, [loaded, page, data]);
|
|
236
|
+
var finalItems = useMemo(function () {
|
|
237
|
+
if (data === null) {
|
|
238
|
+
return data;
|
|
239
|
+
}
|
|
240
|
+
if (paginated) {
|
|
241
|
+
if (getPageFromResponse !== null) {
|
|
242
|
+
return items;
|
|
243
|
+
}
|
|
244
|
+
return items;
|
|
245
|
+
}
|
|
246
|
+
if (getItemsFromResponse !== null) {
|
|
247
|
+
return getItemsFromResponse(data);
|
|
248
|
+
}
|
|
249
|
+
return data;
|
|
250
|
+
}, [items, data, paginated, getPageFromResponse, getItemsFromResponse]);
|
|
251
|
+
|
|
252
|
+
// Pseudo-events for compatibility
|
|
253
|
+
useEffect(function () {
|
|
254
|
+
if (status === 'success') {
|
|
255
|
+
if (onPageLoaded !== null && paginated) {
|
|
256
|
+
onItemsLoaded(data);
|
|
257
|
+
}
|
|
258
|
+
if (onItemsLoaded !== null && !paginated) {
|
|
259
|
+
onItemsLoaded(data);
|
|
260
|
+
}
|
|
261
|
+
if (onLoaded !== null) {
|
|
262
|
+
onLoaded(data);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
if (status === 'error' && onError !== null) {
|
|
266
|
+
onError(error);
|
|
267
|
+
}
|
|
268
|
+
}, [status]);
|
|
269
|
+
var allItems = pages.current !== null ? Object.keys(pages.current).flatMap(function (k) {
|
|
270
|
+
var _pages$current$k;
|
|
271
|
+
return (_pages$current$k = pages.current[k]) === null || _pages$current$k === void 0 ? void 0 : _pages$current$k.data;
|
|
272
|
+
}) : null;
|
|
273
|
+
return _objectSpread(_objectSpread({}, otherProps), {}, {
|
|
274
|
+
items: finalItems,
|
|
275
|
+
allItems: allItems,
|
|
276
|
+
pages: pages.current,
|
|
277
|
+
pageItems: paginated ? finalItems : null,
|
|
278
|
+
pagination: paginated ? {
|
|
279
|
+
page: currentPage,
|
|
280
|
+
lastPage: lastPage,
|
|
281
|
+
total: total
|
|
282
|
+
} : null,
|
|
283
|
+
total: total,
|
|
284
|
+
lastPage: lastPage,
|
|
285
|
+
loaded: loaded,
|
|
286
|
+
allLoaded: paginated && pages.current !== null && Object.keys(pages.current).length === lastPage || !paginated && loaded,
|
|
287
|
+
// very basic stuff, TODO
|
|
288
|
+
loading: loading,
|
|
289
|
+
loadNextPage: loadNextPage,
|
|
290
|
+
loadPage: loadPage,
|
|
291
|
+
reloadPage: reload,
|
|
292
|
+
reload: reload,
|
|
293
|
+
reset: reload,
|
|
294
|
+
updateItem: null,
|
|
295
|
+
status: status,
|
|
296
|
+
error: error
|
|
297
|
+
});
|
|
298
|
+
};
|
|
299
|
+
var useItems$3 = useItems$2;
|
|
300
|
+
|
|
73
301
|
var useItems = function useItems(_ref) {
|
|
74
302
|
var _ref$getPage = _ref.getPage,
|
|
75
303
|
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
@@ -342,6 +570,200 @@ var useItems = function useItems(_ref) {
|
|
|
342
570
|
};
|
|
343
571
|
var useItems$1 = useItems;
|
|
344
572
|
|
|
573
|
+
var _excluded$2 = ["page", "count"],
|
|
574
|
+
_excluded2 = ["data", "refetch", "isLoading", "isFetching", "isRefetching", "isFetched"];
|
|
575
|
+
var useItemsStore = function useItemsStore(store, _ref) {
|
|
576
|
+
var _ref$url = _ref.url,
|
|
577
|
+
url = _ref$url === void 0 ? null : _ref$url,
|
|
578
|
+
_ref$getPage = _ref.getPage,
|
|
579
|
+
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
580
|
+
_ref$getItems = _ref.getItems,
|
|
581
|
+
getItems = _ref$getItems === void 0 ? null : _ref$getItems,
|
|
582
|
+
_ref$getPageFromRespo = _ref.getPageFromResponse,
|
|
583
|
+
getPageFromResponse = _ref$getPageFromRespo === void 0 ? null : _ref$getPageFromRespo,
|
|
584
|
+
_ref$getItemsFromResp = _ref.getItemsFromResponse,
|
|
585
|
+
getItemsFromResponse = _ref$getItemsFromResp === void 0 ? null : _ref$getItemsFromResp,
|
|
586
|
+
_ref$page = _ref.page,
|
|
587
|
+
initialPage = _ref$page === void 0 ? null : _ref$page,
|
|
588
|
+
_ref$count = _ref.count,
|
|
589
|
+
initialCount = _ref$count === void 0 ? null : _ref$count,
|
|
590
|
+
_ref$query = _ref.query,
|
|
591
|
+
query = _ref$query === void 0 ? null : _ref$query,
|
|
592
|
+
_ref$onQueryChange = _ref.onQueryChange,
|
|
593
|
+
onQueryChange = _ref$onQueryChange === void 0 ? null : _ref$onQueryChange,
|
|
594
|
+
_ref$queryConfig = _ref.queryConfig,
|
|
595
|
+
queryConfig = _ref$queryConfig === void 0 ? null : _ref$queryConfig,
|
|
596
|
+
_ref$keepData = _ref.keepData,
|
|
597
|
+
keepData = _ref$keepData === void 0 ? true : _ref$keepData;
|
|
598
|
+
var _ref2 = query || {},
|
|
599
|
+
_ref2$page = _ref2.page,
|
|
600
|
+
page = _ref2$page === void 0 ? initialPage : _ref2$page,
|
|
601
|
+
_ref2$count = _ref2.count,
|
|
602
|
+
count = _ref2$count === void 0 ? initialCount : _ref2$count,
|
|
603
|
+
queryWithoutPage = _objectWithoutProperties(_ref2, _excluded$2);
|
|
604
|
+
var paginated = page !== null;
|
|
605
|
+
var queryKey = useMemo(function () {
|
|
606
|
+
return paginated ? [store, page || 1, count || 12, queryWithoutPage] : [store, query];
|
|
607
|
+
}, [paginated, store, page, count, query, queryWithoutPage, getPage, getItems]);
|
|
608
|
+
|
|
609
|
+
// console.log('queryKey', queryKey, 'paginated', paginated);
|
|
610
|
+
|
|
611
|
+
var _useQuery = useQuery(_objectSpread(_objectSpread({
|
|
612
|
+
queryKey: queryKey,
|
|
613
|
+
queryFn: function queryFn(_ref3) {
|
|
614
|
+
var _ref3$queryKey = _ref3.queryKey,
|
|
615
|
+
key = _ref3$queryKey === void 0 ? null : _ref3$queryKey;
|
|
616
|
+
if (paginated && getPage !== null) {
|
|
617
|
+
var _key = _slicedToArray(key, 4),
|
|
618
|
+
_key$ = _key[1],
|
|
619
|
+
p = _key$ === void 0 ? null : _key$,
|
|
620
|
+
_key$2 = _key[2],
|
|
621
|
+
c = _key$2 === void 0 ? null : _key$2,
|
|
622
|
+
_key$3 = _key[3],
|
|
623
|
+
_q = _key$3 === void 0 ? null : _key$3;
|
|
624
|
+
return getPage(p, c, _q);
|
|
625
|
+
}
|
|
626
|
+
if (!paginated && getItems !== null) {
|
|
627
|
+
var _key2 = _slicedToArray(key, 2),
|
|
628
|
+
_key2$ = _key2[1],
|
|
629
|
+
_q2 = _key2$ === void 0 ? null : _key2$;
|
|
630
|
+
return getItems(_q2);
|
|
631
|
+
}
|
|
632
|
+
var _key3 = _slicedToArray(key, 2),
|
|
633
|
+
_key3$ = _key3[1],
|
|
634
|
+
q = _key3$ === void 0 ? null : _key3$;
|
|
635
|
+
return getJSON("".concat(url).concat(!isEmpty(q) ? "?".concat(queryString.stringify(q, {
|
|
636
|
+
arrayFormat: 'bracket'
|
|
637
|
+
})) : ''));
|
|
638
|
+
}
|
|
639
|
+
}, keepData ? {
|
|
640
|
+
placeholderData: keepPreviousData
|
|
641
|
+
} : null), queryConfig)),
|
|
642
|
+
_useQuery$data = _useQuery.data,
|
|
643
|
+
data = _useQuery$data === void 0 ? null : _useQuery$data,
|
|
644
|
+
reload = _useQuery.refetch,
|
|
645
|
+
isLoading = _useQuery.isLoading,
|
|
646
|
+
isFetching = _useQuery.isFetching,
|
|
647
|
+
isRefetching = _useQuery.isRefetching,
|
|
648
|
+
isFetched = _useQuery.isFetched,
|
|
649
|
+
otherProps = _objectWithoutProperties(_useQuery, _excluded2);
|
|
650
|
+
var _ref4 = data || {},
|
|
651
|
+
_ref4$data = _ref4.data,
|
|
652
|
+
items = _ref4$data === void 0 ? [] : _ref4$data,
|
|
653
|
+
_ref4$pagination = _ref4.pagination,
|
|
654
|
+
pagination = _ref4$pagination === void 0 ? null : _ref4$pagination,
|
|
655
|
+
_ref4$metadata = _ref4.metadata,
|
|
656
|
+
metadata = _ref4$metadata === void 0 ? null : _ref4$metadata;
|
|
657
|
+
var _ref5 = pagination || metadata || {},
|
|
658
|
+
_ref5$page = _ref5.page,
|
|
659
|
+
currentPage = _ref5$page === void 0 ? null : _ref5$page,
|
|
660
|
+
_ref5$last_page = _ref5.last_page,
|
|
661
|
+
lastPage = _ref5$last_page === void 0 ? 0 : _ref5$last_page,
|
|
662
|
+
_ref5$total = _ref5.total,
|
|
663
|
+
total = _ref5$total === void 0 ? null : _ref5$total;
|
|
664
|
+
var loadNextPage = useCallback(function () {
|
|
665
|
+
if (onQueryChange !== null && paginated && page !== null && page < lastPage) {
|
|
666
|
+
onQueryChange(_objectSpread(_objectSpread({}, query), {}, {
|
|
667
|
+
page: page + 1
|
|
668
|
+
}));
|
|
669
|
+
}
|
|
670
|
+
}, [paginated, pagination, page]);
|
|
671
|
+
var loadPage = useCallback(function (newPage) {
|
|
672
|
+
if (onQueryChange !== null && newPage !== null) {
|
|
673
|
+
onQueryChange(_objectSpread(_objectSpread({}, query), {}, {
|
|
674
|
+
page: newPage
|
|
675
|
+
}));
|
|
676
|
+
}
|
|
677
|
+
}, [query, onQueryChange]);
|
|
678
|
+
|
|
679
|
+
// Keep a list of updated items
|
|
680
|
+
var _useState = useState([]),
|
|
681
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
682
|
+
updatedItems = _useState2[0],
|
|
683
|
+
setUpdatedItems = _useState2[1];
|
|
684
|
+
var updateItem = useCallback(function (item) {
|
|
685
|
+
var _ref6 = item || {},
|
|
686
|
+
_ref6$id = _ref6.id,
|
|
687
|
+
itemId = _ref6$id === void 0 ? null : _ref6$id;
|
|
688
|
+
if (itemId !== null) {
|
|
689
|
+
setUpdatedItems([].concat(_toConsumableArray((items || []).filter(function () {
|
|
690
|
+
var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
691
|
+
_ref7$id = _ref7.id,
|
|
692
|
+
id = _ref7$id === void 0 ? null : _ref7$id;
|
|
693
|
+
return id !== itemId;
|
|
694
|
+
})), [item]));
|
|
695
|
+
}
|
|
696
|
+
}, [items, updatedItems, setUpdatedItems]);
|
|
697
|
+
var replaceUpdatedItems = useCallback(function (currentItems) {
|
|
698
|
+
if (currentItems === null || updatedItems === null || updatedItems.length === 0) {
|
|
699
|
+
return currentItems;
|
|
700
|
+
}
|
|
701
|
+
return (currentItems || []).map(function (item) {
|
|
702
|
+
var _ref8 = item || {},
|
|
703
|
+
_ref8$id = _ref8.id,
|
|
704
|
+
itemId = _ref8$id === void 0 ? null : _ref8$id;
|
|
705
|
+
var updated = (updatedItems || []).find(function () {
|
|
706
|
+
var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
707
|
+
_ref9$id = _ref9.id,
|
|
708
|
+
id = _ref9$id === void 0 ? null : _ref9$id;
|
|
709
|
+
return id === itemId;
|
|
710
|
+
}) || null;
|
|
711
|
+
if (updated !== null) {
|
|
712
|
+
return updated;
|
|
713
|
+
}
|
|
714
|
+
return item;
|
|
715
|
+
}, []);
|
|
716
|
+
}, [updatedItems]);
|
|
717
|
+
var partialItems = useMemo(function () {
|
|
718
|
+
if (data === null) {
|
|
719
|
+
return data;
|
|
720
|
+
}
|
|
721
|
+
if (paginated) {
|
|
722
|
+
if (getPageFromResponse !== null) {
|
|
723
|
+
return getPageFromResponse(items);
|
|
724
|
+
}
|
|
725
|
+
return items;
|
|
726
|
+
}
|
|
727
|
+
if (getItemsFromResponse !== null) {
|
|
728
|
+
return getItemsFromResponse(data);
|
|
729
|
+
}
|
|
730
|
+
return data;
|
|
731
|
+
}, [items, data, paginated, getPageFromResponse, getItemsFromResponse, updatedItems]);
|
|
732
|
+
var finalItems = replaceUpdatedItems(partialItems);
|
|
733
|
+
|
|
734
|
+
// Keep a list of pages, useEffect wont work here because delayed
|
|
735
|
+
var pages = useRef(null);
|
|
736
|
+
if (isFetched && page !== null && data !== null) {
|
|
737
|
+
pages.current = _objectSpread(_objectSpread({}, pages.current), {}, _defineProperty({}, page, data));
|
|
738
|
+
}
|
|
739
|
+
var allItems = pages.current !== null ? replaceUpdatedItems(Object.keys(pages.current).flatMap(function (k) {
|
|
740
|
+
var _pages$current$k;
|
|
741
|
+
return (_pages$current$k = pages.current[k]) === null || _pages$current$k === void 0 ? void 0 : _pages$current$k.data;
|
|
742
|
+
})) : finalItems;
|
|
743
|
+
var finalLoading = isLoading || isFetching || isRefetching;
|
|
744
|
+
return _objectSpread(_objectSpread({}, otherProps), {}, {
|
|
745
|
+
isLoading: isLoading,
|
|
746
|
+
isFetching: isFetching,
|
|
747
|
+
isRefetching: isRefetching,
|
|
748
|
+
isFetched: isFetched,
|
|
749
|
+
items: finalItems,
|
|
750
|
+
pages: pages.current,
|
|
751
|
+
allItems: allItems,
|
|
752
|
+
loading: finalLoading,
|
|
753
|
+
loaded: isFetched,
|
|
754
|
+
reload: reload,
|
|
755
|
+
loadPage: loadPage,
|
|
756
|
+
loadNextPage: loadNextPage,
|
|
757
|
+
updateItem: updateItem,
|
|
758
|
+
pagination: paginated ? {
|
|
759
|
+
page: currentPage,
|
|
760
|
+
lastPage: lastPage,
|
|
761
|
+
total: total
|
|
762
|
+
} : null
|
|
763
|
+
});
|
|
764
|
+
};
|
|
765
|
+
var useItemsStore$1 = useItemsStore;
|
|
766
|
+
|
|
345
767
|
var AccountApi = /*#__PURE__*/function () {
|
|
346
768
|
function AccountApi(api, opts) {
|
|
347
769
|
_classCallCheck(this, AccountApi);
|
|
@@ -587,10 +1009,12 @@ var MediasApi = /*#__PURE__*/function (_Base) {
|
|
|
587
1009
|
baseUrl: opts.baseUrl ? opts.baseUrl : null,
|
|
588
1010
|
routes: _objectSpread({
|
|
589
1011
|
index: 'medias',
|
|
1012
|
+
trashed: 'medias/trash',
|
|
590
1013
|
tags: 'medias/tags',
|
|
591
1014
|
show: 'medias/:media',
|
|
592
1015
|
store: 'medias',
|
|
593
1016
|
update: 'medias/:media',
|
|
1017
|
+
trash: 'medias/trash/:media',
|
|
594
1018
|
"delete": 'medias/:media'
|
|
595
1019
|
}, opts.routes || null)
|
|
596
1020
|
}]);
|
|
@@ -618,6 +1042,21 @@ var MediasApi = /*#__PURE__*/function (_Base) {
|
|
|
618
1042
|
}
|
|
619
1043
|
return this.requestGet(this.route('index'), finalQuery);
|
|
620
1044
|
}
|
|
1045
|
+
}, {
|
|
1046
|
+
key: "getTrashed",
|
|
1047
|
+
value: function getTrashed() {
|
|
1048
|
+
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1049
|
+
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
1050
|
+
var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
1051
|
+
var finalQuery = _objectSpread({}, query);
|
|
1052
|
+
if (page !== null) {
|
|
1053
|
+
finalQuery.page = page;
|
|
1054
|
+
}
|
|
1055
|
+
if (count !== null) {
|
|
1056
|
+
finalQuery.count = count;
|
|
1057
|
+
}
|
|
1058
|
+
return this.requestGet(this.route('trashed'), finalQuery);
|
|
1059
|
+
}
|
|
621
1060
|
}, {
|
|
622
1061
|
key: "getTags",
|
|
623
1062
|
value: function getTags() {
|
|
@@ -641,6 +1080,13 @@ var MediasApi = /*#__PURE__*/function (_Base) {
|
|
|
641
1080
|
media: id
|
|
642
1081
|
}), data);
|
|
643
1082
|
}
|
|
1083
|
+
}, {
|
|
1084
|
+
key: "trash",
|
|
1085
|
+
value: function trash(id) {
|
|
1086
|
+
return this.requestDelete(this.route('trash', {
|
|
1087
|
+
media: id
|
|
1088
|
+
}));
|
|
1089
|
+
}
|
|
644
1090
|
}, {
|
|
645
1091
|
key: "delete",
|
|
646
1092
|
value: function _delete(id) {
|
|
@@ -681,7 +1127,7 @@ var ResourcesApi = /*#__PURE__*/function () {
|
|
|
681
1127
|
value: function get(resource) {
|
|
682
1128
|
var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
683
1129
|
var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
|
|
684
|
-
var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] :
|
|
1130
|
+
var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 12;
|
|
685
1131
|
var finalQuery = _objectSpread({}, query);
|
|
686
1132
|
if (page !== null) {
|
|
687
1133
|
finalQuery.page = page;
|
|
@@ -747,13 +1193,13 @@ var ApiContext = /*#__PURE__*/React.createContext(null);
|
|
|
747
1193
|
var useApi = function useApi() {
|
|
748
1194
|
return useContext(ApiContext);
|
|
749
1195
|
};
|
|
750
|
-
var propTypes$
|
|
1196
|
+
var propTypes$2 = {
|
|
751
1197
|
api: PropTypes.instanceOf(Api$1),
|
|
752
1198
|
baseUrl: PropTypes.string,
|
|
753
1199
|
onUnauthorized: PropTypes.func,
|
|
754
1200
|
children: PropTypes.node.isRequired
|
|
755
1201
|
};
|
|
756
|
-
var defaultProps$
|
|
1202
|
+
var defaultProps$2 = {
|
|
757
1203
|
api: null,
|
|
758
1204
|
onUnauthorized: null,
|
|
759
1205
|
baseUrl: undefined
|
|
@@ -776,8 +1222,8 @@ var ApiProvider = function ApiProvider(_ref) {
|
|
|
776
1222
|
value: api
|
|
777
1223
|
}, children);
|
|
778
1224
|
};
|
|
779
|
-
ApiProvider.propTypes = propTypes$
|
|
780
|
-
ApiProvider.defaultProps = defaultProps$
|
|
1225
|
+
ApiProvider.propTypes = propTypes$2;
|
|
1226
|
+
ApiProvider.defaultProps = defaultProps$2;
|
|
781
1227
|
|
|
782
1228
|
var useResourceDestroy = function useResourceDestroy(resource) {
|
|
783
1229
|
var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
@@ -818,7 +1264,7 @@ var useResourceItem = function useResourceItem(resource, id, opts) {
|
|
|
818
1264
|
};
|
|
819
1265
|
var useResourceItem$1 = useResourceItem;
|
|
820
1266
|
|
|
821
|
-
var _excluded = ["items"
|
|
1267
|
+
var _excluded = ["items"];
|
|
822
1268
|
var useResourceItems = function useResourceItems(resource) {
|
|
823
1269
|
var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
824
1270
|
var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
@@ -830,7 +1276,7 @@ var useResourceItems = function useResourceItems(resource) {
|
|
|
830
1276
|
id = _ref$id === void 0 ? null : _ref$id;
|
|
831
1277
|
var lastResourceRef = useRef(id);
|
|
832
1278
|
var resourceChanging = lastResourceRef.current !== id;
|
|
833
|
-
var
|
|
1279
|
+
var getPage = useCallback(function () {
|
|
834
1280
|
var requestedPage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
835
1281
|
return api.resources.get(resource, query, requestedPage, count).then(function (response) {
|
|
836
1282
|
var _ref2 = resource || {},
|
|
@@ -844,18 +1290,30 @@ var useResourceItems = function useResourceItems(resource) {
|
|
|
844
1290
|
throw err;
|
|
845
1291
|
});
|
|
846
1292
|
}, [api, resource, query, count]);
|
|
847
|
-
var
|
|
848
|
-
|
|
1293
|
+
var getItems = useCallback(function () {
|
|
1294
|
+
return api.resources.get(resource, query, null, null).then(function (response) {
|
|
1295
|
+
var _ref4 = resource || {},
|
|
1296
|
+
resourceId = _ref4.id;
|
|
1297
|
+
lastResourceRef.current = resourceId;
|
|
1298
|
+
return response;
|
|
1299
|
+
})["catch"](function (err) {
|
|
1300
|
+
var _ref5 = resource || {},
|
|
1301
|
+
resourceId = _ref5.id;
|
|
1302
|
+
lastResourceRef.current = resourceId;
|
|
1303
|
+
throw err;
|
|
1304
|
+
});
|
|
1305
|
+
}, [api, resource, query, count]);
|
|
1306
|
+
var _useItemsStore = useItemsStore$1(id, _objectSpread({
|
|
1307
|
+
getPage: page !== null ? getPage : null,
|
|
849
1308
|
getItems: page === null ? getItems : null,
|
|
850
|
-
|
|
1309
|
+
query: query,
|
|
1310
|
+
page: page,
|
|
1311
|
+
count: count
|
|
851
1312
|
}, opts)),
|
|
852
|
-
items =
|
|
853
|
-
|
|
854
|
-
request = _objectWithoutProperties(_useItems, _excluded);
|
|
855
|
-
var finalItems = page !== null ? pageItems : items;
|
|
1313
|
+
items = _useItemsStore.items,
|
|
1314
|
+
request = _objectWithoutProperties(_useItemsStore, _excluded);
|
|
856
1315
|
return _objectSpread({
|
|
857
|
-
items: resourceChanging ? null :
|
|
858
|
-
allItems: items
|
|
1316
|
+
items: resourceChanging ? null : items
|
|
859
1317
|
}, request);
|
|
860
1318
|
};
|
|
861
1319
|
var useResourceItems$1 = useResourceItems;
|
|
@@ -906,6 +1364,46 @@ var useResourceUpdate = function useResourceUpdate(resource, id) {
|
|
|
906
1364
|
};
|
|
907
1365
|
var useResourceUpdate$1 = useResourceUpdate;
|
|
908
1366
|
|
|
1367
|
+
var QueryContext = /*#__PURE__*/React.createContext(null);
|
|
1368
|
+
var useQueryContext = function useQueryContext() {
|
|
1369
|
+
return useContext(QueryContext);
|
|
1370
|
+
};
|
|
1371
|
+
var propTypes$1 = {
|
|
1372
|
+
config: PropTypes.shape({}),
|
|
1373
|
+
initialKey: PropTypes.arrayOf(PropTypes.string),
|
|
1374
|
+
initialData: PropTypes.oneOfType([PropTypes.shape({}), PropTypes.arrayOf(PropTypes.shape({}))]),
|
|
1375
|
+
children: PropTypes.node.isRequired
|
|
1376
|
+
};
|
|
1377
|
+
var defaultProps$1 = {
|
|
1378
|
+
config: null,
|
|
1379
|
+
initialKey: null,
|
|
1380
|
+
initialData: null
|
|
1381
|
+
};
|
|
1382
|
+
var QueryProvider = function QueryProvider(_ref) {
|
|
1383
|
+
var initialConfig = _ref.config,
|
|
1384
|
+
initialKey = _ref.initialKey,
|
|
1385
|
+
initialData = _ref.initialData,
|
|
1386
|
+
children = _ref.children;
|
|
1387
|
+
var queryClient = useMemo(function () {
|
|
1388
|
+
var client = new QueryClient(_objectSpread({
|
|
1389
|
+
defaultOptions: {
|
|
1390
|
+
queries: {
|
|
1391
|
+
staleTime: Infinity
|
|
1392
|
+
}
|
|
1393
|
+
}
|
|
1394
|
+
}, initialConfig));
|
|
1395
|
+
if (initialKey !== null && initialData !== null) {
|
|
1396
|
+
client.setQueryData(initialKey, initialData);
|
|
1397
|
+
}
|
|
1398
|
+
return client;
|
|
1399
|
+
}, [initialConfig]);
|
|
1400
|
+
return /*#__PURE__*/React.createElement(QueryClientProvider, {
|
|
1401
|
+
client: queryClient
|
|
1402
|
+
}, children);
|
|
1403
|
+
};
|
|
1404
|
+
QueryProvider.propTypes = propTypes$1;
|
|
1405
|
+
QueryProvider.defaultProps = defaultProps$1;
|
|
1406
|
+
|
|
909
1407
|
/* eslint-disable react/jsx-props-no-spreading */
|
|
910
1408
|
var propTypes = {
|
|
911
1409
|
api: PropTypes.instanceOf(Api$1),
|
|
@@ -930,4 +1428,4 @@ DataProvider.propTypes = propTypes;
|
|
|
930
1428
|
DataProvider.defaultProps = defaultProps;
|
|
931
1429
|
var DataProvider$1 = DataProvider;
|
|
932
1430
|
|
|
933
|
-
export { Api$1 as Api, ApiProvider, Base$1 as BaseApi, DataProvider$1 as DataProvider, useApi, useData$1 as useData, useItems$
|
|
1431
|
+
export { Api$1 as Api, ApiProvider, Base$1 as BaseApi, DataProvider$1 as DataProvider, QueryProvider, useApi, useData$1 as useData, useItems$3 as useItems, useItems$1 as useItemsLegacy, useItemsStore$1 as useItemsStore, useQueryContext, useResourceDestroy$1 as useResourceDestroy, useResourceItem$1 as useResourceItem, useResourceItems$1 as useResourceItems, useResourceCreate$1 as useResourceStore, useResourceUpdate$1 as useResourceUpdate };
|