@panneau/data 1.0.0-alpha.23 → 1.0.0-alpha.231

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 -16
  2. package/lib/index.js +140 -85
  3. package/package.json +7 -7
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,13 @@ 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
455
496
  });
456
497
  }
457
498
  }, {
@@ -718,7 +759,7 @@ var Api = /*#__PURE__*/function (_Base) {
718
759
  return _this;
719
760
  }
720
761
 
721
- return Api;
762
+ return _createClass(Api);
722
763
  }(Base);
723
764
 
724
765
  /* eslint-disable react/jsx-props-no-spreading */
@@ -729,22 +770,26 @@ var useApi = function useApi() {
729
770
  var propTypes$1 = {
730
771
  api: PropTypes.instanceOf(Api),
731
772
  baseUrl: PropTypes.string,
773
+ onUnauthorized: PropTypes.func,
732
774
  children: PropTypes.node.isRequired
733
775
  };
734
776
  var defaultProps$1 = {
735
777
  api: null,
778
+ onUnauthorized: null,
736
779
  baseUrl: undefined
737
780
  };
738
781
  var ApiProvider = function ApiProvider(_ref) {
739
782
  var initialApi = _ref.api,
740
783
  baseUrl = _ref.baseUrl,
784
+ onUnauthorized = _ref.onUnauthorized,
741
785
  children = _ref.children;
742
786
  var generateUrl = useUrlGenerator();
743
787
  var previousApi = useApi();
744
788
  var api = useMemo(function () {
745
789
  return initialApi || previousApi || new Api({
746
790
  baseUrl: baseUrl,
747
- generateUrl: generateUrl
791
+ generateUrl: generateUrl,
792
+ onUnauthorized: onUnauthorized
748
793
  });
749
794
  }, [previousApi, initialApi, baseUrl]);
750
795
  return /*#__PURE__*/React.createElement(ApiContext.Provider, {
@@ -754,6 +799,8 @@ var ApiProvider = function ApiProvider(_ref) {
754
799
  ApiProvider.propTypes = propTypes$1;
755
800
  ApiProvider.defaultProps = defaultProps$1;
756
801
 
802
+ var _excluded$4 = ["items", "pageItems"];
803
+
757
804
  var useMedias = function useMedias() {
758
805
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
759
806
  var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
@@ -772,7 +819,7 @@ var useMedias = function useMedias() {
772
819
  }, opts)),
773
820
  items = _useItems.items,
774
821
  pageItems = _useItems.pageItems,
775
- request = _objectWithoutProperties(_useItems, ["items", "pageItems"]); // console.log('medias', items);
822
+ request = _objectWithoutProperties(_useItems, _excluded$4); // console.log('medias', items);
776
823
 
777
824
 
778
825
  return _objectSpread({
@@ -811,6 +858,8 @@ var useMediasRecent = function useMediasRecent(opts) {
811
858
  };
812
859
  };
813
860
 
861
+ var _excluded$3 = ["data"];
862
+
814
863
  var useMedia = function useMedia(id, opts) {
815
864
  var api = useApi();
816
865
  var loader = useCallback(function () {
@@ -819,7 +868,7 @@ var useMedia = function useMedia(id, opts) {
819
868
 
820
869
  var _useData = useData(loader, opts),
821
870
  data = _useData.data,
822
- request = _objectWithoutProperties(_useData, ["data"]);
871
+ request = _objectWithoutProperties(_useData, _excluded$3);
823
872
 
824
873
  return _objectSpread({
825
874
  story: data
@@ -846,6 +895,8 @@ var useMediaCreate = function useMediaCreate() {
846
895
  };
847
896
  };
848
897
 
898
+ var _excluded$2 = ["items", "pageItems"];
899
+
849
900
  var useMediaTags = function useMediaTags() {
850
901
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
851
902
  var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
@@ -860,7 +911,7 @@ var useMediaTags = function useMediaTags() {
860
911
  }, opts)),
861
912
  items = _useItems.items;
862
913
  _useItems.pageItems;
863
- var request = _objectWithoutProperties(_useItems, ["items", "pageItems"]);
914
+ var request = _objectWithoutProperties(_useItems, _excluded$2);
864
915
 
865
916
  return _objectSpread({
866
917
  tags: items
@@ -887,7 +938,7 @@ var useMediaUpdate = function useMediaUpdate() {
887
938
  };
888
939
  };
889
940
 
890
- var useResourceUpdate$1 = function useResourceUpdate(resource) {
941
+ var useResourceDestroy = function useResourceDestroy(resource) {
891
942
  var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
892
943
 
893
944
  var _useState = useState(false),
@@ -912,6 +963,8 @@ var useResourceUpdate$1 = function useResourceUpdate(resource) {
912
963
  };
913
964
  };
914
965
 
966
+ var _excluded$1 = ["data"];
967
+
915
968
  var useResourceItem = function useResourceItem(resource, id, opts) {
916
969
  var api = useApi();
917
970
  var loader = useCallback(function () {
@@ -920,13 +973,15 @@ var useResourceItem = function useResourceItem(resource, id, opts) {
920
973
 
921
974
  var _useData = useData(loader, opts),
922
975
  data = _useData.data,
923
- request = _objectWithoutProperties(_useData, ["data"]);
976
+ request = _objectWithoutProperties(_useData, _excluded$1);
924
977
 
925
978
  return _objectSpread({
926
979
  item: data
927
980
  }, request);
928
981
  };
929
982
 
983
+ var _excluded = ["items", "pageItems"];
984
+
930
985
  var useResourceItems = function useResourceItems(resource) {
931
986
  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
932
987
  var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
@@ -945,7 +1000,7 @@ var useResourceItems = function useResourceItems(resource) {
945
1000
  }, opts)),
946
1001
  items = _useItems.items,
947
1002
  pageItems = _useItems.pageItems,
948
- request = _objectWithoutProperties(_useItems, ["items", "pageItems"]);
1003
+ request = _objectWithoutProperties(_useItems, _excluded);
949
1004
 
950
1005
  return _objectSpread({
951
1006
  items: page !== null ? pageItems : items,
@@ -1024,4 +1079,4 @@ var DataProvider = function DataProvider(_ref) {
1024
1079
  DataProvider.propTypes = propTypes;
1025
1080
  DataProvider.defaultProps = defaultProps;
1026
1081
 
1027
- 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 };
1082
+ 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,13 @@ 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
473
514
  });
474
515
  }
475
516
  }, {
@@ -499,15 +540,15 @@ var AuthApi = /*#__PURE__*/function () {
499
540
 
500
541
  var AccountApi = /*#__PURE__*/function () {
501
542
  function AccountApi(api, opts) {
502
- _classCallCheck__default['default'](this, AccountApi);
543
+ _classCallCheck__default["default"](this, AccountApi);
503
544
 
504
545
  this.api = api;
505
- this.options = _objectSpread__default['default']({
546
+ this.options = _objectSpread__default["default"]({
506
547
  withCredentials: false
507
548
  }, opts);
508
549
  }
509
550
 
510
- _createClass__default['default'](AccountApi, [{
551
+ _createClass__default["default"](AccountApi, [{
511
552
  key: "update",
512
553
  value: function update(data) {
513
554
  var withCredentials = this.options.withCredentials;
@@ -549,17 +590,17 @@ var AccountApi = /*#__PURE__*/function () {
549
590
  }();
550
591
 
551
592
  var MediasApi = /*#__PURE__*/function (_Base) {
552
- _inherits__default['default'](MediasApi, _Base);
593
+ _inherits__default["default"](MediasApi, _Base);
553
594
 
554
- var _super = _createSuper__default['default'](MediasApi);
595
+ var _super = _createSuper__default["default"](MediasApi);
555
596
 
556
597
  function MediasApi() {
557
598
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
558
599
 
559
- _classCallCheck__default['default'](this, MediasApi);
600
+ _classCallCheck__default["default"](this, MediasApi);
560
601
 
561
- return _super.call(this, _objectSpread__default['default'](_objectSpread__default['default']({}, opts), {}, {
562
- routes: _objectSpread__default['default']({
602
+ return _super.call(this, _objectSpread__default["default"](_objectSpread__default["default"]({}, opts), {}, {
603
+ routes: _objectSpread__default["default"]({
563
604
  index: 'medias',
564
605
  tags: 'medias/tags',
565
606
  show: 'medias/:media',
@@ -570,7 +611,7 @@ var MediasApi = /*#__PURE__*/function (_Base) {
570
611
  }));
571
612
  }
572
613
 
573
- _createClass__default['default'](MediasApi, [{
614
+ _createClass__default["default"](MediasApi, [{
574
615
  key: "find",
575
616
  value: function find(id) {
576
617
  return this.requestGet(this.route('show', {
@@ -584,7 +625,7 @@ var MediasApi = /*#__PURE__*/function (_Base) {
584
625
  var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
585
626
  var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
586
627
 
587
- var finalQuery = _objectSpread__default['default']({}, query);
628
+ var finalQuery = _objectSpread__default["default"]({}, query);
588
629
 
589
630
  if (page !== null) {
590
631
  finalQuery.page = page;
@@ -602,7 +643,7 @@ var MediasApi = /*#__PURE__*/function (_Base) {
602
643
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
603
644
  var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
604
645
 
605
- var finalQuery = _objectSpread__default['default']({}, query);
646
+ var finalQuery = _objectSpread__default["default"]({}, query);
606
647
 
607
648
  if (count !== null) {
608
649
  finalQuery.count = count;
@@ -636,19 +677,19 @@ var MediasApi = /*#__PURE__*/function (_Base) {
636
677
 
637
678
  var ResourcesApi = /*#__PURE__*/function () {
638
679
  function ResourcesApi(api) {
639
- _classCallCheck__default['default'](this, ResourcesApi);
680
+ _classCallCheck__default["default"](this, ResourcesApi);
640
681
 
641
682
  this.api = api;
642
683
  }
643
684
 
644
- _createClass__default['default'](ResourcesApi, [{
685
+ _createClass__default["default"](ResourcesApi, [{
645
686
  key: "resourceRoute",
646
687
  value: function resourceRoute(_ref, route, params) {
647
688
  var id = _ref.id,
648
689
  _ref$has_routes = _ref.has_routes,
649
690
  hasRoutes = _ref$has_routes === void 0 ? false : _ref$has_routes;
650
691
  var routePrefix = hasRoutes ? "resources.".concat(id) : 'resources';
651
- return this.api.route("".concat(routePrefix, ".").concat(route), hasRoutes ? params : _objectSpread__default['default']({
692
+ return this.api.route("".concat(routePrefix, ".").concat(route), hasRoutes ? params : _objectSpread__default["default"]({
652
693
  resource: id
653
694
  }, params));
654
695
  }
@@ -668,7 +709,7 @@ var ResourcesApi = /*#__PURE__*/function () {
668
709
  var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
669
710
  var count = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;
670
711
 
671
- var finalQuery = _objectSpread__default['default']({}, query);
712
+ var finalQuery = _objectSpread__default["default"]({}, query);
672
713
 
673
714
  if (page !== null) {
674
715
  finalQuery.page = page;
@@ -713,65 +754,71 @@ var ResourcesApi = /*#__PURE__*/function () {
713
754
  }();
714
755
 
715
756
  var Api = /*#__PURE__*/function (_Base) {
716
- _inherits__default['default'](Api, _Base);
757
+ _inherits__default["default"](Api, _Base);
717
758
 
718
- var _super = _createSuper__default['default'](Api);
759
+ var _super = _createSuper__default["default"](Api);
719
760
 
720
761
  function Api() {
721
762
  var _this;
722
763
 
723
764
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
724
765
 
725
- _classCallCheck__default['default'](this, Api);
766
+ _classCallCheck__default["default"](this, Api);
726
767
 
727
768
  _this = _super.call(this, opts);
728
- _this.auth = new AuthApi(_assertThisInitialized__default['default'](_this), {
769
+ _this.auth = new AuthApi(_assertThisInitialized__default["default"](_this), {
729
770
  withCredentials: true
730
771
  });
731
- _this.account = new AccountApi(_assertThisInitialized__default['default'](_this), {
772
+ _this.account = new AccountApi(_assertThisInitialized__default["default"](_this), {
732
773
  withCredentials: true
733
774
  });
734
- _this.medias = new MediasApi(_assertThisInitialized__default['default'](_this));
735
- _this.resources = new ResourcesApi(_assertThisInitialized__default['default'](_this));
775
+ _this.medias = new MediasApi(_assertThisInitialized__default["default"](_this));
776
+ _this.resources = new ResourcesApi(_assertThisInitialized__default["default"](_this));
736
777
  return _this;
737
778
  }
738
779
 
739
- return Api;
780
+ return _createClass__default["default"](Api);
740
781
  }(Base);
741
782
 
742
783
  /* eslint-disable react/jsx-props-no-spreading */
743
- var ApiContext = /*#__PURE__*/React__default['default'].createContext(null);
784
+ var ApiContext = /*#__PURE__*/React__default["default"].createContext(null);
744
785
  var useApi = function useApi() {
745
786
  return React.useContext(ApiContext);
746
787
  };
747
788
  var propTypes$1 = {
748
- api: PropTypes__default['default'].instanceOf(Api),
749
- baseUrl: PropTypes__default['default'].string,
750
- children: PropTypes__default['default'].node.isRequired
789
+ api: PropTypes__default["default"].instanceOf(Api),
790
+ baseUrl: PropTypes__default["default"].string,
791
+ onUnauthorized: PropTypes__default["default"].func,
792
+ children: PropTypes__default["default"].node.isRequired
751
793
  };
752
794
  var defaultProps$1 = {
753
795
  api: null,
796
+ onUnauthorized: null,
754
797
  baseUrl: undefined
755
798
  };
756
799
  var ApiProvider = function ApiProvider(_ref) {
757
800
  var initialApi = _ref.api,
758
801
  baseUrl = _ref.baseUrl,
802
+ onUnauthorized = _ref.onUnauthorized,
759
803
  children = _ref.children;
760
804
  var generateUrl = contexts.useUrlGenerator();
761
805
  var previousApi = useApi();
762
806
  var api = React.useMemo(function () {
763
807
  return initialApi || previousApi || new Api({
764
808
  baseUrl: baseUrl,
765
- generateUrl: generateUrl
809
+ generateUrl: generateUrl,
810
+ onUnauthorized: onUnauthorized
766
811
  });
767
812
  }, [previousApi, initialApi, baseUrl]);
768
- return /*#__PURE__*/React__default['default'].createElement(ApiContext.Provider, {
813
+ return /*#__PURE__*/React__default["default"].createElement(ApiContext.Provider, {
769
814
  value: api
770
815
  }, children);
771
816
  };
772
817
  ApiProvider.propTypes = propTypes$1;
773
818
  ApiProvider.defaultProps = defaultProps$1;
774
819
 
820
+ var _excluded$4 = ["items", "pageItems"];
821
+
775
822
  var useMedias = function useMedias() {
776
823
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
777
824
  var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
@@ -783,17 +830,17 @@ var useMedias = function useMedias() {
783
830
  return api.medias.get(query, requestedPage, count);
784
831
  }, [api, query, count]);
785
832
 
786
- var _useItems = useItems(_objectSpread__default['default']({
833
+ var _useItems = useItems(_objectSpread__default["default"]({
787
834
  getPage: page !== null ? getItems : null,
788
835
  getItems: page === null ? getItems : null,
789
836
  page: page
790
837
  }, opts)),
791
838
  items = _useItems.items,
792
839
  pageItems = _useItems.pageItems,
793
- request = _objectWithoutProperties__default['default'](_useItems, ["items", "pageItems"]); // console.log('medias', items);
840
+ request = _objectWithoutProperties__default["default"](_useItems, _excluded$4); // console.log('medias', items);
794
841
 
795
842
 
796
- return _objectSpread__default['default']({
843
+ return _objectSpread__default["default"]({
797
844
  medias: page !== null ? pageItems : items,
798
845
  allMedias: items
799
846
  }, request);
@@ -805,7 +852,7 @@ var useMediasRecent = function useMediasRecent(opts) {
805
852
  if (window !== undefined && value) {
806
853
  var recent = window.localStorage.getItem(key) || null;
807
854
  var current = recent !== null ? JSON.parse(recent || '[]') : [];
808
- var encoded = JSON.stringify([value].concat(_toConsumableArray__default['default'](current)));
855
+ var encoded = JSON.stringify([value].concat(_toConsumableArray__default["default"](current)));
809
856
  window.localStorage.setItem(key, encoded);
810
857
  return true;
811
858
  }
@@ -829,6 +876,8 @@ var useMediasRecent = function useMediasRecent(opts) {
829
876
  };
830
877
  };
831
878
 
879
+ var _excluded$3 = ["data"];
880
+
832
881
  var useMedia = function useMedia(id, opts) {
833
882
  var api = useApi();
834
883
  var loader = React.useCallback(function () {
@@ -837,16 +886,16 @@ var useMedia = function useMedia(id, opts) {
837
886
 
838
887
  var _useData = useData(loader, opts),
839
888
  data = _useData.data,
840
- request = _objectWithoutProperties__default['default'](_useData, ["data"]);
889
+ request = _objectWithoutProperties__default["default"](_useData, _excluded$3);
841
890
 
842
- return _objectSpread__default['default']({
891
+ return _objectSpread__default["default"]({
843
892
  story: data
844
893
  }, request);
845
894
  };
846
895
 
847
896
  var useMediaCreate = function useMediaCreate() {
848
897
  var _useState = React.useState(false),
849
- _useState2 = _slicedToArray__default['default'](_useState, 2),
898
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
850
899
  creating = _useState2[0],
851
900
  setCreating = _useState2[1];
852
901
 
@@ -864,6 +913,8 @@ var useMediaCreate = function useMediaCreate() {
864
913
  };
865
914
  };
866
915
 
916
+ var _excluded$2 = ["items", "pageItems"];
917
+
867
918
  var useMediaTags = function useMediaTags() {
868
919
  var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
869
920
  var count = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
@@ -873,21 +924,21 @@ var useMediaTags = function useMediaTags() {
873
924
  return api.medias.getTags(query, count);
874
925
  }, [api, query, count]);
875
926
 
876
- var _useItems = useItems(_objectSpread__default['default']({
927
+ var _useItems = useItems(_objectSpread__default["default"]({
877
928
  getItems: getItems
878
929
  }, opts)),
879
930
  items = _useItems.items;
880
931
  _useItems.pageItems;
881
- var request = _objectWithoutProperties__default['default'](_useItems, ["items", "pageItems"]);
932
+ var request = _objectWithoutProperties__default["default"](_useItems, _excluded$2);
882
933
 
883
- return _objectSpread__default['default']({
934
+ return _objectSpread__default["default"]({
884
935
  tags: items
885
936
  }, request);
886
937
  };
887
938
 
888
939
  var useMediaUpdate = function useMediaUpdate() {
889
940
  var _useState = React.useState(false),
890
- _useState2 = _slicedToArray__default['default'](_useState, 2),
941
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
891
942
  updating = _useState2[0],
892
943
  setUpdating = _useState2[1];
893
944
 
@@ -905,11 +956,11 @@ var useMediaUpdate = function useMediaUpdate() {
905
956
  };
906
957
  };
907
958
 
908
- var useResourceUpdate$1 = function useResourceUpdate(resource) {
959
+ var useResourceDestroy = function useResourceDestroy(resource) {
909
960
  var id = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
910
961
 
911
962
  var _useState = React.useState(false),
912
- _useState2 = _slicedToArray__default['default'](_useState, 2),
963
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
913
964
  loading = _useState2[0],
914
965
  setLoading = _useState2[1];
915
966
 
@@ -930,6 +981,8 @@ var useResourceUpdate$1 = function useResourceUpdate(resource) {
930
981
  };
931
982
  };
932
983
 
984
+ var _excluded$1 = ["data"];
985
+
933
986
  var useResourceItem = function useResourceItem(resource, id, opts) {
934
987
  var api = useApi();
935
988
  var loader = React.useCallback(function () {
@@ -938,13 +991,15 @@ var useResourceItem = function useResourceItem(resource, id, opts) {
938
991
 
939
992
  var _useData = useData(loader, opts),
940
993
  data = _useData.data,
941
- request = _objectWithoutProperties__default['default'](_useData, ["data"]);
994
+ request = _objectWithoutProperties__default["default"](_useData, _excluded$1);
942
995
 
943
- return _objectSpread__default['default']({
996
+ return _objectSpread__default["default"]({
944
997
  item: data
945
998
  }, request);
946
999
  };
947
1000
 
1001
+ var _excluded = ["items", "pageItems"];
1002
+
948
1003
  var useResourceItems = function useResourceItems(resource) {
949
1004
  var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
950
1005
  var page = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
@@ -956,16 +1011,16 @@ var useResourceItems = function useResourceItems(resource) {
956
1011
  return api.resources.get(resource, query, requestedPage, count);
957
1012
  }, [api, resource, query, count]);
958
1013
 
959
- var _useItems = useItems(_objectSpread__default['default']({
1014
+ var _useItems = useItems(_objectSpread__default["default"]({
960
1015
  getPage: page !== null ? getItems : null,
961
1016
  getItems: page === null ? getItems : null,
962
1017
  page: page
963
1018
  }, opts)),
964
1019
  items = _useItems.items,
965
1020
  pageItems = _useItems.pageItems,
966
- request = _objectWithoutProperties__default['default'](_useItems, ["items", "pageItems"]);
1021
+ request = _objectWithoutProperties__default["default"](_useItems, _excluded);
967
1022
 
968
- return _objectSpread__default['default']({
1023
+ return _objectSpread__default["default"]({
969
1024
  items: page !== null ? pageItems : items,
970
1025
  allItems: items
971
1026
  }, request);
@@ -973,7 +1028,7 @@ var useResourceItems = function useResourceItems(resource) {
973
1028
 
974
1029
  var useResourceCreate = function useResourceCreate(resource) {
975
1030
  var _useState = React.useState(false),
976
- _useState2 = _slicedToArray__default['default'](_useState, 2),
1031
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
977
1032
  loading = _useState2[0],
978
1033
  setLoading = _useState2[1];
979
1034
 
@@ -996,7 +1051,7 @@ var useResourceCreate = function useResourceCreate(resource) {
996
1051
 
997
1052
  var useResourceUpdate = function useResourceUpdate(resource, id) {
998
1053
  var _useState = React.useState(false),
999
- _useState2 = _slicedToArray__default['default'](_useState, 2),
1054
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1000
1055
  loading = _useState2[0],
1001
1056
  setLoading = _useState2[1];
1002
1057
 
@@ -1019,9 +1074,9 @@ var useResourceUpdate = function useResourceUpdate(resource, id) {
1019
1074
 
1020
1075
  /* eslint-disable react/jsx-props-no-spreading */
1021
1076
  var propTypes = {
1022
- api: PropTypes__default['default'].instanceOf(Api),
1023
- apiBaseUrl: PropTypes__default['default'].string,
1024
- children: PropTypes__default['default'].node
1077
+ api: PropTypes__default["default"].instanceOf(Api),
1078
+ apiBaseUrl: PropTypes__default["default"].string,
1079
+ children: PropTypes__default["default"].node
1025
1080
  };
1026
1081
  var defaultProps = {
1027
1082
  api: null,
@@ -1033,7 +1088,7 @@ var DataProvider = function DataProvider(_ref) {
1033
1088
  var api = _ref.api,
1034
1089
  apiBaseUrl = _ref.apiBaseUrl,
1035
1090
  children = _ref.children;
1036
- return /*#__PURE__*/React__default['default'].createElement(ApiProvider, {
1091
+ return /*#__PURE__*/React__default["default"].createElement(ApiProvider, {
1037
1092
  api: api,
1038
1093
  baseUrl: apiBaseUrl
1039
1094
  }, children);
@@ -1055,7 +1110,7 @@ exports.useMediaTags = useMediaTags;
1055
1110
  exports.useMediaUpdate = useMediaUpdate;
1056
1111
  exports.useMedias = useMedias;
1057
1112
  exports.useMediasRecentSearches = useMediasRecent;
1058
- exports.useResourceDestroy = useResourceUpdate$1;
1113
+ exports.useResourceDestroy = useResourceDestroy;
1059
1114
  exports.useResourceItem = useResourceItem;
1060
1115
  exports.useResourceItems = useResourceItems;
1061
1116
  exports.useResourceStore = useResourceCreate;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/data",
3
- "version": "1.0.0-alpha.23",
3
+ "version": "1.0.0-alpha.231",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -44,17 +44,17 @@
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",
48
+ "react-dom": "^16.8.0 || ^17.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",
52
+ "react-dom": "^16.8.0 || ^17.0.0"
53
53
  },
54
54
  "dependencies": {
55
55
  "@babel/runtime": "^7.12.5",
56
56
  "@folklore/fetch": "^0.1.10",
57
- "@panneau/core": "^1.0.0-alpha.21",
57
+ "@panneau/core": "^1.0.0-alpha.231",
58
58
  "prop-types": "^15.7.2",
59
59
  "query-string": "^7.0.0",
60
60
  "react-router": "^5.2.0"
@@ -62,5 +62,5 @@
62
62
  "publishConfig": {
63
63
  "access": "public"
64
64
  },
65
- "gitHead": "9fd9f8d6d7d7e574d3b9e4cbb01022e3abcbb9a6"
65
+ "gitHead": "74eccc596298a471a8985fe2cccf4a201dd18349"
66
66
  }