@micromag/data 0.3.329 → 0.3.332
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.
- package/es/index.js +211 -32
- package/lib/index.js +211 -31
- package/package.json +4 -3
package/es/index.js
CHANGED
|
@@ -8,9 +8,10 @@ import _inherits from '@babel/runtime/helpers/inherits';
|
|
|
8
8
|
import _createSuper from '@babel/runtime/helpers/createSuper';
|
|
9
9
|
import { getJSON, getCSRFHeaders, postJSON } from '@folklore/fetch';
|
|
10
10
|
import { generatePath } from 'react-router';
|
|
11
|
-
import { stringify } from 'query-string';
|
|
11
|
+
import { stringify, parse } from 'query-string';
|
|
12
12
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
13
13
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
14
|
+
import isString from 'lodash/isString';
|
|
14
15
|
import { useVisitor, useStory } from '@micromag/core/contexts';
|
|
15
16
|
|
|
16
17
|
var Base = /*#__PURE__*/function () {
|
|
@@ -193,10 +194,10 @@ var MediasApi = /*#__PURE__*/function (_Base) {
|
|
|
193
194
|
}
|
|
194
195
|
}, {
|
|
195
196
|
key: "delete",
|
|
196
|
-
value: function _delete(id) {
|
|
197
|
+
value: function _delete(id, data) {
|
|
197
198
|
return this.requestDelete(this.route('delete', {
|
|
198
199
|
media: id
|
|
199
|
-
}));
|
|
200
|
+
}), data);
|
|
200
201
|
}
|
|
201
202
|
}]);
|
|
202
203
|
return MediasApi;
|
|
@@ -368,7 +369,7 @@ var useData = function useData(loadData) {
|
|
|
368
369
|
};
|
|
369
370
|
};
|
|
370
371
|
|
|
371
|
-
var _excluded$
|
|
372
|
+
var _excluded$3 = ["data"];
|
|
372
373
|
var useContributions = function useContributions() {
|
|
373
374
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
374
375
|
screenId = _ref.screenId,
|
|
@@ -390,13 +391,13 @@ var useContributions = function useContributions() {
|
|
|
390
391
|
data: null
|
|
391
392
|
},
|
|
392
393
|
data = _ref2.data,
|
|
393
|
-
request = _objectWithoutProperties(_ref2, _excluded$
|
|
394
|
+
request = _objectWithoutProperties(_ref2, _excluded$3);
|
|
394
395
|
return _objectSpread({
|
|
395
396
|
contributions: data || defaultContributions
|
|
396
397
|
}, request);
|
|
397
398
|
};
|
|
398
399
|
|
|
399
|
-
var useItems = function useItems(_ref) {
|
|
400
|
+
var useItems$1 = function useItems(_ref) {
|
|
400
401
|
var _ref$getPage = _ref.getPage,
|
|
401
402
|
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
402
403
|
_ref$getItems = _ref.getItems,
|
|
@@ -608,7 +609,7 @@ var useItems = function useItems(_ref) {
|
|
|
608
609
|
};
|
|
609
610
|
};
|
|
610
611
|
|
|
611
|
-
var _excluded$
|
|
612
|
+
var _excluded$2 = ["data"];
|
|
612
613
|
var useMedia = function useMedia(id, opts) {
|
|
613
614
|
var api = useApi();
|
|
614
615
|
var loader = useCallback(function () {
|
|
@@ -616,7 +617,7 @@ var useMedia = function useMedia(id, opts) {
|
|
|
616
617
|
}, [api, id]);
|
|
617
618
|
var _useData = useData(loader, opts),
|
|
618
619
|
data = _useData.data,
|
|
619
|
-
request = _objectWithoutProperties(_useData, _excluded$
|
|
620
|
+
request = _objectWithoutProperties(_useData, _excluded$2);
|
|
620
621
|
return _objectSpread({
|
|
621
622
|
story: data
|
|
622
623
|
}, request);
|
|
@@ -660,30 +661,205 @@ var useMediaCreate = function useMediaCreate() {
|
|
|
660
661
|
};
|
|
661
662
|
};
|
|
662
663
|
|
|
663
|
-
var
|
|
664
|
+
var useItems = function useItems(_ref) {
|
|
665
|
+
var _ref$getPage = _ref.getPage,
|
|
666
|
+
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
667
|
+
_ref$page = _ref.page,
|
|
668
|
+
page = _ref$page === void 0 ? 1 : _ref$page,
|
|
669
|
+
_ref$count = _ref.count,
|
|
670
|
+
count = _ref$count === void 0 ? 10 : _ref$count,
|
|
671
|
+
_ref$query = _ref.query,
|
|
672
|
+
pageQuery = _ref$query === void 0 ? null : _ref$query,
|
|
673
|
+
_ref$pages = _ref.pages,
|
|
674
|
+
startingPages = _ref$pages === void 0 ? null : _ref$pages,
|
|
675
|
+
_ref$getPageFromRespo = _ref.getPageFromResponse,
|
|
676
|
+
getPageFromResponse = _ref$getPageFromRespo === void 0 ? function (newPage) {
|
|
677
|
+
return newPage;
|
|
678
|
+
} : _ref$getPageFromRespo,
|
|
679
|
+
_ref$getPagination = _ref.getPagination,
|
|
680
|
+
getPagination = _ref$getPagination === void 0 ? function () {
|
|
681
|
+
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
682
|
+
cp = _ref2.current_page,
|
|
683
|
+
pp = _ref2.per_page,
|
|
684
|
+
lp = _ref2.last_page,
|
|
685
|
+
total = _ref2.total;
|
|
686
|
+
return {
|
|
687
|
+
pageNumber: cp,
|
|
688
|
+
pageCount: pp,
|
|
689
|
+
lastPage: lp,
|
|
690
|
+
total: total
|
|
691
|
+
};
|
|
692
|
+
} : _ref$getPagination,
|
|
693
|
+
_ref$onLoaded = _ref.onLoaded,
|
|
694
|
+
onLoaded = _ref$onLoaded === void 0 ? null : _ref$onLoaded,
|
|
695
|
+
_ref$onError = _ref.onError,
|
|
696
|
+
onError = _ref$onError === void 0 ? null : _ref$onError;
|
|
697
|
+
// Pagination
|
|
698
|
+
var _useState = useState(page !== null),
|
|
699
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
700
|
+
paginated = _useState2[0],
|
|
701
|
+
setPaginated = _useState2[1];
|
|
702
|
+
var _useState3 = useState(null),
|
|
703
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
704
|
+
pagination = _useState4[0],
|
|
705
|
+
setPagination = _useState4[1];
|
|
706
|
+
var _getPagination = getPagination(pagination || {}),
|
|
707
|
+
_getPagination$pageNu = _getPagination.pageNumber,
|
|
708
|
+
pageNumber = _getPagination$pageNu === void 0 ? page : _getPagination$pageNu,
|
|
709
|
+
_getPagination$pageCo = _getPagination.pageCount,
|
|
710
|
+
pageCount = _getPagination$pageCo === void 0 ? count : _getPagination$pageCo,
|
|
711
|
+
_getPagination$lastPa = _getPagination.lastPage,
|
|
712
|
+
lastPage = _getPagination$lastPa === void 0 ? null : _getPagination$lastPa,
|
|
713
|
+
_getPagination$total = _getPagination.total,
|
|
714
|
+
total = _getPagination$total === void 0 ? null : _getPagination$total;
|
|
715
|
+
var _useMemo = useMemo(function () {
|
|
716
|
+
return (startingPages || []).reduce(function (paginatedData, it) {
|
|
717
|
+
var _ref3 = it || {},
|
|
718
|
+
items = _ref3.data,
|
|
719
|
+
currentPagination = _ref3.pagination;
|
|
720
|
+
// eslint-disable-next-line no-param-reassign
|
|
721
|
+
paginatedData.data = paginatedData.data.concat(items);
|
|
722
|
+
// eslint-disable-next-line no-param-reassign
|
|
723
|
+
paginatedData.pagination = currentPagination;
|
|
724
|
+
return paginatedData;
|
|
725
|
+
}, {
|
|
726
|
+
data: [],
|
|
727
|
+
pagination: {}
|
|
728
|
+
});
|
|
729
|
+
}, [startingPages]),
|
|
730
|
+
initialPages = _useMemo.data,
|
|
731
|
+
initialPagination = _useMemo.pagination;
|
|
732
|
+
var _useState5 = useState(startingPages === null),
|
|
733
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
734
|
+
canLoad = _useState6[0],
|
|
735
|
+
setCanLoad = _useState6[1];
|
|
736
|
+
var _useState7 = useState(false),
|
|
737
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
738
|
+
loading = _useState8[0],
|
|
739
|
+
setLoading = _useState8[1];
|
|
740
|
+
|
|
741
|
+
// Query
|
|
742
|
+
var query = useMemo(function () {
|
|
743
|
+
return _objectSpread({}, isString(pageQuery) ? parse(pageQuery || null, {
|
|
744
|
+
arrayFormat: 'bracket'
|
|
745
|
+
}) : pageQuery);
|
|
746
|
+
}, [pageQuery]);
|
|
747
|
+
|
|
748
|
+
// Items
|
|
749
|
+
var _useState9 = useState(null),
|
|
750
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
751
|
+
items = _useState10[0],
|
|
752
|
+
setItems = _useState10[1];
|
|
753
|
+
var getPages = useCallback(function (newQuery, newPageNumber, newPageCount) {
|
|
754
|
+
return getPage(newQuery, newPageNumber, newPageCount);
|
|
755
|
+
}, [getPage]);
|
|
756
|
+
|
|
757
|
+
// Api has changed, reset to beginning
|
|
758
|
+
useEffect(function () {
|
|
759
|
+
setItems(initialPages);
|
|
760
|
+
setPagination(initialPagination);
|
|
761
|
+
}, [getPages, setItems, setPagination]);
|
|
762
|
+
useEffect(function () {
|
|
763
|
+
// console.log('try to load');
|
|
764
|
+
if (!canLoad || loading || lastPage !== null && pageNumber > lastPage) {
|
|
765
|
+
// console.log('skips loading');
|
|
766
|
+
return;
|
|
767
|
+
}
|
|
768
|
+
// console.log('actually load', query, pageNumber, pageCount);
|
|
769
|
+
setLoading(true);
|
|
770
|
+
setCanLoad(false);
|
|
771
|
+
// TODO: make this a cancellable promise
|
|
772
|
+
getPages(query, pageNumber, pageCount).then(function (response) {
|
|
773
|
+
return getPageFromResponse(response);
|
|
774
|
+
}).then(function (response) {
|
|
775
|
+
var _ref4 = response || {},
|
|
776
|
+
_ref4$data = _ref4.data,
|
|
777
|
+
data = _ref4$data === void 0 ? null : _ref4$data,
|
|
778
|
+
_ref4$meta = _ref4.meta,
|
|
779
|
+
meta = _ref4$meta === void 0 ? null : _ref4$meta;
|
|
780
|
+
// console.log('response --- ', response);
|
|
781
|
+
// This is not a paginated list so we dont care anymore
|
|
782
|
+
if (data === null && meta === null) {
|
|
783
|
+
setItems(response);
|
|
784
|
+
setPaginated(false);
|
|
785
|
+
} else {
|
|
786
|
+
setItems(function (old) {
|
|
787
|
+
return [].concat(_toConsumableArray(old || null), _toConsumableArray(data));
|
|
788
|
+
});
|
|
789
|
+
setPagination(meta);
|
|
790
|
+
setPaginated(true);
|
|
791
|
+
}
|
|
792
|
+
return response;
|
|
793
|
+
}).then(function (response) {
|
|
794
|
+
setLoading(false);
|
|
795
|
+
if (onLoaded !== null) {
|
|
796
|
+
onLoaded(response);
|
|
797
|
+
}
|
|
798
|
+
})["catch"](function (e) {
|
|
799
|
+
// Error is real
|
|
800
|
+
setLoading(false);
|
|
801
|
+
if (onError !== null) {
|
|
802
|
+
onError(e);
|
|
803
|
+
}
|
|
804
|
+
});
|
|
805
|
+
}, [query, pageNumber, canLoad, getPages, setLoading, setItems, setPagination, onLoaded, onError]);
|
|
806
|
+
var reset = useCallback(function () {
|
|
807
|
+
setItems([]);
|
|
808
|
+
setPagination(null);
|
|
809
|
+
setCanLoad(true);
|
|
810
|
+
}, [setItems, setPagination, setCanLoad]);
|
|
811
|
+
|
|
812
|
+
// Resets the game, "natural" refresh
|
|
813
|
+
var onQueryChange = useEffect(function () {
|
|
814
|
+
reset();
|
|
815
|
+
}, [query, page, count, reset]);
|
|
816
|
+
|
|
817
|
+
// Handle to Load next
|
|
818
|
+
var loadNextPage = useCallback(function () {
|
|
819
|
+
if (!loading && pageNumber < lastPage) {
|
|
820
|
+
var params = _objectSpread(_objectSpread({}, pagination), {}, {
|
|
821
|
+
current_page: pageNumber + 1,
|
|
822
|
+
per_page: pageCount
|
|
823
|
+
});
|
|
824
|
+
setPagination(params);
|
|
825
|
+
setCanLoad(true);
|
|
826
|
+
}
|
|
827
|
+
}, [query, pagination, pageNumber, pageCount, loading, lastPage, onQueryChange, setCanLoad]);
|
|
828
|
+
var disabled = (items || []).length === 0 || loading || pageNumber >= lastPage || lastPage === null || lastPage === 1;
|
|
829
|
+
var regularLoaded = !paginated && items !== null;
|
|
830
|
+
var paginatedLoaded = !loading && items !== null && (items.length === total || pageNumber >= lastPage);
|
|
831
|
+
return {
|
|
832
|
+
items: items,
|
|
833
|
+
total: total,
|
|
834
|
+
page: pageNumber,
|
|
835
|
+
count: pageCount,
|
|
836
|
+
lastPage: lastPage,
|
|
837
|
+
loading: loading,
|
|
838
|
+
loaded: !loading,
|
|
839
|
+
allLoaded: regularLoaded || paginatedLoaded,
|
|
840
|
+
disabled: disabled,
|
|
841
|
+
loadNextPage: loadNextPage,
|
|
842
|
+
reset: reset
|
|
843
|
+
};
|
|
844
|
+
};
|
|
845
|
+
|
|
664
846
|
var useMedias = function useMedias() {
|
|
665
847
|
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
666
|
-
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
667
|
-
var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] :
|
|
848
|
+
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
849
|
+
var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
668
850
|
var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
669
851
|
var api = useApi();
|
|
670
|
-
var
|
|
671
|
-
var requestedPage = arguments.length >
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
request = _objectWithoutProperties(_useItems, _excluded$2);
|
|
682
|
-
// console.log('medias', items);
|
|
683
|
-
return _objectSpread({
|
|
684
|
-
medias: page !== null ? pageItems : items,
|
|
685
|
-
allMedias: items
|
|
686
|
-
}, request);
|
|
852
|
+
var getPage = useCallback(function (newQuery) {
|
|
853
|
+
var requestedPage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
854
|
+
var requestedCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
855
|
+
return api.medias.get(newQuery, requestedPage, requestedCount);
|
|
856
|
+
}, [api]);
|
|
857
|
+
return useItems(_objectSpread({
|
|
858
|
+
getPage: getPage,
|
|
859
|
+
query: query,
|
|
860
|
+
page: page,
|
|
861
|
+
count: count
|
|
862
|
+
}, opts));
|
|
687
863
|
};
|
|
688
864
|
|
|
689
865
|
var useMediasRecent = function useMediasRecent(opts) {
|
|
@@ -722,7 +898,7 @@ var useMediaTags = function useMediaTags() {
|
|
|
722
898
|
var getItems = useCallback(function () {
|
|
723
899
|
return api.medias.getTags(query, count);
|
|
724
900
|
}, [api, query, count]);
|
|
725
|
-
var _useItems = useItems(_objectSpread({
|
|
901
|
+
var _useItems = useItems$1(_objectSpread({
|
|
726
902
|
getItems: getItems
|
|
727
903
|
}, opts)),
|
|
728
904
|
items = _useItems.items;
|
|
@@ -758,9 +934,12 @@ var useMediaDelete = function useMediaDelete() {
|
|
|
758
934
|
deleting = _useState2[0],
|
|
759
935
|
setDeleting = _useState2[1];
|
|
760
936
|
var api = useApi();
|
|
761
|
-
var deleteMedia = useCallback(function (id
|
|
937
|
+
var deleteMedia = useCallback(function (id) {
|
|
938
|
+
var confirm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
762
939
|
setDeleting(true);
|
|
763
|
-
return api.medias["delete"](id,
|
|
940
|
+
return api.medias["delete"](id, {
|
|
941
|
+
confirm: confirm
|
|
942
|
+
}).then(function (response) {
|
|
764
943
|
setDeleting(false);
|
|
765
944
|
return response;
|
|
766
945
|
});
|
|
@@ -855,4 +1034,4 @@ var DataProvider = function DataProvider(_ref) {
|
|
|
855
1034
|
DataProvider.propTypes = propTypes;
|
|
856
1035
|
DataProvider.defaultProps = defaultProps;
|
|
857
1036
|
|
|
858
|
-
export { Api, ApiProvider, Base as BaseApi, DataProvider, useApi, useContributionCreate, useContributions, useData, useItems, useMedia, useMediaAuthors, useMediaCreate, useMediaDelete, useMediaTags, useMediaUpdate, useMedias, useMediasRecent as useMediasRecentSearches, useQuiz, useQuizCreate };
|
|
1037
|
+
export { Api, ApiProvider, Base as BaseApi, DataProvider, useApi, useContributionCreate, useContributions, useData, useItems$1 as useItems, useMedia, useMediaAuthors, useMediaCreate, useMediaDelete, useMediaTags, useMediaUpdate, useMedias, useMediasRecent as useMediasRecentSearches, useQuiz, useQuizCreate };
|
package/lib/index.js
CHANGED
|
@@ -15,6 +15,7 @@ var reactRouter = require('react-router');
|
|
|
15
15
|
var queryString = require('query-string');
|
|
16
16
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
17
17
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
18
|
+
var isString = require('lodash/isString');
|
|
18
19
|
var contexts = require('@micromag/core/contexts');
|
|
19
20
|
|
|
20
21
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -29,6 +30,7 @@ var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
|
|
|
29
30
|
var _createSuper__default = /*#__PURE__*/_interopDefaultLegacy(_createSuper);
|
|
30
31
|
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
31
32
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
33
|
+
var isString__default = /*#__PURE__*/_interopDefaultLegacy(isString);
|
|
32
34
|
|
|
33
35
|
var Base = /*#__PURE__*/function () {
|
|
34
36
|
function Base() {
|
|
@@ -210,10 +212,10 @@ var MediasApi = /*#__PURE__*/function (_Base) {
|
|
|
210
212
|
}
|
|
211
213
|
}, {
|
|
212
214
|
key: "delete",
|
|
213
|
-
value: function _delete(id) {
|
|
215
|
+
value: function _delete(id, data) {
|
|
214
216
|
return this.requestDelete(this.route('delete', {
|
|
215
217
|
media: id
|
|
216
|
-
}));
|
|
218
|
+
}), data);
|
|
217
219
|
}
|
|
218
220
|
}]);
|
|
219
221
|
return MediasApi;
|
|
@@ -385,7 +387,7 @@ var useData = function useData(loadData) {
|
|
|
385
387
|
};
|
|
386
388
|
};
|
|
387
389
|
|
|
388
|
-
var _excluded$
|
|
390
|
+
var _excluded$3 = ["data"];
|
|
389
391
|
var useContributions = function useContributions() {
|
|
390
392
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
391
393
|
screenId = _ref.screenId,
|
|
@@ -407,13 +409,13 @@ var useContributions = function useContributions() {
|
|
|
407
409
|
data: null
|
|
408
410
|
},
|
|
409
411
|
data = _ref2.data,
|
|
410
|
-
request = _objectWithoutProperties__default["default"](_ref2, _excluded$
|
|
412
|
+
request = _objectWithoutProperties__default["default"](_ref2, _excluded$3);
|
|
411
413
|
return _objectSpread__default["default"]({
|
|
412
414
|
contributions: data || defaultContributions
|
|
413
415
|
}, request);
|
|
414
416
|
};
|
|
415
417
|
|
|
416
|
-
var useItems = function useItems(_ref) {
|
|
418
|
+
var useItems$1 = function useItems(_ref) {
|
|
417
419
|
var _ref$getPage = _ref.getPage,
|
|
418
420
|
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
419
421
|
_ref$getItems = _ref.getItems,
|
|
@@ -625,7 +627,7 @@ var useItems = function useItems(_ref) {
|
|
|
625
627
|
};
|
|
626
628
|
};
|
|
627
629
|
|
|
628
|
-
var _excluded$
|
|
630
|
+
var _excluded$2 = ["data"];
|
|
629
631
|
var useMedia = function useMedia(id, opts) {
|
|
630
632
|
var api = useApi();
|
|
631
633
|
var loader = React.useCallback(function () {
|
|
@@ -633,7 +635,7 @@ var useMedia = function useMedia(id, opts) {
|
|
|
633
635
|
}, [api, id]);
|
|
634
636
|
var _useData = useData(loader, opts),
|
|
635
637
|
data = _useData.data,
|
|
636
|
-
request = _objectWithoutProperties__default["default"](_useData, _excluded$
|
|
638
|
+
request = _objectWithoutProperties__default["default"](_useData, _excluded$2);
|
|
637
639
|
return _objectSpread__default["default"]({
|
|
638
640
|
story: data
|
|
639
641
|
}, request);
|
|
@@ -677,30 +679,205 @@ var useMediaCreate = function useMediaCreate() {
|
|
|
677
679
|
};
|
|
678
680
|
};
|
|
679
681
|
|
|
680
|
-
var
|
|
682
|
+
var useItems = function useItems(_ref) {
|
|
683
|
+
var _ref$getPage = _ref.getPage,
|
|
684
|
+
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
685
|
+
_ref$page = _ref.page,
|
|
686
|
+
page = _ref$page === void 0 ? 1 : _ref$page,
|
|
687
|
+
_ref$count = _ref.count,
|
|
688
|
+
count = _ref$count === void 0 ? 10 : _ref$count,
|
|
689
|
+
_ref$query = _ref.query,
|
|
690
|
+
pageQuery = _ref$query === void 0 ? null : _ref$query,
|
|
691
|
+
_ref$pages = _ref.pages,
|
|
692
|
+
startingPages = _ref$pages === void 0 ? null : _ref$pages,
|
|
693
|
+
_ref$getPageFromRespo = _ref.getPageFromResponse,
|
|
694
|
+
getPageFromResponse = _ref$getPageFromRespo === void 0 ? function (newPage) {
|
|
695
|
+
return newPage;
|
|
696
|
+
} : _ref$getPageFromRespo,
|
|
697
|
+
_ref$getPagination = _ref.getPagination,
|
|
698
|
+
getPagination = _ref$getPagination === void 0 ? function () {
|
|
699
|
+
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
700
|
+
cp = _ref2.current_page,
|
|
701
|
+
pp = _ref2.per_page,
|
|
702
|
+
lp = _ref2.last_page,
|
|
703
|
+
total = _ref2.total;
|
|
704
|
+
return {
|
|
705
|
+
pageNumber: cp,
|
|
706
|
+
pageCount: pp,
|
|
707
|
+
lastPage: lp,
|
|
708
|
+
total: total
|
|
709
|
+
};
|
|
710
|
+
} : _ref$getPagination,
|
|
711
|
+
_ref$onLoaded = _ref.onLoaded,
|
|
712
|
+
onLoaded = _ref$onLoaded === void 0 ? null : _ref$onLoaded,
|
|
713
|
+
_ref$onError = _ref.onError,
|
|
714
|
+
onError = _ref$onError === void 0 ? null : _ref$onError;
|
|
715
|
+
// Pagination
|
|
716
|
+
var _useState = React.useState(page !== null),
|
|
717
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
718
|
+
paginated = _useState2[0],
|
|
719
|
+
setPaginated = _useState2[1];
|
|
720
|
+
var _useState3 = React.useState(null),
|
|
721
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
722
|
+
pagination = _useState4[0],
|
|
723
|
+
setPagination = _useState4[1];
|
|
724
|
+
var _getPagination = getPagination(pagination || {}),
|
|
725
|
+
_getPagination$pageNu = _getPagination.pageNumber,
|
|
726
|
+
pageNumber = _getPagination$pageNu === void 0 ? page : _getPagination$pageNu,
|
|
727
|
+
_getPagination$pageCo = _getPagination.pageCount,
|
|
728
|
+
pageCount = _getPagination$pageCo === void 0 ? count : _getPagination$pageCo,
|
|
729
|
+
_getPagination$lastPa = _getPagination.lastPage,
|
|
730
|
+
lastPage = _getPagination$lastPa === void 0 ? null : _getPagination$lastPa,
|
|
731
|
+
_getPagination$total = _getPagination.total,
|
|
732
|
+
total = _getPagination$total === void 0 ? null : _getPagination$total;
|
|
733
|
+
var _useMemo = React.useMemo(function () {
|
|
734
|
+
return (startingPages || []).reduce(function (paginatedData, it) {
|
|
735
|
+
var _ref3 = it || {},
|
|
736
|
+
items = _ref3.data,
|
|
737
|
+
currentPagination = _ref3.pagination;
|
|
738
|
+
// eslint-disable-next-line no-param-reassign
|
|
739
|
+
paginatedData.data = paginatedData.data.concat(items);
|
|
740
|
+
// eslint-disable-next-line no-param-reassign
|
|
741
|
+
paginatedData.pagination = currentPagination;
|
|
742
|
+
return paginatedData;
|
|
743
|
+
}, {
|
|
744
|
+
data: [],
|
|
745
|
+
pagination: {}
|
|
746
|
+
});
|
|
747
|
+
}, [startingPages]),
|
|
748
|
+
initialPages = _useMemo.data,
|
|
749
|
+
initialPagination = _useMemo.pagination;
|
|
750
|
+
var _useState5 = React.useState(startingPages === null),
|
|
751
|
+
_useState6 = _slicedToArray__default["default"](_useState5, 2),
|
|
752
|
+
canLoad = _useState6[0],
|
|
753
|
+
setCanLoad = _useState6[1];
|
|
754
|
+
var _useState7 = React.useState(false),
|
|
755
|
+
_useState8 = _slicedToArray__default["default"](_useState7, 2),
|
|
756
|
+
loading = _useState8[0],
|
|
757
|
+
setLoading = _useState8[1];
|
|
758
|
+
|
|
759
|
+
// Query
|
|
760
|
+
var query = React.useMemo(function () {
|
|
761
|
+
return _objectSpread__default["default"]({}, isString__default["default"](pageQuery) ? queryString.parse(pageQuery || null, {
|
|
762
|
+
arrayFormat: 'bracket'
|
|
763
|
+
}) : pageQuery);
|
|
764
|
+
}, [pageQuery]);
|
|
765
|
+
|
|
766
|
+
// Items
|
|
767
|
+
var _useState9 = React.useState(null),
|
|
768
|
+
_useState10 = _slicedToArray__default["default"](_useState9, 2),
|
|
769
|
+
items = _useState10[0],
|
|
770
|
+
setItems = _useState10[1];
|
|
771
|
+
var getPages = React.useCallback(function (newQuery, newPageNumber, newPageCount) {
|
|
772
|
+
return getPage(newQuery, newPageNumber, newPageCount);
|
|
773
|
+
}, [getPage]);
|
|
774
|
+
|
|
775
|
+
// Api has changed, reset to beginning
|
|
776
|
+
React.useEffect(function () {
|
|
777
|
+
setItems(initialPages);
|
|
778
|
+
setPagination(initialPagination);
|
|
779
|
+
}, [getPages, setItems, setPagination]);
|
|
780
|
+
React.useEffect(function () {
|
|
781
|
+
// console.log('try to load');
|
|
782
|
+
if (!canLoad || loading || lastPage !== null && pageNumber > lastPage) {
|
|
783
|
+
// console.log('skips loading');
|
|
784
|
+
return;
|
|
785
|
+
}
|
|
786
|
+
// console.log('actually load', query, pageNumber, pageCount);
|
|
787
|
+
setLoading(true);
|
|
788
|
+
setCanLoad(false);
|
|
789
|
+
// TODO: make this a cancellable promise
|
|
790
|
+
getPages(query, pageNumber, pageCount).then(function (response) {
|
|
791
|
+
return getPageFromResponse(response);
|
|
792
|
+
}).then(function (response) {
|
|
793
|
+
var _ref4 = response || {},
|
|
794
|
+
_ref4$data = _ref4.data,
|
|
795
|
+
data = _ref4$data === void 0 ? null : _ref4$data,
|
|
796
|
+
_ref4$meta = _ref4.meta,
|
|
797
|
+
meta = _ref4$meta === void 0 ? null : _ref4$meta;
|
|
798
|
+
// console.log('response --- ', response);
|
|
799
|
+
// This is not a paginated list so we dont care anymore
|
|
800
|
+
if (data === null && meta === null) {
|
|
801
|
+
setItems(response);
|
|
802
|
+
setPaginated(false);
|
|
803
|
+
} else {
|
|
804
|
+
setItems(function (old) {
|
|
805
|
+
return [].concat(_toConsumableArray__default["default"](old || null), _toConsumableArray__default["default"](data));
|
|
806
|
+
});
|
|
807
|
+
setPagination(meta);
|
|
808
|
+
setPaginated(true);
|
|
809
|
+
}
|
|
810
|
+
return response;
|
|
811
|
+
}).then(function (response) {
|
|
812
|
+
setLoading(false);
|
|
813
|
+
if (onLoaded !== null) {
|
|
814
|
+
onLoaded(response);
|
|
815
|
+
}
|
|
816
|
+
})["catch"](function (e) {
|
|
817
|
+
// Error is real
|
|
818
|
+
setLoading(false);
|
|
819
|
+
if (onError !== null) {
|
|
820
|
+
onError(e);
|
|
821
|
+
}
|
|
822
|
+
});
|
|
823
|
+
}, [query, pageNumber, canLoad, getPages, setLoading, setItems, setPagination, onLoaded, onError]);
|
|
824
|
+
var reset = React.useCallback(function () {
|
|
825
|
+
setItems([]);
|
|
826
|
+
setPagination(null);
|
|
827
|
+
setCanLoad(true);
|
|
828
|
+
}, [setItems, setPagination, setCanLoad]);
|
|
829
|
+
|
|
830
|
+
// Resets the game, "natural" refresh
|
|
831
|
+
var onQueryChange = React.useEffect(function () {
|
|
832
|
+
reset();
|
|
833
|
+
}, [query, page, count, reset]);
|
|
834
|
+
|
|
835
|
+
// Handle to Load next
|
|
836
|
+
var loadNextPage = React.useCallback(function () {
|
|
837
|
+
if (!loading && pageNumber < lastPage) {
|
|
838
|
+
var params = _objectSpread__default["default"](_objectSpread__default["default"]({}, pagination), {}, {
|
|
839
|
+
current_page: pageNumber + 1,
|
|
840
|
+
per_page: pageCount
|
|
841
|
+
});
|
|
842
|
+
setPagination(params);
|
|
843
|
+
setCanLoad(true);
|
|
844
|
+
}
|
|
845
|
+
}, [query, pagination, pageNumber, pageCount, loading, lastPage, onQueryChange, setCanLoad]);
|
|
846
|
+
var disabled = (items || []).length === 0 || loading || pageNumber >= lastPage || lastPage === null || lastPage === 1;
|
|
847
|
+
var regularLoaded = !paginated && items !== null;
|
|
848
|
+
var paginatedLoaded = !loading && items !== null && (items.length === total || pageNumber >= lastPage);
|
|
849
|
+
return {
|
|
850
|
+
items: items,
|
|
851
|
+
total: total,
|
|
852
|
+
page: pageNumber,
|
|
853
|
+
count: pageCount,
|
|
854
|
+
lastPage: lastPage,
|
|
855
|
+
loading: loading,
|
|
856
|
+
loaded: !loading,
|
|
857
|
+
allLoaded: regularLoaded || paginatedLoaded,
|
|
858
|
+
disabled: disabled,
|
|
859
|
+
loadNextPage: loadNextPage,
|
|
860
|
+
reset: reset
|
|
861
|
+
};
|
|
862
|
+
};
|
|
863
|
+
|
|
681
864
|
var useMedias = function useMedias() {
|
|
682
865
|
var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
683
|
-
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] :
|
|
684
|
-
var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] :
|
|
866
|
+
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
867
|
+
var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
685
868
|
var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
686
869
|
var api = useApi();
|
|
687
|
-
var
|
|
688
|
-
var requestedPage = arguments.length >
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
request = _objectWithoutProperties__default["default"](_useItems, _excluded$2);
|
|
699
|
-
// console.log('medias', items);
|
|
700
|
-
return _objectSpread__default["default"]({
|
|
701
|
-
medias: page !== null ? pageItems : items,
|
|
702
|
-
allMedias: items
|
|
703
|
-
}, request);
|
|
870
|
+
var getPage = React.useCallback(function (newQuery) {
|
|
871
|
+
var requestedPage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
872
|
+
var requestedCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
873
|
+
return api.medias.get(newQuery, requestedPage, requestedCount);
|
|
874
|
+
}, [api]);
|
|
875
|
+
return useItems(_objectSpread__default["default"]({
|
|
876
|
+
getPage: getPage,
|
|
877
|
+
query: query,
|
|
878
|
+
page: page,
|
|
879
|
+
count: count
|
|
880
|
+
}, opts));
|
|
704
881
|
};
|
|
705
882
|
|
|
706
883
|
var useMediasRecent = function useMediasRecent(opts) {
|
|
@@ -739,7 +916,7 @@ var useMediaTags = function useMediaTags() {
|
|
|
739
916
|
var getItems = React.useCallback(function () {
|
|
740
917
|
return api.medias.getTags(query, count);
|
|
741
918
|
}, [api, query, count]);
|
|
742
|
-
var _useItems = useItems(_objectSpread__default["default"]({
|
|
919
|
+
var _useItems = useItems$1(_objectSpread__default["default"]({
|
|
743
920
|
getItems: getItems
|
|
744
921
|
}, opts)),
|
|
745
922
|
items = _useItems.items;
|
|
@@ -775,9 +952,12 @@ var useMediaDelete = function useMediaDelete() {
|
|
|
775
952
|
deleting = _useState2[0],
|
|
776
953
|
setDeleting = _useState2[1];
|
|
777
954
|
var api = useApi();
|
|
778
|
-
var deleteMedia = React.useCallback(function (id
|
|
955
|
+
var deleteMedia = React.useCallback(function (id) {
|
|
956
|
+
var confirm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
779
957
|
setDeleting(true);
|
|
780
|
-
return api.medias["delete"](id,
|
|
958
|
+
return api.medias["delete"](id, {
|
|
959
|
+
confirm: confirm
|
|
960
|
+
}).then(function (response) {
|
|
781
961
|
setDeleting(false);
|
|
782
962
|
return response;
|
|
783
963
|
});
|
|
@@ -880,7 +1060,7 @@ exports.useApi = useApi;
|
|
|
880
1060
|
exports.useContributionCreate = useContributionCreate;
|
|
881
1061
|
exports.useContributions = useContributions;
|
|
882
1062
|
exports.useData = useData;
|
|
883
|
-
exports.useItems = useItems;
|
|
1063
|
+
exports.useItems = useItems$1;
|
|
884
1064
|
exports.useMedia = useMedia;
|
|
885
1065
|
exports.useMediaAuthors = useMediaAuthors;
|
|
886
1066
|
exports.useMediaCreate = useMediaCreate;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/data",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.332",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript"
|
|
@@ -50,7 +50,8 @@
|
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@babel/runtime": "^7.13.10",
|
|
52
52
|
"@folklore/fetch": "^0.1.15",
|
|
53
|
-
"@micromag/core": "^0.3.
|
|
53
|
+
"@micromag/core": "^0.3.332",
|
|
54
|
+
"lodash": "^4.17.21",
|
|
54
55
|
"prop-types": "^15.7.2",
|
|
55
56
|
"query-string": "^6.13.7",
|
|
56
57
|
"react-router": "^5.2.0"
|
|
@@ -58,5 +59,5 @@
|
|
|
58
59
|
"publishConfig": {
|
|
59
60
|
"access": "public"
|
|
60
61
|
},
|
|
61
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "61fe137d589629d05127be69b667fc62f8ca1d18"
|
|
62
63
|
}
|