@micromag/data 0.3.329 → 0.3.334
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 +233 -30
- package/lib/index.js +234 -29
- 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 () {
|
|
@@ -128,6 +129,7 @@ var MediasApi = /*#__PURE__*/function (_Base) {
|
|
|
128
129
|
index: 'medias',
|
|
129
130
|
tags: 'medias/tags',
|
|
130
131
|
authors: 'medias/authors',
|
|
132
|
+
requestDelete: 'medias/requestDelete/:media',
|
|
131
133
|
show: 'medias/:media',
|
|
132
134
|
store: 'medias',
|
|
133
135
|
update: 'medias/:media',
|
|
@@ -191,6 +193,13 @@ var MediasApi = /*#__PURE__*/function (_Base) {
|
|
|
191
193
|
media: id
|
|
192
194
|
}), data);
|
|
193
195
|
}
|
|
196
|
+
}, {
|
|
197
|
+
key: "requestDeleteMedia",
|
|
198
|
+
value: function requestDeleteMedia(id) {
|
|
199
|
+
return this.requestPost(this.route('requestDelete', {
|
|
200
|
+
media: id
|
|
201
|
+
}));
|
|
202
|
+
}
|
|
194
203
|
}, {
|
|
195
204
|
key: "delete",
|
|
196
205
|
value: function _delete(id) {
|
|
@@ -368,7 +377,7 @@ var useData = function useData(loadData) {
|
|
|
368
377
|
};
|
|
369
378
|
};
|
|
370
379
|
|
|
371
|
-
var _excluded$
|
|
380
|
+
var _excluded$3 = ["data"];
|
|
372
381
|
var useContributions = function useContributions() {
|
|
373
382
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
374
383
|
screenId = _ref.screenId,
|
|
@@ -390,13 +399,13 @@ var useContributions = function useContributions() {
|
|
|
390
399
|
data: null
|
|
391
400
|
},
|
|
392
401
|
data = _ref2.data,
|
|
393
|
-
request = _objectWithoutProperties(_ref2, _excluded$
|
|
402
|
+
request = _objectWithoutProperties(_ref2, _excluded$3);
|
|
394
403
|
return _objectSpread({
|
|
395
404
|
contributions: data || defaultContributions
|
|
396
405
|
}, request);
|
|
397
406
|
};
|
|
398
407
|
|
|
399
|
-
var useItems = function useItems(_ref) {
|
|
408
|
+
var useItems$1 = function useItems(_ref) {
|
|
400
409
|
var _ref$getPage = _ref.getPage,
|
|
401
410
|
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
402
411
|
_ref$getItems = _ref.getItems,
|
|
@@ -608,7 +617,7 @@ var useItems = function useItems(_ref) {
|
|
|
608
617
|
};
|
|
609
618
|
};
|
|
610
619
|
|
|
611
|
-
var _excluded$
|
|
620
|
+
var _excluded$2 = ["data"];
|
|
612
621
|
var useMedia = function useMedia(id, opts) {
|
|
613
622
|
var api = useApi();
|
|
614
623
|
var loader = useCallback(function () {
|
|
@@ -616,7 +625,7 @@ var useMedia = function useMedia(id, opts) {
|
|
|
616
625
|
}, [api, id]);
|
|
617
626
|
var _useData = useData(loader, opts),
|
|
618
627
|
data = _useData.data,
|
|
619
|
-
request = _objectWithoutProperties(_useData, _excluded$
|
|
628
|
+
request = _objectWithoutProperties(_useData, _excluded$2);
|
|
620
629
|
return _objectSpread({
|
|
621
630
|
story: data
|
|
622
631
|
}, request);
|
|
@@ -660,30 +669,205 @@ var useMediaCreate = function useMediaCreate() {
|
|
|
660
669
|
};
|
|
661
670
|
};
|
|
662
671
|
|
|
663
|
-
var
|
|
672
|
+
var useItems = function useItems(_ref) {
|
|
673
|
+
var _ref$getPage = _ref.getPage,
|
|
674
|
+
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
675
|
+
_ref$page = _ref.page,
|
|
676
|
+
page = _ref$page === void 0 ? 1 : _ref$page,
|
|
677
|
+
_ref$count = _ref.count,
|
|
678
|
+
count = _ref$count === void 0 ? 10 : _ref$count,
|
|
679
|
+
_ref$query = _ref.query,
|
|
680
|
+
pageQuery = _ref$query === void 0 ? null : _ref$query,
|
|
681
|
+
_ref$pages = _ref.pages,
|
|
682
|
+
startingPages = _ref$pages === void 0 ? null : _ref$pages,
|
|
683
|
+
_ref$getPageFromRespo = _ref.getPageFromResponse,
|
|
684
|
+
getPageFromResponse = _ref$getPageFromRespo === void 0 ? function (newPage) {
|
|
685
|
+
return newPage;
|
|
686
|
+
} : _ref$getPageFromRespo,
|
|
687
|
+
_ref$getPagination = _ref.getPagination,
|
|
688
|
+
getPagination = _ref$getPagination === void 0 ? function () {
|
|
689
|
+
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
690
|
+
cp = _ref2.current_page,
|
|
691
|
+
pp = _ref2.per_page,
|
|
692
|
+
lp = _ref2.last_page,
|
|
693
|
+
total = _ref2.total;
|
|
694
|
+
return {
|
|
695
|
+
pageNumber: cp,
|
|
696
|
+
pageCount: pp,
|
|
697
|
+
lastPage: lp,
|
|
698
|
+
total: total
|
|
699
|
+
};
|
|
700
|
+
} : _ref$getPagination,
|
|
701
|
+
_ref$onLoaded = _ref.onLoaded,
|
|
702
|
+
onLoaded = _ref$onLoaded === void 0 ? null : _ref$onLoaded,
|
|
703
|
+
_ref$onError = _ref.onError,
|
|
704
|
+
onError = _ref$onError === void 0 ? null : _ref$onError;
|
|
705
|
+
// Pagination
|
|
706
|
+
var _useState = useState(page !== null),
|
|
707
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
708
|
+
paginated = _useState2[0],
|
|
709
|
+
setPaginated = _useState2[1];
|
|
710
|
+
var _useState3 = useState(null),
|
|
711
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
712
|
+
pagination = _useState4[0],
|
|
713
|
+
setPagination = _useState4[1];
|
|
714
|
+
var _getPagination = getPagination(pagination || {}),
|
|
715
|
+
_getPagination$pageNu = _getPagination.pageNumber,
|
|
716
|
+
pageNumber = _getPagination$pageNu === void 0 ? page : _getPagination$pageNu,
|
|
717
|
+
_getPagination$pageCo = _getPagination.pageCount,
|
|
718
|
+
pageCount = _getPagination$pageCo === void 0 ? count : _getPagination$pageCo,
|
|
719
|
+
_getPagination$lastPa = _getPagination.lastPage,
|
|
720
|
+
lastPage = _getPagination$lastPa === void 0 ? null : _getPagination$lastPa,
|
|
721
|
+
_getPagination$total = _getPagination.total,
|
|
722
|
+
total = _getPagination$total === void 0 ? null : _getPagination$total;
|
|
723
|
+
var _useMemo = useMemo(function () {
|
|
724
|
+
return (startingPages || []).reduce(function (paginatedData, it) {
|
|
725
|
+
var _ref3 = it || {},
|
|
726
|
+
items = _ref3.data,
|
|
727
|
+
currentPagination = _ref3.pagination;
|
|
728
|
+
// eslint-disable-next-line no-param-reassign
|
|
729
|
+
paginatedData.data = paginatedData.data.concat(items);
|
|
730
|
+
// eslint-disable-next-line no-param-reassign
|
|
731
|
+
paginatedData.pagination = currentPagination;
|
|
732
|
+
return paginatedData;
|
|
733
|
+
}, {
|
|
734
|
+
data: [],
|
|
735
|
+
pagination: {}
|
|
736
|
+
});
|
|
737
|
+
}, [startingPages]),
|
|
738
|
+
initialPages = _useMemo.data,
|
|
739
|
+
initialPagination = _useMemo.pagination;
|
|
740
|
+
var _useState5 = useState(startingPages === null),
|
|
741
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
742
|
+
canLoad = _useState6[0],
|
|
743
|
+
setCanLoad = _useState6[1];
|
|
744
|
+
var _useState7 = useState(false),
|
|
745
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
746
|
+
loading = _useState8[0],
|
|
747
|
+
setLoading = _useState8[1];
|
|
748
|
+
|
|
749
|
+
// Query
|
|
750
|
+
var query = useMemo(function () {
|
|
751
|
+
return _objectSpread({}, isString(pageQuery) ? parse(pageQuery || null, {
|
|
752
|
+
arrayFormat: 'bracket'
|
|
753
|
+
}) : pageQuery);
|
|
754
|
+
}, [pageQuery]);
|
|
755
|
+
|
|
756
|
+
// Items
|
|
757
|
+
var _useState9 = useState(null),
|
|
758
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
759
|
+
items = _useState10[0],
|
|
760
|
+
setItems = _useState10[1];
|
|
761
|
+
var getPages = useCallback(function (newQuery, newPageNumber, newPageCount) {
|
|
762
|
+
return getPage(newQuery, newPageNumber, newPageCount);
|
|
763
|
+
}, [getPage]);
|
|
764
|
+
|
|
765
|
+
// Api has changed, reset to beginning
|
|
766
|
+
useEffect(function () {
|
|
767
|
+
setItems(initialPages);
|
|
768
|
+
setPagination(initialPagination);
|
|
769
|
+
}, [getPages, setItems, setPagination]);
|
|
770
|
+
useEffect(function () {
|
|
771
|
+
// console.log('try to load');
|
|
772
|
+
if (!canLoad || loading || lastPage !== null && pageNumber > lastPage) {
|
|
773
|
+
// console.log('skips loading');
|
|
774
|
+
return;
|
|
775
|
+
}
|
|
776
|
+
// console.log('actually load', query, pageNumber, pageCount);
|
|
777
|
+
setLoading(true);
|
|
778
|
+
setCanLoad(false);
|
|
779
|
+
// TODO: make this a cancellable promise
|
|
780
|
+
getPages(query, pageNumber, pageCount).then(function (response) {
|
|
781
|
+
return getPageFromResponse(response);
|
|
782
|
+
}).then(function (response) {
|
|
783
|
+
var _ref4 = response || {},
|
|
784
|
+
_ref4$data = _ref4.data,
|
|
785
|
+
data = _ref4$data === void 0 ? null : _ref4$data,
|
|
786
|
+
_ref4$meta = _ref4.meta,
|
|
787
|
+
meta = _ref4$meta === void 0 ? null : _ref4$meta;
|
|
788
|
+
// console.log('response --- ', response);
|
|
789
|
+
// This is not a paginated list so we dont care anymore
|
|
790
|
+
if (data === null && meta === null) {
|
|
791
|
+
setItems(response);
|
|
792
|
+
setPaginated(false);
|
|
793
|
+
} else {
|
|
794
|
+
setItems(function (old) {
|
|
795
|
+
return [].concat(_toConsumableArray(old || null), _toConsumableArray(data));
|
|
796
|
+
});
|
|
797
|
+
setPagination(meta);
|
|
798
|
+
setPaginated(true);
|
|
799
|
+
}
|
|
800
|
+
return response;
|
|
801
|
+
}).then(function (response) {
|
|
802
|
+
setLoading(false);
|
|
803
|
+
if (onLoaded !== null) {
|
|
804
|
+
onLoaded(response);
|
|
805
|
+
}
|
|
806
|
+
})["catch"](function (e) {
|
|
807
|
+
// Error is real
|
|
808
|
+
setLoading(false);
|
|
809
|
+
if (onError !== null) {
|
|
810
|
+
onError(e);
|
|
811
|
+
}
|
|
812
|
+
});
|
|
813
|
+
}, [query, pageNumber, canLoad, getPages, setLoading, setItems, setPagination, onLoaded, onError]);
|
|
814
|
+
var reset = useCallback(function () {
|
|
815
|
+
setItems([]);
|
|
816
|
+
setPagination(null);
|
|
817
|
+
setCanLoad(true);
|
|
818
|
+
}, [setItems, setPagination, setCanLoad]);
|
|
819
|
+
|
|
820
|
+
// Resets the game, "natural" refresh
|
|
821
|
+
var onQueryChange = useEffect(function () {
|
|
822
|
+
reset();
|
|
823
|
+
}, [query, page, count, reset]);
|
|
824
|
+
|
|
825
|
+
// Handle to Load next
|
|
826
|
+
var loadNextPage = useCallback(function () {
|
|
827
|
+
if (!loading && pageNumber < lastPage) {
|
|
828
|
+
var params = _objectSpread(_objectSpread({}, pagination), {}, {
|
|
829
|
+
current_page: pageNumber + 1,
|
|
830
|
+
per_page: pageCount
|
|
831
|
+
});
|
|
832
|
+
setPagination(params);
|
|
833
|
+
setCanLoad(true);
|
|
834
|
+
}
|
|
835
|
+
}, [query, pagination, pageNumber, pageCount, loading, lastPage, onQueryChange, setCanLoad]);
|
|
836
|
+
var disabled = (items || []).length === 0 || loading || pageNumber >= lastPage || lastPage === null || lastPage === 1;
|
|
837
|
+
var regularLoaded = !paginated && items !== null;
|
|
838
|
+
var paginatedLoaded = !loading && items !== null && (items.length === total || pageNumber >= lastPage);
|
|
839
|
+
return {
|
|
840
|
+
items: items,
|
|
841
|
+
total: total,
|
|
842
|
+
page: pageNumber,
|
|
843
|
+
count: pageCount,
|
|
844
|
+
lastPage: lastPage,
|
|
845
|
+
loading: loading,
|
|
846
|
+
loaded: !loading,
|
|
847
|
+
allLoaded: regularLoaded || paginatedLoaded,
|
|
848
|
+
disabled: disabled,
|
|
849
|
+
loadNextPage: loadNextPage,
|
|
850
|
+
reset: reset
|
|
851
|
+
};
|
|
852
|
+
};
|
|
853
|
+
|
|
664
854
|
var useMedias = function useMedias() {
|
|
665
855
|
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] :
|
|
856
|
+
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
857
|
+
var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
668
858
|
var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
669
859
|
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);
|
|
860
|
+
var getPage = useCallback(function (newQuery) {
|
|
861
|
+
var requestedPage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
862
|
+
var requestedCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
863
|
+
return api.medias.get(newQuery, requestedPage, requestedCount);
|
|
864
|
+
}, [api]);
|
|
865
|
+
return useItems(_objectSpread({
|
|
866
|
+
getPage: getPage,
|
|
867
|
+
query: query,
|
|
868
|
+
page: page,
|
|
869
|
+
count: count
|
|
870
|
+
}, opts));
|
|
687
871
|
};
|
|
688
872
|
|
|
689
873
|
var useMediasRecent = function useMediasRecent(opts) {
|
|
@@ -722,7 +906,7 @@ var useMediaTags = function useMediaTags() {
|
|
|
722
906
|
var getItems = useCallback(function () {
|
|
723
907
|
return api.medias.getTags(query, count);
|
|
724
908
|
}, [api, query, count]);
|
|
725
|
-
var _useItems = useItems(_objectSpread({
|
|
909
|
+
var _useItems = useItems$1(_objectSpread({
|
|
726
910
|
getItems: getItems
|
|
727
911
|
}, opts)),
|
|
728
912
|
items = _useItems.items;
|
|
@@ -752,15 +936,34 @@ var useMediaUpdate = function useMediaUpdate() {
|
|
|
752
936
|
};
|
|
753
937
|
};
|
|
754
938
|
|
|
939
|
+
var useMediaRequestDelete = function useMediaRequestDelete() {
|
|
940
|
+
var _useState = useState(false),
|
|
941
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
942
|
+
requesting = _useState2[0],
|
|
943
|
+
setRequesting = _useState2[1];
|
|
944
|
+
var api = useApi();
|
|
945
|
+
var requestDeleteMedia = useCallback(function (id) {
|
|
946
|
+
setRequesting(true);
|
|
947
|
+
return api.medias.requestDeleteMedia(id).then(function (response) {
|
|
948
|
+
setRequesting(false);
|
|
949
|
+
return response;
|
|
950
|
+
});
|
|
951
|
+
}, [api, setRequesting]);
|
|
952
|
+
return {
|
|
953
|
+
requestDeleteMedia: requestDeleteMedia,
|
|
954
|
+
requesting: requesting
|
|
955
|
+
};
|
|
956
|
+
};
|
|
957
|
+
|
|
755
958
|
var useMediaDelete = function useMediaDelete() {
|
|
756
959
|
var _useState = useState(false),
|
|
757
960
|
_useState2 = _slicedToArray(_useState, 2),
|
|
758
961
|
deleting = _useState2[0],
|
|
759
962
|
setDeleting = _useState2[1];
|
|
760
963
|
var api = useApi();
|
|
761
|
-
var deleteMedia = useCallback(function (id
|
|
964
|
+
var deleteMedia = useCallback(function (id) {
|
|
762
965
|
setDeleting(true);
|
|
763
|
-
return api.medias["delete"](id
|
|
966
|
+
return api.medias["delete"](id).then(function (response) {
|
|
764
967
|
setDeleting(false);
|
|
765
968
|
return response;
|
|
766
969
|
});
|
|
@@ -855,4 +1058,4 @@ var DataProvider = function DataProvider(_ref) {
|
|
|
855
1058
|
DataProvider.propTypes = propTypes;
|
|
856
1059
|
DataProvider.defaultProps = defaultProps;
|
|
857
1060
|
|
|
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 };
|
|
1061
|
+
export { Api, ApiProvider, Base as BaseApi, DataProvider, useApi, useContributionCreate, useContributions, useData, useItems$1 as useItems, useMedia, useMediaAuthors, useMediaCreate, useMediaDelete, useMediaRequestDelete, 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() {
|
|
@@ -145,6 +147,7 @@ var MediasApi = /*#__PURE__*/function (_Base) {
|
|
|
145
147
|
index: 'medias',
|
|
146
148
|
tags: 'medias/tags',
|
|
147
149
|
authors: 'medias/authors',
|
|
150
|
+
requestDelete: 'medias/requestDelete/:media',
|
|
148
151
|
show: 'medias/:media',
|
|
149
152
|
store: 'medias',
|
|
150
153
|
update: 'medias/:media',
|
|
@@ -208,6 +211,13 @@ var MediasApi = /*#__PURE__*/function (_Base) {
|
|
|
208
211
|
media: id
|
|
209
212
|
}), data);
|
|
210
213
|
}
|
|
214
|
+
}, {
|
|
215
|
+
key: "requestDeleteMedia",
|
|
216
|
+
value: function requestDeleteMedia(id) {
|
|
217
|
+
return this.requestPost(this.route('requestDelete', {
|
|
218
|
+
media: id
|
|
219
|
+
}));
|
|
220
|
+
}
|
|
211
221
|
}, {
|
|
212
222
|
key: "delete",
|
|
213
223
|
value: function _delete(id) {
|
|
@@ -385,7 +395,7 @@ var useData = function useData(loadData) {
|
|
|
385
395
|
};
|
|
386
396
|
};
|
|
387
397
|
|
|
388
|
-
var _excluded$
|
|
398
|
+
var _excluded$3 = ["data"];
|
|
389
399
|
var useContributions = function useContributions() {
|
|
390
400
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
391
401
|
screenId = _ref.screenId,
|
|
@@ -407,13 +417,13 @@ var useContributions = function useContributions() {
|
|
|
407
417
|
data: null
|
|
408
418
|
},
|
|
409
419
|
data = _ref2.data,
|
|
410
|
-
request = _objectWithoutProperties__default["default"](_ref2, _excluded$
|
|
420
|
+
request = _objectWithoutProperties__default["default"](_ref2, _excluded$3);
|
|
411
421
|
return _objectSpread__default["default"]({
|
|
412
422
|
contributions: data || defaultContributions
|
|
413
423
|
}, request);
|
|
414
424
|
};
|
|
415
425
|
|
|
416
|
-
var useItems = function useItems(_ref) {
|
|
426
|
+
var useItems$1 = function useItems(_ref) {
|
|
417
427
|
var _ref$getPage = _ref.getPage,
|
|
418
428
|
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
419
429
|
_ref$getItems = _ref.getItems,
|
|
@@ -625,7 +635,7 @@ var useItems = function useItems(_ref) {
|
|
|
625
635
|
};
|
|
626
636
|
};
|
|
627
637
|
|
|
628
|
-
var _excluded$
|
|
638
|
+
var _excluded$2 = ["data"];
|
|
629
639
|
var useMedia = function useMedia(id, opts) {
|
|
630
640
|
var api = useApi();
|
|
631
641
|
var loader = React.useCallback(function () {
|
|
@@ -633,7 +643,7 @@ var useMedia = function useMedia(id, opts) {
|
|
|
633
643
|
}, [api, id]);
|
|
634
644
|
var _useData = useData(loader, opts),
|
|
635
645
|
data = _useData.data,
|
|
636
|
-
request = _objectWithoutProperties__default["default"](_useData, _excluded$
|
|
646
|
+
request = _objectWithoutProperties__default["default"](_useData, _excluded$2);
|
|
637
647
|
return _objectSpread__default["default"]({
|
|
638
648
|
story: data
|
|
639
649
|
}, request);
|
|
@@ -677,30 +687,205 @@ var useMediaCreate = function useMediaCreate() {
|
|
|
677
687
|
};
|
|
678
688
|
};
|
|
679
689
|
|
|
680
|
-
var
|
|
690
|
+
var useItems = function useItems(_ref) {
|
|
691
|
+
var _ref$getPage = _ref.getPage,
|
|
692
|
+
getPage = _ref$getPage === void 0 ? null : _ref$getPage,
|
|
693
|
+
_ref$page = _ref.page,
|
|
694
|
+
page = _ref$page === void 0 ? 1 : _ref$page,
|
|
695
|
+
_ref$count = _ref.count,
|
|
696
|
+
count = _ref$count === void 0 ? 10 : _ref$count,
|
|
697
|
+
_ref$query = _ref.query,
|
|
698
|
+
pageQuery = _ref$query === void 0 ? null : _ref$query,
|
|
699
|
+
_ref$pages = _ref.pages,
|
|
700
|
+
startingPages = _ref$pages === void 0 ? null : _ref$pages,
|
|
701
|
+
_ref$getPageFromRespo = _ref.getPageFromResponse,
|
|
702
|
+
getPageFromResponse = _ref$getPageFromRespo === void 0 ? function (newPage) {
|
|
703
|
+
return newPage;
|
|
704
|
+
} : _ref$getPageFromRespo,
|
|
705
|
+
_ref$getPagination = _ref.getPagination,
|
|
706
|
+
getPagination = _ref$getPagination === void 0 ? function () {
|
|
707
|
+
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
708
|
+
cp = _ref2.current_page,
|
|
709
|
+
pp = _ref2.per_page,
|
|
710
|
+
lp = _ref2.last_page,
|
|
711
|
+
total = _ref2.total;
|
|
712
|
+
return {
|
|
713
|
+
pageNumber: cp,
|
|
714
|
+
pageCount: pp,
|
|
715
|
+
lastPage: lp,
|
|
716
|
+
total: total
|
|
717
|
+
};
|
|
718
|
+
} : _ref$getPagination,
|
|
719
|
+
_ref$onLoaded = _ref.onLoaded,
|
|
720
|
+
onLoaded = _ref$onLoaded === void 0 ? null : _ref$onLoaded,
|
|
721
|
+
_ref$onError = _ref.onError,
|
|
722
|
+
onError = _ref$onError === void 0 ? null : _ref$onError;
|
|
723
|
+
// Pagination
|
|
724
|
+
var _useState = React.useState(page !== null),
|
|
725
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
726
|
+
paginated = _useState2[0],
|
|
727
|
+
setPaginated = _useState2[1];
|
|
728
|
+
var _useState3 = React.useState(null),
|
|
729
|
+
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
730
|
+
pagination = _useState4[0],
|
|
731
|
+
setPagination = _useState4[1];
|
|
732
|
+
var _getPagination = getPagination(pagination || {}),
|
|
733
|
+
_getPagination$pageNu = _getPagination.pageNumber,
|
|
734
|
+
pageNumber = _getPagination$pageNu === void 0 ? page : _getPagination$pageNu,
|
|
735
|
+
_getPagination$pageCo = _getPagination.pageCount,
|
|
736
|
+
pageCount = _getPagination$pageCo === void 0 ? count : _getPagination$pageCo,
|
|
737
|
+
_getPagination$lastPa = _getPagination.lastPage,
|
|
738
|
+
lastPage = _getPagination$lastPa === void 0 ? null : _getPagination$lastPa,
|
|
739
|
+
_getPagination$total = _getPagination.total,
|
|
740
|
+
total = _getPagination$total === void 0 ? null : _getPagination$total;
|
|
741
|
+
var _useMemo = React.useMemo(function () {
|
|
742
|
+
return (startingPages || []).reduce(function (paginatedData, it) {
|
|
743
|
+
var _ref3 = it || {},
|
|
744
|
+
items = _ref3.data,
|
|
745
|
+
currentPagination = _ref3.pagination;
|
|
746
|
+
// eslint-disable-next-line no-param-reassign
|
|
747
|
+
paginatedData.data = paginatedData.data.concat(items);
|
|
748
|
+
// eslint-disable-next-line no-param-reassign
|
|
749
|
+
paginatedData.pagination = currentPagination;
|
|
750
|
+
return paginatedData;
|
|
751
|
+
}, {
|
|
752
|
+
data: [],
|
|
753
|
+
pagination: {}
|
|
754
|
+
});
|
|
755
|
+
}, [startingPages]),
|
|
756
|
+
initialPages = _useMemo.data,
|
|
757
|
+
initialPagination = _useMemo.pagination;
|
|
758
|
+
var _useState5 = React.useState(startingPages === null),
|
|
759
|
+
_useState6 = _slicedToArray__default["default"](_useState5, 2),
|
|
760
|
+
canLoad = _useState6[0],
|
|
761
|
+
setCanLoad = _useState6[1];
|
|
762
|
+
var _useState7 = React.useState(false),
|
|
763
|
+
_useState8 = _slicedToArray__default["default"](_useState7, 2),
|
|
764
|
+
loading = _useState8[0],
|
|
765
|
+
setLoading = _useState8[1];
|
|
766
|
+
|
|
767
|
+
// Query
|
|
768
|
+
var query = React.useMemo(function () {
|
|
769
|
+
return _objectSpread__default["default"]({}, isString__default["default"](pageQuery) ? queryString.parse(pageQuery || null, {
|
|
770
|
+
arrayFormat: 'bracket'
|
|
771
|
+
}) : pageQuery);
|
|
772
|
+
}, [pageQuery]);
|
|
773
|
+
|
|
774
|
+
// Items
|
|
775
|
+
var _useState9 = React.useState(null),
|
|
776
|
+
_useState10 = _slicedToArray__default["default"](_useState9, 2),
|
|
777
|
+
items = _useState10[0],
|
|
778
|
+
setItems = _useState10[1];
|
|
779
|
+
var getPages = React.useCallback(function (newQuery, newPageNumber, newPageCount) {
|
|
780
|
+
return getPage(newQuery, newPageNumber, newPageCount);
|
|
781
|
+
}, [getPage]);
|
|
782
|
+
|
|
783
|
+
// Api has changed, reset to beginning
|
|
784
|
+
React.useEffect(function () {
|
|
785
|
+
setItems(initialPages);
|
|
786
|
+
setPagination(initialPagination);
|
|
787
|
+
}, [getPages, setItems, setPagination]);
|
|
788
|
+
React.useEffect(function () {
|
|
789
|
+
// console.log('try to load');
|
|
790
|
+
if (!canLoad || loading || lastPage !== null && pageNumber > lastPage) {
|
|
791
|
+
// console.log('skips loading');
|
|
792
|
+
return;
|
|
793
|
+
}
|
|
794
|
+
// console.log('actually load', query, pageNumber, pageCount);
|
|
795
|
+
setLoading(true);
|
|
796
|
+
setCanLoad(false);
|
|
797
|
+
// TODO: make this a cancellable promise
|
|
798
|
+
getPages(query, pageNumber, pageCount).then(function (response) {
|
|
799
|
+
return getPageFromResponse(response);
|
|
800
|
+
}).then(function (response) {
|
|
801
|
+
var _ref4 = response || {},
|
|
802
|
+
_ref4$data = _ref4.data,
|
|
803
|
+
data = _ref4$data === void 0 ? null : _ref4$data,
|
|
804
|
+
_ref4$meta = _ref4.meta,
|
|
805
|
+
meta = _ref4$meta === void 0 ? null : _ref4$meta;
|
|
806
|
+
// console.log('response --- ', response);
|
|
807
|
+
// This is not a paginated list so we dont care anymore
|
|
808
|
+
if (data === null && meta === null) {
|
|
809
|
+
setItems(response);
|
|
810
|
+
setPaginated(false);
|
|
811
|
+
} else {
|
|
812
|
+
setItems(function (old) {
|
|
813
|
+
return [].concat(_toConsumableArray__default["default"](old || null), _toConsumableArray__default["default"](data));
|
|
814
|
+
});
|
|
815
|
+
setPagination(meta);
|
|
816
|
+
setPaginated(true);
|
|
817
|
+
}
|
|
818
|
+
return response;
|
|
819
|
+
}).then(function (response) {
|
|
820
|
+
setLoading(false);
|
|
821
|
+
if (onLoaded !== null) {
|
|
822
|
+
onLoaded(response);
|
|
823
|
+
}
|
|
824
|
+
})["catch"](function (e) {
|
|
825
|
+
// Error is real
|
|
826
|
+
setLoading(false);
|
|
827
|
+
if (onError !== null) {
|
|
828
|
+
onError(e);
|
|
829
|
+
}
|
|
830
|
+
});
|
|
831
|
+
}, [query, pageNumber, canLoad, getPages, setLoading, setItems, setPagination, onLoaded, onError]);
|
|
832
|
+
var reset = React.useCallback(function () {
|
|
833
|
+
setItems([]);
|
|
834
|
+
setPagination(null);
|
|
835
|
+
setCanLoad(true);
|
|
836
|
+
}, [setItems, setPagination, setCanLoad]);
|
|
837
|
+
|
|
838
|
+
// Resets the game, "natural" refresh
|
|
839
|
+
var onQueryChange = React.useEffect(function () {
|
|
840
|
+
reset();
|
|
841
|
+
}, [query, page, count, reset]);
|
|
842
|
+
|
|
843
|
+
// Handle to Load next
|
|
844
|
+
var loadNextPage = React.useCallback(function () {
|
|
845
|
+
if (!loading && pageNumber < lastPage) {
|
|
846
|
+
var params = _objectSpread__default["default"](_objectSpread__default["default"]({}, pagination), {}, {
|
|
847
|
+
current_page: pageNumber + 1,
|
|
848
|
+
per_page: pageCount
|
|
849
|
+
});
|
|
850
|
+
setPagination(params);
|
|
851
|
+
setCanLoad(true);
|
|
852
|
+
}
|
|
853
|
+
}, [query, pagination, pageNumber, pageCount, loading, lastPage, onQueryChange, setCanLoad]);
|
|
854
|
+
var disabled = (items || []).length === 0 || loading || pageNumber >= lastPage || lastPage === null || lastPage === 1;
|
|
855
|
+
var regularLoaded = !paginated && items !== null;
|
|
856
|
+
var paginatedLoaded = !loading && items !== null && (items.length === total || pageNumber >= lastPage);
|
|
857
|
+
return {
|
|
858
|
+
items: items,
|
|
859
|
+
total: total,
|
|
860
|
+
page: pageNumber,
|
|
861
|
+
count: pageCount,
|
|
862
|
+
lastPage: lastPage,
|
|
863
|
+
loading: loading,
|
|
864
|
+
loaded: !loading,
|
|
865
|
+
allLoaded: regularLoaded || paginatedLoaded,
|
|
866
|
+
disabled: disabled,
|
|
867
|
+
loadNextPage: loadNextPage,
|
|
868
|
+
reset: reset
|
|
869
|
+
};
|
|
870
|
+
};
|
|
871
|
+
|
|
681
872
|
var useMedias = function useMedias() {
|
|
682
873
|
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] :
|
|
874
|
+
var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
875
|
+
var count = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;
|
|
685
876
|
var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
686
877
|
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);
|
|
878
|
+
var getPage = React.useCallback(function (newQuery) {
|
|
879
|
+
var requestedPage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
880
|
+
var requestedCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
881
|
+
return api.medias.get(newQuery, requestedPage, requestedCount);
|
|
882
|
+
}, [api]);
|
|
883
|
+
return useItems(_objectSpread__default["default"]({
|
|
884
|
+
getPage: getPage,
|
|
885
|
+
query: query,
|
|
886
|
+
page: page,
|
|
887
|
+
count: count
|
|
888
|
+
}, opts));
|
|
704
889
|
};
|
|
705
890
|
|
|
706
891
|
var useMediasRecent = function useMediasRecent(opts) {
|
|
@@ -739,7 +924,7 @@ var useMediaTags = function useMediaTags() {
|
|
|
739
924
|
var getItems = React.useCallback(function () {
|
|
740
925
|
return api.medias.getTags(query, count);
|
|
741
926
|
}, [api, query, count]);
|
|
742
|
-
var _useItems = useItems(_objectSpread__default["default"]({
|
|
927
|
+
var _useItems = useItems$1(_objectSpread__default["default"]({
|
|
743
928
|
getItems: getItems
|
|
744
929
|
}, opts)),
|
|
745
930
|
items = _useItems.items;
|
|
@@ -769,15 +954,34 @@ var useMediaUpdate = function useMediaUpdate() {
|
|
|
769
954
|
};
|
|
770
955
|
};
|
|
771
956
|
|
|
957
|
+
var useMediaRequestDelete = function useMediaRequestDelete() {
|
|
958
|
+
var _useState = React.useState(false),
|
|
959
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
960
|
+
requesting = _useState2[0],
|
|
961
|
+
setRequesting = _useState2[1];
|
|
962
|
+
var api = useApi();
|
|
963
|
+
var requestDeleteMedia = React.useCallback(function (id) {
|
|
964
|
+
setRequesting(true);
|
|
965
|
+
return api.medias.requestDeleteMedia(id).then(function (response) {
|
|
966
|
+
setRequesting(false);
|
|
967
|
+
return response;
|
|
968
|
+
});
|
|
969
|
+
}, [api, setRequesting]);
|
|
970
|
+
return {
|
|
971
|
+
requestDeleteMedia: requestDeleteMedia,
|
|
972
|
+
requesting: requesting
|
|
973
|
+
};
|
|
974
|
+
};
|
|
975
|
+
|
|
772
976
|
var useMediaDelete = function useMediaDelete() {
|
|
773
977
|
var _useState = React.useState(false),
|
|
774
978
|
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
775
979
|
deleting = _useState2[0],
|
|
776
980
|
setDeleting = _useState2[1];
|
|
777
981
|
var api = useApi();
|
|
778
|
-
var deleteMedia = React.useCallback(function (id
|
|
982
|
+
var deleteMedia = React.useCallback(function (id) {
|
|
779
983
|
setDeleting(true);
|
|
780
|
-
return api.medias["delete"](id
|
|
984
|
+
return api.medias["delete"](id).then(function (response) {
|
|
781
985
|
setDeleting(false);
|
|
782
986
|
return response;
|
|
783
987
|
});
|
|
@@ -880,11 +1084,12 @@ exports.useApi = useApi;
|
|
|
880
1084
|
exports.useContributionCreate = useContributionCreate;
|
|
881
1085
|
exports.useContributions = useContributions;
|
|
882
1086
|
exports.useData = useData;
|
|
883
|
-
exports.useItems = useItems;
|
|
1087
|
+
exports.useItems = useItems$1;
|
|
884
1088
|
exports.useMedia = useMedia;
|
|
885
1089
|
exports.useMediaAuthors = useMediaAuthors;
|
|
886
1090
|
exports.useMediaCreate = useMediaCreate;
|
|
887
1091
|
exports.useMediaDelete = useMediaDelete;
|
|
1092
|
+
exports.useMediaRequestDelete = useMediaRequestDelete;
|
|
888
1093
|
exports.useMediaTags = useMediaTags;
|
|
889
1094
|
exports.useMediaUpdate = useMediaUpdate;
|
|
890
1095
|
exports.useMedias = useMedias;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/data",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.334",
|
|
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": "aecd5e405aff415fe8d1a627f03d1e74ccd9ef95"
|
|
62
63
|
}
|