@panneau/data 1.0.0-alpha.97 → 1.0.3-alpha.1

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 +71 -14
  2. package/lib/index.js +140 -83
  3. package/package.json +9 -9
package/es/index.js CHANGED
@@ -3,13 +3,13 @@ import React, { useState, useCallback, useEffect, useRef, useMemo, useContext }
3
3
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
4
4
  import _objectSpread from '@babel/runtime/helpers/objectSpread2';
5
5
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
6
- import PropTypes from 'prop-types';
7
6
  import { useUrlGenerator } from '@panneau/core/contexts';
7
+ import PropTypes from 'prop-types';
8
+ import _createClass from '@babel/runtime/helpers/createClass';
8
9
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
9
10
  import _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';
10
11
  import _inherits from '@babel/runtime/helpers/inherits';
11
12
  import _createSuper from '@babel/runtime/helpers/createSuper';
12
- import _createClass from '@babel/runtime/helpers/createClass';
13
13
  import { getJSON, getCSRFHeaders, postJSON } from '@folklore/fetch';
14
14
  import { generatePath } from 'react-router';
15
15
  import { stringify } from 'query-string';
@@ -328,13 +328,16 @@ var Base = /*#__PURE__*/function () {
328
328
  routes: {},
329
329
  generateUrl: null
330
330
  }, opts), {}, {
331
- baseUrl: opts.baseUrl
331
+ baseUrl: opts.baseUrl,
332
+ onUnauthorized: opts.onUnauthorized || null
332
333
  });
333
334
  }
334
335
 
