@bigbinary/neeto-image-uploader-frontend 1.5.4 → 1.5.5

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/dist/index.cjs.js CHANGED
@@ -2197,6 +2197,7 @@ var IS_DEVELOPMENT_OR_HEROKU_ENV = process.env.RAILS_ENV === "development" || pr
2197
2197
 
2198
2198
  var UNSPLASH_DEFAULT_NAME = "Unsplash-asset";
2199
2199
  var UNSPLASH_URL = "https://unsplash.com/";
2200
+ var IMAGES_PER_PAGE = 30;
2200
2201
  var UNSPLASH_DEFAULT_REQUEST_CONFIG = {
2201
2202
  headers: {
2202
2203
  "Access-Control-Allow-Origin": "*",
@@ -3840,11 +3841,15 @@ var ImageEditor = function ImageEditor(_ref) {
3840
3841
  };
3841
3842
 
3842
3843
  var fetch = function fetch(_ref) {
3843
- var search = _ref.search,
3844
- url = _ref.url;
3844
+ var searchTerm = _ref.searchTerm,
3845
+ url = _ref.url,
3846
+ page = _ref.page,
3847
+ per = _ref.per;
3845
3848
  return axios__default["default"].get(url, {
3846
3849
  params: {
3847
- search: search
3850
+ searchTerm: searchTerm,
3851
+ page: page,
3852
+ per: per
3848
3853
  }
3849
3854
  });
3850
3855
  };
@@ -3853,13 +3858,17 @@ var imagesApi = {
3853
3858
  };
3854
3859
 
3855
3860
  var useFetchAssets = function useFetchAssets(_ref) {
3856
- var search = _ref.search,
3857
- url = _ref.url;
3861
+ var searchTerm = _ref.searchTerm,
3862
+ url = _ref.url,
3863
+ page = _ref.page,
3864
+ per = _ref.per;
3858
3865
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3859
- return reactQuery.useQuery([QUERY_KEYS.ASSETS_LIST, search], function () {
3866
+ return reactQuery.useQuery([QUERY_KEYS.ASSETS_LIST], function () {
3860
3867
  return imagesApi.fetch({
3861
- search: search,
3862
- url: url
3868
+ searchTerm: searchTerm,
3869
+ url: url,
3870
+ page: page,
3871
+ per: per
3863
3872
  });
3864
3873
  }, ramda.mergeRight({
3865
3874
  staleTime: ASSETS_STALE_TIME
@@ -4686,31 +4695,75 @@ var InfiniteScroller = function InfiniteScroller(_ref) {
4686
4695
  };
4687
4696
 
4688
4697
  var Images = function Images(_ref) {
4689
- var setSelectedImage = _ref.setSelectedImage,
4690
- debouncedQuery = _ref.debouncedQuery;
4698
+ var query = _ref.query,
4699
+ debouncedQuery = _ref.debouncedQuery,
4700
+ setSelectedImage = _ref.setSelectedImage;
4701
+ var _useState = React.useState(true),
4702
+ _useState2 = _slicedToArray$2(_useState, 2),
4703
+ hasMore = _useState2[0],
4704
+ setHasMore = _useState2[1];
4705
+ var _useState3 = React.useState([]),
4706
+ _useState4 = _slicedToArray$2(_useState3, 2),
4707
+ images = _useState4[0],
4708
+ setImages = _useState4[1];
4709
+ var _useState5 = React.useState(1),
4710
+ _useState6 = _slicedToArray$2(_useState5, 2),
4711
+ pageNo = _useState6[0],
4712
+ setPageNo = _useState6[1];
4713
+ var _useState7 = React.useState(false),
4714
+ _useState8 = _slicedToArray$2(_useState7, 2),
4715
+ error = _useState8[0],
4716
+ setError = _useState8[1];
4717
+ var onSuccess = function onSuccess() {
4718
+ var results = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
4719
+ ramda.equals(pageNo, 1) ? setImages(results) : setImages(ramda.concat(ramda.__, results));
4720
+ setPageNo(ramda.inc);
4721
+ setHasMore(results.length === IMAGES_PER_PAGE);
4722
+ };
4723
+ var onError = function onError() {
4724
+ return setError(true);
4725
+ };
4691
4726
  var _useTranslation = reactI18next.useTranslation(),
4692
4727
  t = _useTranslation.t;
4693
4728
  var _useFetchAssets = useFetchAssets({
4694
- search: debouncedQuery,
4729
+ searchTerm: debouncedQuery,
4730
+ page: pageNo,
4731
+ per: IMAGES_PER_PAGE,
4695
4732
  url: ASSETS_FETCH_URL
4733
+ }, {
4734
+ onSuccess: onSuccess,
4735
+ onError: onError
4696
4736
  }),
4697
- _useFetchAssets$data = _useFetchAssets.data,
4698
- images = _useFetchAssets$data === void 0 ? [] : _useFetchAssets$data,
4737
+ refetch = _useFetchAssets.refetch,
4699
4738
  isFetching = _useFetchAssets.isFetching;
4700
- if (isFetching) {
4701
- return /*#__PURE__*/React__default["default"].createElement("div", {
4702
- className: "flex items-center justify-center"
4703
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null));
4739
+ var loadMore = reactUtils.useFuncDebounce(function () {
4740
+ if (isFetching) return;
4741
+ if (!hasMore) return;
4742
+ if (pageNo > 1) {
4743
+ setError(false);
4744
+ refetch();
4745
+ }
4746
+ }, 500);
4747
+ React.useEffect(function () {
4748
+ setPageNo(1);
4749
+ }, [query]);
4750
+ React.useEffect(function () {
4751
+ setImages([]);
4752
+ refetch();
4753
+ }, [debouncedQuery]);
4754
+ if (error) {
4755
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
4756
+ className: "mt-9 flex justify-center",
4757
+ style: "body2"
4758
+ }, t("neetoImageUploader.unsplash.errorMessage"));
4704
4759
  }
4705
- return neetoCist.isNotEmpty(images) ? /*#__PURE__*/React__default["default"].createElement(InfiniteScroller, {
4760
+ return /*#__PURE__*/React__default["default"].createElement(InfiniteScroller, {
4761
+ hasMore: hasMore,
4706
4762
  images: images,
4763
+ loadMore: loadMore,
4707
4764
  setSelectedImage: setSelectedImage,
4708
4765
  tab: TABS[0].key
4709
- }) : /*#__PURE__*/React__default["default"].createElement("div", {
4710
- className: "flex items-center justify-center"
4711
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
4712
- style: "h3"
4713
- }, t("neetoImageUploader.common.noImages")));
4766
+ });
4714
4767
  };
4715
4768
 
4716
4769
  var newAxiosInstance = axios__default["default"].create();
@@ -4792,7 +4845,8 @@ var uploadWithImageKit = function uploadWithImageKit(file) {
4792
4845
  };
4793
4846
 
4794
4847
  var UnsplashLibrary = function UnsplashLibrary(_ref) {
4795
- var debouncedQuery = _ref.debouncedQuery,
4848
+ var query = _ref.query,
4849
+ debouncedQuery = _ref.debouncedQuery,
4796
4850
  setSelectedImage = _ref.setSelectedImage,
4797
4851
  setIsUploading = _ref.setIsUploading,
4798
4852
  setActiveTab = _ref.setActiveTab;
@@ -4895,6 +4949,9 @@ var UnsplashLibrary = function UnsplashLibrary(_ref) {
4895
4949
  refetch();
4896
4950
  }
4897
4951
  }, 500);
4952
+ React.useEffect(function () {
4953
+ setPageNo(1);
4954
+ }, [query]);
4898
4955
  React.useEffect(function () {
4899
4956
  setPageNo(1);
4900
4957
  setImages([]);
@@ -4946,9 +5003,11 @@ var ImageLibrary = function ImageLibrary(_ref) {
4946
5003
  }
4947
5004
  }), tab === TABS[0].key ? /*#__PURE__*/React__default["default"].createElement(Images, {
4948
5005
  debouncedQuery: debouncedQuery,
5006
+ query: query,
4949
5007
  setSelectedImage: setSelectedImage
4950
5008
  }) : /*#__PURE__*/React__default["default"].createElement(UnsplashLibrary, {
4951
5009
  debouncedQuery: debouncedQuery,
5010
+ query: query,
4952
5011
  setActiveTab: setActiveTab,
4953
5012
  setIsUploading: setIsUploading,
4954
5013
  setSelectedImage: setSelectedImage