@panneau/data 3.0.169 → 3.0.173

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 (3) hide show
  1. package/es/index.js +487 -20
  2. package/lib/index.js +1042 -571
  3. package/package.json +4 -2
package/es/index.js CHANGED
@@ -1,17 +1,20 @@
1
1
  import PropTypes from 'prop-types';
2
- import React, { useState, useCallback, useEffect, useRef, useMemo, useContext } from 'react';
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 { getCSRFHeaders, getJSON, postJSON } from '@folklore/fetch';
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 _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
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,193 @@ 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", "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
+ loading = _useQuery.isLoading,
646
+ loaded = _useQuery.isFetched,
647
+ otherProps = _objectWithoutProperties(_useQuery, _excluded2);
648
+ var _ref4 = data || {},
649
+ _ref4$data = _ref4.data,
650
+ items = _ref4$data === void 0 ? [] : _ref4$data,
651
+ _ref4$pagination = _ref4.pagination,
652
+ pagination = _ref4$pagination === void 0 ? null : _ref4$pagination,
653
+ _ref4$metadata = _ref4.metadata,
654
+ metadata = _ref4$metadata === void 0 ? null : _ref4$metadata;
655
+ var _ref5 = pagination || metadata || {},
656
+ _ref5$page = _ref5.page,
657
+ currentPage = _ref5$page === void 0 ? null : _ref5$page,
658
+ _ref5$last_page = _ref5.last_page,
659
+ lastPage = _ref5$last_page === void 0 ? 0 : _ref5$last_page,
660
+ _ref5$total = _ref5.total,
661
+ total = _ref5$total === void 0 ? null : _ref5$total;
662
+ var loadNextPage = useCallback(function () {
663
+ if (onQueryChange !== null && paginated && page !== null && page < lastPage) {
664
+ onQueryChange(_objectSpread(_objectSpread({}, query), {}, {
665
+ page: page + 1
666
+ }));
667
+ }
668
+ }, [paginated, pagination, page]);
669
+ var loadPage = useCallback(function (newPage) {
670
+ if (onQueryChange !== null && newPage !== null) {
671
+ onQueryChange(_objectSpread(_objectSpread({}, query), {}, {
672
+ page: newPage
673
+ }));
674
+ }
675
+ }, [query, onQueryChange]);
676
+
677
+ // Keep a list of updated items
678
+ var _useState = useState([]),
679
+ _useState2 = _slicedToArray(_useState, 2),
680
+ updatedItems = _useState2[0],
681
+ setUpdatedItems = _useState2[1];
682
+ var updateItem = useCallback(function (item) {
683
+ var _ref6 = item || {},
684
+ _ref6$id = _ref6.id,
685
+ itemId = _ref6$id === void 0 ? null : _ref6$id;
686
+ if (itemId !== null) {
687
+ setUpdatedItems([].concat(_toConsumableArray((items || []).filter(function () {
688
+ var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
689
+ _ref7$id = _ref7.id,
690
+ id = _ref7$id === void 0 ? null : _ref7$id;
691
+ return id !== itemId;
692
+ })), [item]));
693
+ }
694
+ }, [items, updatedItems, setUpdatedItems]);
695
+ var replaceUpdatedItems = useCallback(function (currentItems) {
696
+ if (currentItems === null || updatedItems === null || updatedItems.length === 0) {
697
+ return currentItems;
698
+ }
699
+ return (currentItems || []).map(function (item) {
700
+ var _ref8 = item || {},
701
+ _ref8$id = _ref8.id,
702
+ itemId = _ref8$id === void 0 ? null : _ref8$id;
703
+ var updated = (updatedItems || []).find(function () {
704
+ var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
705
+ _ref9$id = _ref9.id,
706
+ id = _ref9$id === void 0 ? null : _ref9$id;
707
+ return id === itemId;
708
+ }) || null;
709
+ if (updated !== null) {
710
+ return updated;
711
+ }
712
+ return item;
713
+ }, []);
714
+ }, [updatedItems]);
715
+ var partialItems = useMemo(function () {
716
+ if (data === null) {
717
+ return data;
718
+ }
719
+ if (paginated) {
720
+ if (getPageFromResponse !== null) {
721
+ return getPageFromResponse(items);
722
+ }
723
+ return items;
724
+ }
725
+ if (getItemsFromResponse !== null) {
726
+ return getItemsFromResponse(data);
727
+ }
728
+ return data;
729
+ }, [items, data, paginated, getPageFromResponse, getItemsFromResponse, updatedItems]);
730
+ var finalItems = replaceUpdatedItems(partialItems);
731
+
732
+ // Keep a list of pages, useEffect wont work here because delayed
733
+ var pages = useRef(null);
734
+ if (loaded && page !== null && data !== null) {
735
+ pages.current = _objectSpread(_objectSpread({}, pages.current), {}, _defineProperty({}, page, data));
736
+ }
737
+ var allItems = pages.current !== null ? replaceUpdatedItems(Object.keys(pages.current).flatMap(function (k) {
738
+ var _pages$current$k;
739
+ return (_pages$current$k = pages.current[k]) === null || _pages$current$k === void 0 ? void 0 : _pages$current$k.data;
740
+ })) : finalItems;
741
+ return _objectSpread(_objectSpread({}, otherProps), {}, {
742
+ items: finalItems,
743
+ pages: pages.current,
744
+ allItems: allItems,
745
+ loading: loading,
746
+ loaded: loaded,
747
+ reload: reload,
748
+ loadPage: loadPage,
749
+ loadNextPage: loadNextPage,
750
+ updateItem: updateItem,
751
+ pagination: paginated ? {
752
+ page: currentPage,
753
+ lastPage: lastPage,
754
+ total: total
755
+ } : null
756
+ });
757
+ };
758
+ var useItemsStore$1 = useItemsStore;
759
+
345
760
  var AccountApi = /*#__PURE__*/function () {
346
761
  function AccountApi(api, opts) {
347
762
  _classCallCheck(this, AccountApi);
@@ -681,7 +1096,7 @@ var ResourcesApi = /*#__PURE__*/function () {
681
1096
  value: function get(resource) {
682
1097
  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
683
1098
  var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
684
- var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;
1099
+ var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 12;
685
1100
  var finalQuery = _objectSpread({}, query);
686
1101
  if (page !== null) {
687
1102
  finalQuery.page = page;
@@ -747,13 +1162,13 @@ var ApiContext = /*#__PURE__*/React.createContext(null);
747
1162
  var useApi = function useApi() {
748
1163
  return useContext(ApiContext);
749
1164
  };
750
- var propTypes$1 = {
1165
+ var propTypes$2 = {
751
1166
  api: PropTypes.instanceOf(Api$1),
752
1167
  baseUrl: PropTypes.string,
753
1168
  onUnauthorized: PropTypes.func,
754
1169
  children: PropTypes.node.isRequired
755
1170
  };
756
- var defaultProps$1 = {
1171
+ var defaultProps$2 = {
757
1172
  api: null,
758
1173
  onUnauthorized: null,
759
1174
  baseUrl: undefined
@@ -776,8 +1191,8 @@ var ApiProvider = function ApiProvider(_ref) {
776
1191
  value: api
777
1192
  }, children);
778
1193
  };
779
- ApiProvider.propTypes = propTypes$1;
780
- ApiProvider.defaultProps = defaultProps$1;
1194
+ ApiProvider.propTypes = propTypes$2;
1195
+ ApiProvider.defaultProps = defaultProps$2;
781
1196
 
782
1197
  var useResourceDestroy = function useResourceDestroy(resource) {
783
1198
  var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
@@ -818,7 +1233,7 @@ var useResourceItem = function useResourceItem(resource, id, opts) {
818
1233
  };
819
1234
  var useResourceItem$1 = useResourceItem;
820
1235
 
821
- var _excluded = ["items", "pageItems"];
1236
+ var _excluded = ["items"];
822
1237
  var useResourceItems = function useResourceItems(resource) {
823
1238
  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
824
1239
  var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
@@ -830,7 +1245,7 @@ var useResourceItems = function useResourceItems(resource) {
830
1245
  id = _ref$id === void 0 ? null : _ref$id;
831
1246
  var lastResourceRef = useRef(id);
832
1247
  var resourceChanging = lastResourceRef.current !== id;
833
- var getItems = useCallback(function () {
1248
+ var getPage = useCallback(function () {
834
1249
  var requestedPage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
835
1250
  return api.resources.get(resource, query, requestedPage, count).then(function (response) {
836
1251
  var _ref2 = resource || {},
@@ -844,18 +1259,30 @@ var useResourceItems = function useResourceItems(resource) {
844
1259
  throw err;
845
1260
  });
846
1261
  }, [api, resource, query, count]);
847
- var _useItems = useItems$1(_objectSpread({
848
- getPage: page !== null ? getItems : null,
1262
+ var getItems = useCallback(function () {
1263
+ return api.resources.get(resource, query, null, null).then(function (response) {
1264
+ var _ref4 = resource || {},
1265
+ resourceId = _ref4.id;
1266
+ lastResourceRef.current = resourceId;
1267
+ return response;
1268
+ })["catch"](function (err) {
1269
+ var _ref5 = resource || {},
1270
+ resourceId = _ref5.id;
1271
+ lastResourceRef.current = resourceId;
1272
+ throw err;
1273
+ });
1274
+ }, [api, resource, query, count]);
1275
+ var _useItemsStore = useItemsStore$1(id, _objectSpread({
1276
+ getPage: page !== null ? getPage : null,
849
1277
  getItems: page === null ? getItems : null,
850
- page: page
1278
+ query: query,
1279
+ page: page,
1280
+ count: count
851
1281
  }, opts)),
852
- items = _useItems.items,
853
- pageItems = _useItems.pageItems,
854
- request = _objectWithoutProperties(_useItems, _excluded);
855
- var finalItems = page !== null ? pageItems : items;
1282
+ items = _useItemsStore.items,
1283
+ request = _objectWithoutProperties(_useItemsStore, _excluded);
856
1284
  return _objectSpread({
857
- items: resourceChanging ? null : finalItems,
858
- allItems: items
1285
+ items: resourceChanging ? null : items
859
1286
  }, request);
860
1287
  };
861
1288
  var useResourceItems$1 = useResourceItems;
@@ -906,6 +1333,46 @@ var useResourceUpdate = function useResourceUpdate(resource, id) {
906
1333
  };
907
1334
  var useResourceUpdate$1 = useResourceUpdate;
908
1335
 
1336
+ var QueryContext = /*#__PURE__*/React.createContext(null);
1337
+ var useQueryContext = function useQueryContext() {
1338
+ return useContext(QueryContext);
1339
+ };
1340
+ var propTypes$1 = {
1341
+ config: PropTypes.shape({}),
1342
+ children: PropTypes.node.isRequired
1343
+ };
1344
+ var defaultProps$1 = {
1345
+ config: null
1346
+ };
1347
+ var QueryProvider = function QueryProvider(_ref) {
1348
+ var initialConfig = _ref.config,
1349
+ children = _ref.children;
1350
+ var queryClient = useMemo(function () {
1351
+ var client = new QueryClient(_objectSpread({
1352
+ defaultOptions: {
1353
+ queries: {
1354
+ staleTime: Infinity
1355
+ }
1356
+ }
1357
+ }, initialConfig));
1358
+ // if (page !== null) {
1359
+ // const query =
1360
+ // window && !isEmpty(window.location.search)
1361
+ // ? queryString.parse(window.location.search, {
1362
+ // arrayFormat: 'bracket',
1363
+ // })
1364
+ // : null;
1365
+ // client.setQueryData(['pages', page.url, query], page);
1366
+ // }
1367
+ return client;
1368
+ }, [initialConfig]);
1369
+ return /*#__PURE__*/React.createElement(QueryClientProvider, {
1370
+ client: queryClient
1371
+ }, children);
1372
+ };
1373
+ QueryProvider.propTypes = propTypes$1;
1374
+ QueryProvider.defaultProps = defaultProps$1;
1375
+
909
1376
  /* eslint-disable react/jsx-props-no-spreading */
910
1377
  var propTypes = {
911
1378
  api: PropTypes.instanceOf(Api$1),
@@ -930,4 +1397,4 @@ DataProvider.propTypes = propTypes;
930
1397
  DataProvider.defaultProps = defaultProps;
931
1398
  var DataProvider$1 = DataProvider;
932
1399
 
933
- export { Api$1 as Api, ApiProvider, Base$1 as BaseApi, DataProvider$1 as DataProvider, useApi, useData$1 as useData, useItems$1 as useItems, useResourceDestroy$1 as useResourceDestroy, useResourceItem$1 as useResourceItem, useResourceItems$1 as useResourceItems, useResourceCreate$1 as useResourceStore, useResourceUpdate$1 as useResourceUpdate };
1400
+ 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 };