335
336
  _createClass(Base, [{
336
337
  key: "requestGet",
337
338
  value: function requestGet(path) {
339
+ var _this = this;
340
+
338
341
  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
339
342
  var queryString = query !== null ? stringify(query, {
340
343
  arrayFormat: 'bracket'
@@ -342,41 +345,59 @@ var Base = /*#__PURE__*/function () {
342
345
  return getJSON("".concat(this.getFullUrl(path)).concat(queryString !== null && queryString.length > 0 ? "?".concat(queryString) : ''), {
343
346
  credentials: 'include',
344
347
  headers: getCSRFHeaders()
348
+ })["catch"](function (error) {
349
+ return _this.onError(error);
345
350
  });
346
351
  }
347
352
  }, {
348
353
  key: "requestPost",
349
354
  value: function requestPost(path, data) {
355
+ var _this2 = this;
356
+
350
357
  return postJSON(this.getFullUrl(path), data, {
351
358
  credentials: 'include',
352
359
  headers: getCSRFHeaders()
360
+ })["catch"](function (error) {
361
+ return _this2.onError(error);
353
362
  });
354
363
  }
355
364
  }, {
356
365
  key: "requestPut",
357
366
  value: function requestPut(path, data) {
367
+ var _this3 = this;
368
+
358
369
  return postJSON(this.getFullUrl(path), _objectSpread({
359
370
  _method: 'PUT'
360
371
  }, data), {
361
372
  credentials: 'include',
362
373
  headers: getCSRFHeaders()
374
+ })["catch"](function (error) {
375
+ return _this3.onError(error);
363
376
  });
364
377
  }
365
378
  }, {
366
379
  key: "requestPatch",
367
380
  value: function requestPatch(path, data) {
381
+ var _this4 = this;
382
+
368
383
  return postJSON(this.getFullUrl(path), _objectSpread({
369
384
  _method: 'PATCH'
370
385
  }, data), {
371
386
  credentials: 'include',
372
387
  headers: getCSRFHeaders()
388
+ })["catch"](function (error) {
389
+ return _this4.onError(error);
373
390
  });
374
391
  }
375
392
  }, {
376
393
  key: "requestDelete",
377
394
  value: function requestDelete(path) {
395
+ var _this5 = this;
396
+
378
397
  return this.requestPost(path, {
379
398
  _method: 'DELETE'
399
+ })["catch"](function (error) {
400
+ return _this5.onError(error);
380
401
  });
381
402
  }
382
403
  }, {
@@ -400,6 +421,23 @@ var Base = /*#__PURE__*/function () {
400
421
  baseUrl = _this$options$baseUrl === void 0 ? null : _this$options$baseUrl;
401
422
  return baseUrl !== null ? "".concat(baseUrl.replace(/\/$/, ''), "/").concat(path.replace(/^\//, '')) : path;
402
423
  }
424
+ }, {
425
+ key: "onError",
426
+ value: function onError(err) {
427
+ var onUnauthorized = this.options.onUnauthorized;
428
+
429
+ var _ref = err || {},
430
+ _ref$status = _ref.status,
431
+ status = _ref$status === void 0 ? null : _ref$status;
432
+
433
+ var statusCode = parseInt(status, 10); // If status is refused and callback exists
434
+
435
+ if ((statusCode === 401 || statusCode === 419) && onUnauthorized !== null) {
436
+ return onUnauthorized();
437
+ }
438
+
439
+ throw err;
440
+ }
403
441
  }]);
404
442
 
405
443
  return Base;
@@ -448,10 +486,15 @@ var AuthApi = /*#__PURE__*/function () {
448
486
  }, {
449
487
  key: "logout",
450
488
  value: function logout() {
451
- var withCredentials = this.options.withCredentials;
452
- return this.api.requestPost(this.api.route('auth.logout'), null, {
453
- withSession: !withCredentials,
454
- withCredentials: withCredentials
489
+ var url = this.api.getFullUrl(this.api.route('auth.logout'));
490
+ return fetch(url, {
491
+ method: 'POST',
492
+ headers: _objectSpread({}, getCSRFHeaders()),
493
+ credentials: 'include'
494
+ })["catch"](function (err) {
495
+ console.log('logout err', err); // eslint-disable-line
496
+
497
+ throw err;
455
498
  });
456
499
  }
457
500
  }, {
@@ -718,7 +761,7 @@ var Api = /*#__PURE__*/function (_Base) {
718
761
  return _this;
719
762
  }
720
763
 
721
- return Api;
764
+ return _createClass(Api);
722
765
  }(Base);
723
766
 
724
767
  /* eslint-disable react/jsx-props-no-spreading */
@@ -729,22 +772,26 @@ var useApi = function useApi() {
729
772
  var propTypes$1 = {
730
773
  api: PropTypes.instanceOf(Api),
731
774
  baseUrl: PropTypes.string,
775
+ onUnauthorized: PropTypes.func,
732
776
  children: PropTypes.node.isRequired
733
777
  };
734
778
  var defaultProps$1 = {
735
779
  api: null,
780
+ onUnauthorized: null,
736
781
  baseUrl: undefined
737
782
  };
738
783
  var ApiProvider = function ApiProvider(_ref) {
739
784
  var initialApi = _ref.api,
740
785
  baseUrl = _ref.baseUrl,
786
+ onUnauthorized = _ref.onUnauthorized,
741
787
  children = _ref.children;
742
788
  var generateUrl = useUrlGenerator();
743
789
  var previousApi = useApi();
744
790
  var api = useMemo(function () {
745
791
  return initialApi || previousApi || new Api({
746
792
  baseUrl: baseUrl,
747
- generateUrl: generateUrl
793
+ generateUrl: generateUrl,
794
+ onUnauthorized: onUnauthorized
748
795
  });
749
796
  }, [previousApi, initialApi, baseUrl]);
750
797
  return /*#__PURE__*/React.createElement(ApiContext.Provider, {
@@ -754,6 +801,8 @@ var ApiProvider = function ApiProvider(_ref) {
754
801
  ApiProvider.propTypes = propTypes$1;
755
802
  ApiProvider.defaultProps = defaultProps$1;
756
803
 
804
+ var _excluded$4 = ["items", "pageItems"];
805
+
757
806
  var useMedias = function useMedias() {
758
807
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
759
808
  var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
@@ -772,7 +821,7 @@ var useMedias = function useMedias() {
772
821
  }, opts)),
773
822
  items = _useItems.items,
774
823
  pageItems = _useItems.pageItems,
775
- request = _objectWithoutProperties(_useItems, ["items", "pageItems"]); // console.log('medias', items);
824
+ request = _objectWithoutProperties(_useItems, _excluded$4); // console.log('medias', items);
776
825
 
777
826
 
778
827
  return _objectSpread({
@@ -811,6 +860,8 @@ var useMediasRecent = function useMediasRecent(opts) {
811
860
  };
812
861
  };
813
862
 
863
+ var _excluded$3 = ["data"];
864
+
814
865
  var useMedia = function useMedia(id, opts) {
815
866
  var api = useApi();
816
867
  var loader = useCallback(function () {
@@ -819,7 +870,7 @@ var useMedia = function useMedia(id, opts) {
819
870
 
820
871
  var _useData = useData(loader, opts),
821
872
  data = _useData.data,
822
- request = _objectWithoutProperties(_useData, ["data"]);
873
+ request = _objectWithoutProperties(_useData, _excluded$3);
823
874
 
824
875
  return _objectSpread({
825
876
  story: data
@@ -846,6 +897,8 @@ var useMediaCreate = function useMediaCreate() {
846
897
  };
847
898
  };
848
899
 
900
+ var _excluded$2 = ["items", "pageItems"];
901
+
849
902
  var useMediaTags = function useMediaTags() {
850
903
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
851
904
  var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
@@ -860,7 +913,7 @@ var useMediaTags = function useMediaTags() {
860
913
  }, opts)),
861
914
  items = _useItems.items;
862
915
  _useItems.pageItems;
863
- var request = _objectWithoutProperties(_useItems, ["items", "pageItems"]);
916
+ var request = _objectWithoutProperties(_useItems, _excluded$2);
864
917
 
865
918
  return _objectSpread({
866
919
  tags: items
@@ -912,6 +965,8 @@ var useResourceDestroy = function useResourceDestroy(resource) {
912
965
  };
913
966
  };
914
967
 
968
+ var _excluded$1 = ["data"];
969
+
915
970
  var useResourceItem = function useResourceItem(resource, id, opts) {
916
971
  var api = useApi();
917
972
  var loader = useCallback(function () {
@@ -920,13 +975,15 @@ var useResourceItem = function useResourceItem(resource, id, opts) {
920
975
 
921
976
  var _useData = useData(loader, opts),
922
977
  data = _useData.data,
923
- request = _objectWithoutProperties(_useData, ["data"]);
978
+ request = _objectWithoutProperties(_useData, _excluded$1);
924
979
 
925
980
  return _objectSpread({
926
981
  item: data
927
982
  }, request);
928
983
  };
929
984
 
985
+ var _excluded = ["items", "pageItems"];
986
+
930
987
  var useResourceItems = function useResourceItems(resource) {
931
988
  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
932
989
  var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
@@ -945,7 +1002,7 @@ var useResourceItems = function useResourceItems(resource) {
945
1002
  }, opts)),
946
1003
  items = _useItems.items,
947
1004
  pageItems = _useItems.pageItems,
948
- request = _objectWithoutProperties(_useItems, ["items", "pageItems"]);
1005
+ request = _objectWithoutProperties(_useItems, _excluded);
949
1006
 
950
1007
  return _objectSpread({
951
1008
  items: page !== null ? pageItems : items,
package/lib/index.js CHANGED
@@ -7,14 +7,14 @@ var React = require('react');
7
7
  var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
8
8
  var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
9
9
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
10
- var PropTypes = require('prop-types');
11
10
  var contexts = require('@panneau/core/contexts');
11
+ var PropTypes = require('prop-types');
12
+ var _createClass = require('@babel/runtime/helpers/createClass');
12
13
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
13
14
  var _assertThisInitialized = require('@babel/runtime/helpers/assertThisInitialized');
14
15
  var _inherits = require('@babel/runtime/helpers/inherits');
15
16
  var _createSuper = require('@babel/runtime/helpers/createSuper');
16
- var _createClass = require('@babel/runtime/helpers/createClass');
17
- var fetch = require('@folklore/fetch');
17
+ var fetch$1 = require('@folklore/fetch');
18
18
  var reactRouter = require('react-router');
19
19
  var queryString = require('query-string');
20
20
 
@@ -26,11 +26,11 @@ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumab
26
26
  var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
27
27
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
28
28
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
29
+ var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
29
30
  var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
30
31
  var _assertThisInitialized__default = /*#__PURE__*/_interopDefaultLegacy(_assertThisInitialized);
31
32
  var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
32
33
  var _createSuper__default = /*#__PURE__*/_interopDefaultLegacy(_createSuper);
33
- var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
34
34
 
35
35
  var useData = function useData(loadData) {
36
36
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
@@ -40,17 +40,17 @@ var useData = function useData(loadData) {
40
40
  autoload = _ref$autoload === void 0 ? true : _ref$autoload;
41
41
 
42
42
  var _useState = React.useState(false),
43
- _useState2 = _slicedToArray__default['default'](_useState, 2),
43
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
44
44
  loading = _useState2[0],
45
45
  setLoading = _useState2[1];
46
46
 
47
47
  var _useState3 = React.useState(false),
48
- _useState4 = _slicedToArray__default['default'](_useState3, 2),
48
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
49
49
  error = _useState4[0],
50
50
  setError = _useState4[1];
51
51
 
52
52
  var _useState5 = React.useState(initialData),
53
- _useState6 = _slicedToArray__default['default'](_useState5, 2),
53
+ _useState6 = _slicedToArray__default["default"](_useState5, 2),
54
54
  data = _useState6[0],
55
55
  setData = _useState6[1];
56
56
 
@@ -158,7 +158,7 @@ var useItems = function useItems(_ref) {
158
158
  }, [initialPages, providedItems]);
159
159
 
160
160
  var _useState = React.useState(initialState),
161
- _useState2 = _slicedToArray__default['default'](_useState, 2),
161
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
162
162
  state = _useState2[0],
163
163
  setState = _useState2[1];
164
164
 
@@ -174,7 +174,7 @@ var useItems = function useItems(_ref) {
174
174
  }, []) : stateItems) || null;
175
175
 
176
176
  var updateState = function updateState(update) {
177
- return setState(_objectSpread__default['default'](_objectSpread__default['default']({}, state), update));
177
+ return setState(_objectSpread__default["default"](_objectSpread__default["default"]({}, state), update));
178
178
  };
179
179
 
180
180
  var updateFromResponse = function updateFromResponse(response) {
@@ -191,7 +191,7 @@ var useItems = function useItems(_ref) {
191
191
 
192
192
  if (isPaginated) {
193
193
  var newPage = getPageFromResponse(response);
194
- var newPages = (reset ? [newPage] : [].concat(_toConsumableArray__default['default']((pages || []).filter(function (it) {
194
+ var newPages = (reset ? [newPage] : [].concat(_toConsumableArray__default["default"]((pages || []).filter(function (it) {
195
195
  return it.page !== newPage.page;
196
196
  })), [newPage])).sort(function (a, b) {
197
197
  if (a === b) {
@@ -210,7 +210,7 @@ var useItems = function useItems(_ref) {
210
210
  return newPage;
211
211
  }
212
212
 
213
- var newItems = _toConsumableArray__default['default'](getItemsFromResponse(response));
213
+ var newItems = _toConsumableArray__default["default"](getItemsFromResponse(response));
214
214
 
215
215
  updateState({
216
216
  loaded: true,
@@ -222,7 +222,7 @@ var useItems = function useItems(_ref) {
222
222
  };
223
223
 
224
224
  var getNextPage = function getNextPage() {
225
- var allPages = lastPage !== -1 ? Array.call.apply(Array, [null].concat(_toConsumableArray__default['default'](Array(lastPage)))).map(function (it, index) {
225
+ var allPages = lastPage !== -1 ? Array.call.apply(Array, [null].concat(_toConsumableArray__default["default"](Array(lastPage)))).map(function (it, index) {
226
226
  return index + 1;
227
227
  }) : [];
228
228
  var remainingPages = allPages.filter(function (pageNumber) {
@@ -340,61 +340,82 @@ var Base = /*#__PURE__*/function () {
340
340
  function Base() {
341
341
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
342
342
 
343
- _classCallCheck__default['default'](this, Base);
343
+ _classCallCheck__default["default"](this, Base);
344
344
 
345
- this.options = _objectSpread__default['default'](_objectSpread__default['default']({
345
+ this.options = _objectSpread__default["default"](_objectSpread__default["default"]({
346
346
  routes: {},
347
347
  generateUrl: null
348
348
  }, opts), {}, {
349
- baseUrl: opts.baseUrl
349
+ baseUrl: opts.baseUrl,
350
+ onUnauthorized: opts.onUnauthorized || null
350
351
  });
351
352
  }
352
353
 
353
- _createClass__default['default'](Base, [{
354
+ _createClass__default["default"](Base, [{
354
355
  key: "requestGet",
355
356
  value: function requestGet(path) {
357
+ var _this = this;
358
+
356
359
  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
357
360
  var queryString$1 = query !== null ? queryString.stringify(query, {
358
361
  arrayFormat: 'bracket'
359
362
  }) : null;
360
- return fetch.getJSON("".concat(this.getFullUrl(path)).concat(queryString$1 !== null && queryString$1.length > 0 ? "?".concat(queryString$1) : ''), {
363
+ return fetch$1.getJSON("".concat(this.getFullUrl(path)).concat(queryString$1 !== null && queryString$1.length > 0 ? "?".concat(queryString$1) : ''), {
361
364
  credentials: 'include',
362
- headers: fetch.getCSRFHeaders()
365
+ headers: fetch$1.getCSRFHeaders()
366
+ })["catch"](function (error) {
367
+ return _this.onError(error);
363
368
  });
364
369
  }
365
370
  }, {
366
371
  key: "requestPost",
367
372
  value: function requestPost(path, data) {
368
- return fetch.postJSON(this.getFullUrl(path), data, {
373
+ var _this2 = this;
374
+
375
+ return fetch$1.postJSON(this.getFullUrl(path), data, {
369
376
  credentials: 'include',
370
- headers: fetch.getCSRFHeaders()
377
+ headers: fetch$1.getCSRFHeaders()
378
+ })["catch"](function (error) {
379
+ return _this2.onError(error);
371
380
  });
372
381
  }
373
382
  }, {
374
383
  key: "requestPut",
375
384
  value: function requestPut(path, data) {
376
- return fetch.postJSON(this.getFullUrl(path), _objectSpread__default['default']({
385
+ var _this3 = this;
386
+
387
+ return fetch$1.postJSON(this.getFullUrl(path), _objectSpread__default["default"]({
377
388
  _method: 'PUT'
378
389
  }, data), {
379
390
  credentials: 'include',
380
- headers: fetch.getCSRFHeaders()
391
+ headers: fetch$1.getCSRFHeaders()
392
+ })["catch"](function (error) {
393
+ return _this3.onError(error);
381
394
  });
382
395
  }
383
396
  }, {
384
397
  key: "requestPatch",
385
398
  value: function requestPatch(path, data) {
386
- return fetch.postJSON(this.getFullUrl(path), _objectSpread__default['default']({
399
+ var _this4 = this;
400
+
401
+ return fetch$1.postJSON(this.getFullUrl(path), _objectSpread__default["default"]({
387
402
  _method: 'PATCH'
388
403
  }, data), {
389
404
  credentials: 'include',
390
- headers: fetch.getCSRFHeaders()
405
+ headers: fetch$1.getCSRFHeaders()
406
+ })["catch"](function (error) {
407
+ return _this4.onError(error);
391
408
  });
392
409
  }
393
410
  }, {
394
411
  key: "requestDelete",
395
412
  value: function requestDelete(path) {
413
+ var _this5 = this;
414
+
396
415
  return this.requestPost(path, {
397
416
  _method: 'DELETE'
417
+ })["catch"](function (error) {
418
+ return _this5.onError(error);
398
419
  });
399
420
  }
400
421
  }, {
@@ -418,6 +439,23 @@ var Base = /*#__PURE__*/function () {
418
439
  baseUrl = _this$options$baseUrl === void 0 ? null : _this$options$baseUrl;
419
440
  return baseUrl !== null ? "".concat(baseUrl.replace(/\/$/, ''), "/").concat(path.replace(/^\//, '')) : path;
420
441
  }
442
+ }, {
443
+ key: "onError",
444
+ value: function onError(err) {
445
+ var onUnauthorized = this.options.onUnauthorized;
446
+
447
+ var _ref = err || {},
448
+ _ref$status = _ref.status,
449
+ status = _ref$status === void 0 ? null : _ref$status;
450
+
451
+ var statusCode = parseInt(status, 10); // If status is refused and callback exists
452
+
453
+ if ((statusCode === 401 || statusCode === 419) && onUnauthorized !== null) {
454
+ return onUnauthorized();
455
+ }
456
+
457
+ throw err;
458
+ }
421
459
  }]);
422
460
 
423
461
  return Base;
@@ -425,15 +463,15 @@ var Base = /*#__PURE__*/function () {
425
463
 
426
464
  var AuthApi = /*#__PURE__*/function () {
427
465
  function AuthApi(api, opts) {
428
- _classCallCheck__default['default'](this, AuthApi);
466
+ _classCallCheck__default["default"](this, AuthApi);
429
467
 
430
468
  this.api = api;
431
- this.options = _objectSpread__default['default']({
469
+ this.options = _objectSpread__default["default"]({
432
470
  withCredentials: true
433
471
  }, opts);
434
472
  }
435
473
 
436
- _createClass__default['default'](AuthApi, [{
474
+ _createClass__default["default"](AuthApi, [{
437
475
  key: "check",
438
476
  value: function check() {
439
477
  var withCredentials = this.options.withCredentials;
@@ -466,10 +504,15 @@ var AuthApi = /*#__PURE__*/function () {
466
504
  }, {
467
505
  key: "logout",
468
506
  value: function logout() {
469
- var withCredentials = this.options.withCredentials;
470
- return this.api.requestPost(this.api.route('auth.logout'), null, {
471
- withSession: !withCredentials,
472
- withCredentials: withCredentials
507
+ var url = this.api.getFullUrl(this.api.route('auth.logout'));
508
+ return fetch(url, {
509
+ method: 'POST',
510
+ headers: _objectSpread__default["default"]({}, fetch$1.getCSRFHeaders()),
511
+ credentials: 'include'
512
+ })["catch"](function (err) {
513
+ console.log('logout err', err); // eslint-disable-line
514
+
515
+ throw err;
473
516
  });
474
517
  }
475
518
  }, {
@@ -499,15 +542,15 @@ var AuthApi = /*#__PURE__*/function () {
499
542
 
500
543
  var AccountApi = /*#__PURE__*/function () {
501
544
  function AccountApi(api, opts) {
502
- _classCallCheck__default['default'](this, AccountApi);
545
+ _classCallCheck__default["default"](this, AccountApi);
503
546
 
504
547
  this.api = api;
505
- this.options = _objectSpread__default['default']({
548
+ this.options = _objectSpread__default["default"]({
506
549
  withCredentials: false
507
550
  }, opts);
508
551
  }
509
552
 
510
- _createClass__default['default'](AccountApi, [{
553
+ _createClass__default["default"](AccountApi, [{
511
554
  key: "update",
512
555
  value: function update(data) {
513
556
  var withCredentials = this.options.withCredentials;
@@ -549,17 +592,17 @@ var AccountApi = /*#__PURE__*/function () {
549
592
  }();
550
593
 
551
594
  var MediasApi = /*#__PURE__*/function (_Base) {
552
- _inherits__default['default'](MediasApi, _Base);
595
+ _inherits__default["default"](MediasApi, _Base);
553
596
 
554
- var _super = _createSuper__default['default'](MediasApi);
597
+ var _super = _createSuper__default["default"](MediasApi);
555
598
 
556
599
  function MediasApi() {
557
600
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
558
601
 
559
- _classCallCheck__default['default'](this, MediasApi);
602
+ _classCallCheck__default["default"](this, MediasApi);
560
603
 
561
- return _super.call(this, _objectSpread__default['default'](_objectSpread__default['default']({}, opts), {}, {
562
- routes: _objectSpread__default['default']({
604
+ return _super.call(this, _objectSpread__default["default"](_objectSpread__default["default"]({}, opts), {}, {
605
+ routes: _objectSpread__default["default"]({
563
606
  index: 'medias',
564
607
  tags: 'medias/tags',
565
608
  show: 'medias/:media',
@@ -570,7 +613,7 @@ var MediasApi = /*#__PURE__*/function (_Base) {
570
613
  }));
571
614
  }
572
615
 
573
- _createClass__default['default'](MediasApi, [{
616
+ _createClass__default["default"](MediasApi, [{
574
617
  key: "find",
575
618
  value: function find(id) {
576
619
  return this.requestGet(this.route('show', {
@@ -584,7 +627,7 @@ var MediasApi = /*#__PURE__*/function (_Base) {
584
627
  var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
585
628
  var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
586
629
 
587
- var finalQuery = _objectSpread__default['default']({}, query);
630
+ var finalQuery = _objectSpread__default["default"]({}, query);
588
631
 
589
632
  if (page !== null) {
590
633
  finalQuery.page = page;
@@ -602,7 +645,7 @@ var MediasApi = /*#__PURE__*/function (_Base) {
602
645
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
603
646
  var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
604
647
 
605
- var finalQuery = _objectSpread__default['default']({}, query);
648
+ var finalQuery = _objectSpread__default["default"]({}, query);
606
649
 
607
650
  if (count !== null) {
608
651
  finalQuery.count = count;
@@ -636,19 +679,19 @@ var MediasApi = /*#__PURE__*/function (_Base) {
636
679
 
637
680
  var ResourcesApi = /*#__PURE__*/function () {
638
681
  function ResourcesApi(api) {
639
- _classCallCheck__default['default'](this, ResourcesApi);
682
+ _classCallCheck__default["default"](this, ResourcesApi);
640
683
 
641
684
  this.api = api;
642
685
  }
643
686
 
644
- _createClass__default['default'](ResourcesApi, [{
687
+ _createClass__default["default"](ResourcesApi, [{
645
688
  key: "resourceRoute",
646
689
  value: function resourceRoute(_ref, route, params) {
647
690
  var id = _ref.id,
648
691
  _ref$has_routes = _ref.has_routes,
649
692
  hasRoutes = _ref$has_routes === void 0 ? false : _ref$has_routes;
650
693
  var routePrefix = hasRoutes ? "resources.".concat(id) : 'resources';
651
- return this.api.route("".concat(routePrefix, ".").concat(route), hasRoutes ? params : _objectSpread__default['default']({
694
+ return this.api.route("".concat(routePrefix, ".").concat(route), hasRoutes ? params : _objectSpread__default["default"]({
652
695
  resource: id
653
696
  }, params));
654
697
  }
@@ -668,7 +711,7 @@ var ResourcesApi = /*#__PURE__*/function () {
668
711
  var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
669
712
  var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;
670
713
 
671
- var finalQuery = _objectSpread__default['default']({}, query);
714
+ var finalQuery = _objectSpread__default["default"]({}, query);
672
715
 
673
716
  if (page !== null) {
674
717
  finalQuery.page = page;
@@ -713,65 +756,71 @@ var ResourcesApi = /*#__PURE__*/function () {
713
756
  }();
714
757
 
715
758
  var Api = /*#__PURE__*/function (_Base) {
716
- _inherits__default['default'](Api, _Base);
759
+ _inherits__default["default"](Api, _Base);
717
760
 
718
- var _super = _createSuper__default['default'](Api);
761
+ var _super = _createSuper__default["default"](Api);
719
762
 
720
763
  function Api() {
721
764
  var _this;
722
765
 
723
766
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
724
767
 
725
- _classCallCheck__default['default'](this, Api);
768
+ _classCallCheck__default["default"](this, Api);
726
769
 
727
770
  _this = _super.call(this, opts);
728
- _this.auth = new AuthApi(_assertThisInitialized__default['default'](_this), {
771
+ _this.auth = new AuthApi(_assertThisInitialized__default["default"](_this), {
729
772
  withCredentials: true
730
773
  });
731
- _this.account = new AccountApi(_assertThisInitialized__default['default'](_this), {
774
+ _this.account = new AccountApi(_assertThisInitialized__default["default"](_this), {
732
775
  withCredentials: true
733
776
  });
734
- _this.medias = new MediasApi(_assertThisInitialized__default['default'](_this));
735
- _this.resources = new ResourcesApi(_assertThisInitialized__default['default'](_this));
777
+ _this.medias = new MediasApi(_assertThisInitialized__default["default"](_this));
778
+ _this.resources = new ResourcesApi(_assertThisInitialized__default["default"](_this));
736
779
  return _this;
737
780
  }
738
781
 
739
- return Api;
782
+ return _createClass__default["default"](Api);
740
783
  }(Base);
741
784
 
742
785
  /* eslint-disable react/jsx-props-no-spreading */
743
- var ApiContext = /*#__PURE__*/React__default['default'].createContext(null);
786
+ var ApiContext = /*#__PURE__*/React__default["default"].createContext(null);
744
787
  var useApi = function useApi() {
745
788
  return React.useContext(ApiContext);
746
789
  };
747
790
  var propTypes$1 = {
748
- api: PropTypes__default['default'].instanceOf(Api),
749
- baseUrl: PropTypes__default['default'].string,
750
- children: PropTypes__default['default'].node.isRequired
791
+ api: PropTypes__default["default"].instanceOf(Api),
792
+ baseUrl: PropTypes__default["default"].string,
793
+ onUnauthorized: PropTypes__default["default"].func,
794
+ children: PropTypes__default["default"].node.isRequired
751
795
  };
752
796
  var defaultProps$1 = {
753
797
  api: null,
798
+ onUnauthorized: null,
754
799
  baseUrl: undefined
755
800
  };
756
801
  var ApiProvider = function ApiProvider(_ref) {
757
802
  var initialApi = _ref.api,
758
803
  baseUrl = _ref.baseUrl,
804
+ onUnauthorized = _ref.onUnauthorized,
759
805
  children = _ref.children;
760
806
  var generateUrl = contexts.useUrlGenerator();
761
807
  var previousApi = useApi();
762
808
  var api = React.useMemo(function () {
763
809
  return initialApi || previousApi || new Api({
764
810
  baseUrl: baseUrl,
765
- generateUrl: generateUrl
811
+ generateUrl: generateUrl,
812
+ onUnauthorized: onUnauthorized
766
813
  });
767
814
  }, [previousApi, initialApi, baseUrl]);
768
- return /*#__PURE__*/React__default['default'].createElement(ApiContext.Provider, {
815
+ return /*#__PURE__*/React__default["default"].createElement(ApiContext.Provider, {
769
816
  value: api
770
817
  }, children);
771
818
  };
772
819
  ApiProvider.propTypes = propTypes$1;
773
820
  ApiProvider.defaultProps = defaultProps$1;
774
821
 
822
+ var _excluded$4 = ["items", "pageItems"];
823
+
775
824
  var useMedias = function useMedias() {
776
825
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
777
826
  var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
@@ -783,17 +832,17 @@ var useMedias = function useMedias() {
783
832
  return api.medias.get(query, requestedPage, count);
784
833
  }, [api, query, count]);
785
834
 
786
- var _useItems = useItems(_objectSpread__default['default']({
835
+ var _useItems = useItems(_objectSpread__default["default"]({
787
836
  getPage: page !== null ? getItems : null,
788
837
  getItems: page === null ? getItems : null,
789
838
  page: page
790
839
  }, opts)),
791
840
  items = _useItems.items,
792
841
  pageItems = _useItems.pageItems,
793
- request = _objectWithoutProperties__default['default'](_useItems, ["items", "pageItems"]); // console.log('medias', items);
842
+ request = _objectWithoutProperties__default["default"](_useItems, _excluded$4); // console.log('medias', items);
794
843
 
795
844
 
796
- return _objectSpread__default['default']({
845
+ return _objectSpread__default["default"]({
797
846
  medias: page !== null ? pageItems : items,
798
847
  allMedias: items
799
848
  }, request);
@@ -805,7 +854,7 @@ var useMediasRecent = function useMediasRecent(opts) {
805
854
  if (window !== undefined && value) {
806
855
  var recent = window.localStorage.getItem(key) || null;
807
856
  var current = recent !== null ? JSON.parse(recent || '[]') : [];
808
- var encoded = JSON.stringify([value].concat(_toConsumableArray__default['default'](current)));
857
+ var encoded = JSON.stringify([value].concat(_toConsumableArray__default["default"](current)));
809
858
  window.localStorage.setItem(key, encoded);
810
859
  return true;
811
860
  }
@@ -829,6 +878,8 @@ var useMediasRecent = function useMediasRecent(opts) {
829
878
  };
830
879
  };
831
880
 
881
+ var _excluded$3 = ["data"];
882
+
832
883
  var useMedia = function useMedia(id, opts) {
833
884
  var api = useApi();
834
885
  var loader = React.useCallback(function () {
@@ -837,16 +888,16 @@ var useMedia = function useMedia(id, opts) {
837
888
 
838
889
  var _useData = useData(loader, opts),
839
890
  data = _useData.data,
840
- request = _objectWithoutProperties__default['default'](_useData, ["data"]);
891
+ request = _objectWithoutProperties__default["default"](_useData, _excluded$3);
841
892
 
842
- return _objectSpread__default['default']({
893
+ return _objectSpread__default["default"]({
843
894
  story: data
844
895
  }, request);
845
896
  };
846
897
 
847
898
  var useMediaCreate = function useMediaCreate() {
848
899
  var _useState = React.useState(false),
849
- _useState2 = _slicedToArray__default['default'](_useState, 2),
900
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
850
901
  creating = _useState2[0],
851
902
  setCreating = _useState2[1];
852
903
 
@@ -864,6 +915,8 @@ var useMediaCreate = function useMediaCreate() {
864
915
  };
865
916
  };
866
917
 
918
+ var _excluded$2 = ["items", "pageItems"];
919
+
867
920
  var useMediaTags = function useMediaTags() {
868
921
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
869
922
  var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
@@ -873,21 +926,21 @@ var useMediaTags = function useMediaTags() {
873
926
  return api.medias.getTags(query, count);
874
927
  }, [api, query, count]);
875
928
 
876
- var _useItems = useItems(_objectSpread__default['default']({
929
+ var _useItems = useItems(_objectSpread__default["default"]({
877
930
  getItems: getItems
878
931
  }, opts)),
879
932
  items = _useItems.items;
880
933
  _useItems.pageItems;
881
- var request = _objectWithoutProperties__default['default'](_useItems, ["items", "pageItems"]);
934
+ var request = _objectWithoutProperties__default["default"](_useItems, _excluded$2);
882
935
 
883
- return _objectSpread__default['default']({
936
+ return _objectSpread__default["default"]({
884
937
  tags: items
885
938
  }, request);
886
939
  };
887
940
 
888
941
  var useMediaUpdate = function useMediaUpdate() {
889
942
  var _useState = React.useState(false),
890
- _useState2 = _slicedToArray__default['default'](_useState, 2),
943
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
891
944
  updating = _useState2[0],
892
945
  setUpdating = _useState2[1];
893
946
 
@@ -909,7 +962,7 @@ var useResourceDestroy = function useResourceDestroy(resource) {
909
962
  var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
910
963
 
911
964
  var _useState = React.useState(false),
912
- _useState2 = _slicedToArray__default['default'](_useState, 2),
965
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
913
966
  loading = _useState2[0],
914
967
  setLoading = _useState2[1];
915
968
 
@@ -930,6 +983,8 @@ var useResourceDestroy = function useResourceDestroy(resource) {
930
983
  };
931
984
  };
932
985
 
986
+ var _excluded$1 = ["data"];
987
+
933
988
  var useResourceItem = function useResourceItem(resource, id, opts) {
934
989
  var api = useApi();
935
990
  var loader = React.useCallback(function () {
@@ -938,13 +993,15 @@ var useResourceItem = function useResourceItem(resource, id, opts) {
938
993
 
939
994
  var _useData = useData(loader, opts),
940
995
  data = _useData.data,
941
- request = _objectWithoutProperties__default['default'](_useData, ["data"]);
996
+ request = _objectWithoutProperties__default["default"](_useData, _excluded$1);
942
997
 
943
- return _objectSpread__default['default']({
998
+ return _objectSpread__default["default"]({
944
999
  item: data
945
1000
  }, request);
946
1001
  };
947
1002
 
1003
+ var _excluded = ["items", "pageItems"];
1004
+
948
1005
  var useResourceItems = function useResourceItems(resource) {
949
1006
  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
950
1007
  var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
@@ -956,16 +1013,16 @@ var useResourceItems = function useResourceItems(resource) {
956
1013
  return api.resources.get(resource, query, requestedPage, count);
957
1014
  }, [api, resource, query, count]);
958
1015
 
959
- var _useItems = useItems(_objectSpread__default['default']({
1016
+ var _useItems = useItems(_objectSpread__default["default"]({
960
1017
  getPage: page !== null ? getItems : null,
961
1018
  getItems: page === null ? getItems : null,
962
1019
  page: page
963
1020
  }, opts)),
964
1021
  items = _useItems.items,
965
1022
  pageItems = _useItems.pageItems,
966
- request = _objectWithoutProperties__default['default'](_useItems, ["items", "pageItems"]);
1023
+ request = _objectWithoutProperties__default["default"](_useItems, _excluded);
967
1024
 
968
- return _objectSpread__default['default']({
1025
+ return _objectSpread__default["default"]({
969
1026
  items: page !== null ? pageItems : items,
970
1027
  allItems: items
971
1028
  }, request);
@@ -973,7 +1030,7 @@ var useResourceItems = function useResourceItems(resource) {
973
1030
 
974
1031
  var useResourceCreate = function useResourceCreate(resource) {
975
1032
  var _useState = React.useState(false),
976
- _useState2 = _slicedToArray__default['default'](_useState, 2),
1033
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
977
1034
  loading = _useState2[0],
978
1035
  setLoading = _useState2[1];
979
1036
 
@@ -996,7 +1053,7 @@ var useResourceCreate = function useResourceCreate(resource) {
996
1053
 
997
1054
  var useResourceUpdate = function useResourceUpdate(resource, id) {
998
1055
  var _useState = React.useState(false),
999
- _useState2 = _slicedToArray__default['default'](_useState, 2),
1056
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1000
1057
  loading = _useState2[0],
1001
1058
  setLoading = _useState2[1];
1002
1059
 
@@ -1019,9 +1076,9 @@ var useResourceUpdate = function useResourceUpdate(resource, id) {
1019
1076
 
1020
1077
  /* eslint-disable react/jsx-props-no-spreading */
1021
1078
  var propTypes = {
1022
- api: PropTypes__default['default'].instanceOf(Api),
1023
- apiBaseUrl: PropTypes__default['default'].string,
1024
- children: PropTypes__default['default'].node
1079
+ api: PropTypes__default["default"].instanceOf(Api),
1080
+ apiBaseUrl: PropTypes__default["default"].string,
1081
+ children: PropTypes__default["default"].node
1025
1082
  };
1026
1083
  var defaultProps = {
1027
1084
  api: null,
@@ -1033,7 +1090,7 @@ var DataProvider = function DataProvider(_ref) {
1033
1090
  var api = _ref.api,
1034
1091
  apiBaseUrl = _ref.apiBaseUrl,
1035
1092
  children = _ref.children;
1036
- return /*#__PURE__*/React__default['default'].createElement(ApiProvider, {
1093
+ return /*#__PURE__*/React__default["default"].createElement(ApiProvider, {
1037
1094
  api: api,
1038
1095
  baseUrl: apiBaseUrl
1039
1096
  }, children);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/data",
3
- "version": "1.0.0-alpha.97",
3
+ "version": "1.0.3-alpha.1",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -44,23 +44,23 @@
44
44
  "prepare": "../../scripts/prepare-package.sh"
45
45
  },
46
46
  "devDependencies": {
47
- "react": "^16.8.0",
48
- "react-dom": "^16.8.0"
47
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
48
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
49
49
  },
50
50
  "peerDependencies": {
51
- "react": "^16.8.0",
52
- "react-dom": "^16.8.0"
51
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
52
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
53
53
  },
54
54
  "dependencies": {
55
55
  "@babel/runtime": "^7.12.5",
56
- "@folklore/fetch": "^0.1.10",
57
- "@panneau/core": "^1.0.0-alpha.97",
56
+ "@folklore/fetch": "^0.1.15",
57
+ "@panneau/core": "^1.0.3-alpha.1",
58
58
  "prop-types": "^15.7.2",
59
59
  "query-string": "^7.0.0",
60
- "react-router": "^5.2.0"
60
+ "react-router": "^6.2.1"
61
61
  },
62
62
  "publishConfig": {
63
63
  "access": "public"
64
64
  },
65
- "gitHead": "ae027f5d52166649ba60c89f91b0ea5e6df29e64"
65
+ "gitHead": "e04e663c7f1eb692f89a0136f2e8f45024fbe355"
66
66
  }