@panneau/data 1.0.0-y.0 → 1.0.3-alpha.0

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 +58 -11
  2. package/lib/index.js +132 -85
  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.fetchPost(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, {
@@ -893,7 +940,7 @@ var useMediaUpdate = function useMediaUpdate() {
893
940
  };
894
941
  };
895
942
 
896
- var useResourceUpdate$1 = function useResourceUpdate(resource) {
943
+ var useResourceDestroy = function useResourceDestroy(resource) {
897
944
  var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
898
945
 
899
946
  var _useState = useState(false),
@@ -1034,4 +1081,4 @@ var DataProvider = function DataProvider(_ref) {
1034
1081
  DataProvider.propTypes = propTypes;
1035
1082
  DataProvider.defaultProps = defaultProps;
1036
1083
 
1037
- export { Api, ApiProvider, Base as BaseApi, DataProvider, useApi, useData, useItems, useMedia, useMediaCreate, useMediaTags, useMediaUpdate, useMedias, useMediasRecent as useMediasRecentSearches, useResourceUpdate$1 as useResourceDestroy, useResourceItem, useResourceItems, useResourceCreate as useResourceStore, useResourceUpdate };
1084
+ export { Api, ApiProvider, Base as BaseApi, DataProvider, useApi, useData, useItems, useMedia, useMediaCreate, useMediaTags, useMediaUpdate, useMedias, useMediasRecent as useMediasRecentSearches, useResourceDestroy, useResourceItem, useResourceItems, useResourceCreate as useResourceStore, useResourceUpdate };
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.fetchPost(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,59 +756,63 @@ 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
  };
@@ -785,17 +832,17 @@ var useMedias = function useMedias() {
785
832
  return api.medias.get(query, requestedPage, count);
786
833
  }, [api, query, count]);
787
834
 
788
- var _useItems = useItems(_objectSpread__default['default']({
835
+ var _useItems = useItems(_objectSpread__default["default"]({
789
836
  getPage: page !== null ? getItems : null,
790
837
  getItems: page === null ? getItems : null,
791
838
  page: page
792
839
  }, opts)),
793
840
  items = _useItems.items,
794
841
  pageItems = _useItems.pageItems,
795
- request = _objectWithoutProperties__default['default'](_useItems, _excluded$4); // console.log('medias', items);
842
+ request = _objectWithoutProperties__default["default"](_useItems, _excluded$4); // console.log('medias', items);
796
843
 
797
844
 
798
- return _objectSpread__default['default']({
845
+ return _objectSpread__default["default"]({
799
846
  medias: page !== null ? pageItems : items,
800
847
  allMedias: items
801
848
  }, request);
@@ -807,7 +854,7 @@ var useMediasRecent = function useMediasRecent(opts) {
807
854
  if (window !== undefined && value) {
808
855
  var recent = window.localStorage.getItem(key) || null;
809
856
  var current = recent !== null ? JSON.parse(recent || '[]') : [];
810
- var encoded = JSON.stringify([value].concat(_toConsumableArray__default['default'](current)));
857
+ var encoded = JSON.stringify([value].concat(_toConsumableArray__default["default"](current)));
811
858
  window.localStorage.setItem(key, encoded);
812
859
  return true;
813
860
  }
@@ -841,16 +888,16 @@ var useMedia = function useMedia(id, opts) {
841
888
 
842
889
  var _useData = useData(loader, opts),
843
890
  data = _useData.data,
844
- request = _objectWithoutProperties__default['default'](_useData, _excluded$3);
891
+ request = _objectWithoutProperties__default["default"](_useData, _excluded$3);
845
892
 
846
- return _objectSpread__default['default']({
893
+ return _objectSpread__default["default"]({
847
894
  story: data
848
895
  }, request);
849
896
  };
850
897
 
851
898
  var useMediaCreate = function useMediaCreate() {
852
899
  var _useState = React.useState(false),
853
- _useState2 = _slicedToArray__default['default'](_useState, 2),
900
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
854
901
  creating = _useState2[0],
855
902
  setCreating = _useState2[1];
856
903
 
@@ -879,21 +926,21 @@ var useMediaTags = function useMediaTags() {
879
926
  return api.medias.getTags(query, count);
880
927
  }, [api, query, count]);
881
928
 
882
- var _useItems = useItems(_objectSpread__default['default']({
929
+ var _useItems = useItems(_objectSpread__default["default"]({
883
930
  getItems: getItems
884
931
  }, opts)),
885
932
  items = _useItems.items;
886
933
  _useItems.pageItems;
887
- var request = _objectWithoutProperties__default['default'](_useItems, _excluded$2);
934
+ var request = _objectWithoutProperties__default["default"](_useItems, _excluded$2);
888
935
 
889
- return _objectSpread__default['default']({
936
+ return _objectSpread__default["default"]({
890
937
  tags: items
891
938
  }, request);
892
939
  };
893
940
 
894
941
  var useMediaUpdate = function useMediaUpdate() {
895
942
  var _useState = React.useState(false),
896
- _useState2 = _slicedToArray__default['default'](_useState, 2),
943
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
897
944
  updating = _useState2[0],
898
945
  setUpdating = _useState2[1];
899
946
 
@@ -911,11 +958,11 @@ var useMediaUpdate = function useMediaUpdate() {
911
958
  };
912
959
  };
913
960
 
914
- var useResourceUpdate$1 = function useResourceUpdate(resource) {
961
+ var useResourceDestroy = function useResourceDestroy(resource) {
915
962
  var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
916
963
 
917
964
  var _useState = React.useState(false),
918
- _useState2 = _slicedToArray__default['default'](_useState, 2),
965
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
919
966
  loading = _useState2[0],
920
967
  setLoading = _useState2[1];
921
968
 
@@ -946,9 +993,9 @@ var useResourceItem = function useResourceItem(resource, id, opts) {
946
993
 
947
994
  var _useData = useData(loader, opts),
948
995
  data = _useData.data,
949
- request = _objectWithoutProperties__default['default'](_useData, _excluded$1);
996
+ request = _objectWithoutProperties__default["default"](_useData, _excluded$1);
950
997
 
951
- return _objectSpread__default['default']({
998
+ return _objectSpread__default["default"]({
952
999
  item: data
953
1000
  }, request);
954
1001
  };
@@ -966,16 +1013,16 @@ var useResourceItems = function useResourceItems(resource) {
966
1013
  return api.resources.get(resource, query, requestedPage, count);
967
1014
  }, [api, resource, query, count]);
968
1015
 
969
- var _useItems = useItems(_objectSpread__default['default']({
1016
+ var _useItems = useItems(_objectSpread__default["default"]({
970
1017
  getPage: page !== null ? getItems : null,
971
1018
  getItems: page === null ? getItems : null,
972
1019
  page: page
973
1020
  }, opts)),
974
1021
  items = _useItems.items,
975
1022
  pageItems = _useItems.pageItems,
976
- request = _objectWithoutProperties__default['default'](_useItems, _excluded);
1023
+ request = _objectWithoutProperties__default["default"](_useItems, _excluded);
977
1024
 
978
- return _objectSpread__default['default']({
1025
+ return _objectSpread__default["default"]({
979
1026
  items: page !== null ? pageItems : items,
980
1027
  allItems: items
981
1028
  }, request);
@@ -983,7 +1030,7 @@ var useResourceItems = function useResourceItems(resource) {
983
1030
 
984
1031
  var useResourceCreate = function useResourceCreate(resource) {
985
1032
  var _useState = React.useState(false),
986
- _useState2 = _slicedToArray__default['default'](_useState, 2),
1033
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
987
1034
  loading = _useState2[0],
988
1035
  setLoading = _useState2[1];
989
1036
 
@@ -1006,7 +1053,7 @@ var useResourceCreate = function useResourceCreate(resource) {
1006
1053
 
1007
1054
  var useResourceUpdate = function useResourceUpdate(resource, id) {
1008
1055
  var _useState = React.useState(false),
1009
- _useState2 = _slicedToArray__default['default'](_useState, 2),
1056
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1010
1057
  loading = _useState2[0],
1011
1058
  setLoading = _useState2[1];
1012
1059
 
@@ -1029,9 +1076,9 @@ var useResourceUpdate = function useResourceUpdate(resource, id) {
1029
1076
 
1030
1077
  /* eslint-disable react/jsx-props-no-spreading */
1031
1078
  var propTypes = {
1032
- api: PropTypes__default['default'].instanceOf(Api),
1033
- apiBaseUrl: PropTypes__default['default'].string,
1034
- children: PropTypes__default['default'].node
1079
+ api: PropTypes__default["default"].instanceOf(Api),
1080
+ apiBaseUrl: PropTypes__default["default"].string,
1081
+ children: PropTypes__default["default"].node
1035
1082
  };
1036
1083
  var defaultProps = {
1037
1084
  api: null,
@@ -1043,7 +1090,7 @@ var DataProvider = function DataProvider(_ref) {
1043
1090
  var api = _ref.api,
1044
1091
  apiBaseUrl = _ref.apiBaseUrl,
1045
1092
  children = _ref.children;
1046
- return /*#__PURE__*/React__default['default'].createElement(ApiProvider, {
1093
+ return /*#__PURE__*/React__default["default"].createElement(ApiProvider, {
1047
1094
  api: api,
1048
1095
  baseUrl: apiBaseUrl
1049
1096
  }, children);
@@ -1065,7 +1112,7 @@ exports.useMediaTags = useMediaTags;
1065
1112
  exports.useMediaUpdate = useMediaUpdate;
1066
1113
  exports.useMedias = useMedias;
1067
1114
  exports.useMediasRecentSearches = useMediasRecent;
1068
- exports.useResourceDestroy = useResourceUpdate$1;
1115
+ exports.useResourceDestroy = useResourceDestroy;
1069
1116
  exports.useResourceItem = useResourceItem;
1070
1117
  exports.useResourceItems = useResourceItems;
1071
1118
  exports.useResourceStore = useResourceCreate;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/data",
3
- "version": "1.0.0-y.0",
3
+ "version": "1.0.3-alpha.0",
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-y.0",
56
+ "@folklore/fetch": "^0.1.15",
57
+ "@panneau/core": "^1.0.3-alpha.0",
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": "168d858d58681ee6c96f00ec460a456576cb512b"
65
+ "gitHead": "7f9c472b97c79a5c81da30730549acdde2de5c9f"
66
66
  }