@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.
Files changed (3) hide show
  1. package/es/index.js +518 -20
  2. package/lib/index.js +1073 -571
  3. 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, 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,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] : 10;
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$1 = {
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$1 = {
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$1;
780
- ApiProvider.defaultProps = defaultProps$1;
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", "pageItems"];
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 getItems = useCallback(function () {
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 _useItems = useItems$1(_objectSpread({
848
- getPage: page !== null ? getItems : null,
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
- page: page
1309
+ query: query,
1310
+ page: page,
1311
+ count: count
851
1312
  }, opts)),
852
- items = _useItems.items,
853
- pageItems = _useItems.pageItems,
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 : finalItems,
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$1 as useItems, useResourceDestroy$1 as useResourceDestroy, useResourceItem$1 as useResourceItem, useResourceItems$1 as useResourceItems, useResourceCreate$1 as useResourceStore, useResourceUpdate$1 as useResourceUpdate };
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 };