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

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
@@ -2187,7 +2187,7 @@ var ImageWithFallback = function ImageWithFallback(_ref) {
2187
2187
  return isLoaded ? /*#__PURE__*/React__default["default"].createElement("img", _extends$1({}, _objectSpread$2({
2188
2188
  src: src
2189
2189
  }, props), {
2190
- className: "h-full w-auto"
2190
+ className: "h-full w-auto object-contain"
2191
2191
  })) : /*#__PURE__*/React__default["default"].createElement(Fallback, _objectSpread$2({
2192
2192
  className: className
2193
2193
  }, props));
@@ -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": "*",
@@ -3384,8 +3385,8 @@ var useImageUploader = function useImageUploader(_ref) {
3384
3385
  onUploadComplete(ramda.mergeRight(neetoCist.keysToCamelCase(blob), {
3385
3386
  url: blob.blob_url
3386
3387
  }));
3388
+ setIsUploading(false);
3387
3389
  });
3388
- setIsUploading(false);
3389
3390
  } catch (error) {
3390
3391
  neetoui.Toastr.error(error);
3391
3392
  }
@@ -3415,21 +3416,18 @@ var useImageUploader = function useImageUploader(_ref) {
3415
3416
  case 5:
3416
3417
  result = _context.sent;
3417
3418
  onUploadComplete(result);
3418
- _context.next = 12;
3419
+ setIsUploading(false);
3420
+ _context.next = 13;
3419
3421
  break;
3420
- case 9:
3421
- _context.prev = 9;
3422
+ case 10:
3423
+ _context.prev = 10;
3422
3424
  _context.t0 = _context["catch"](0);
3423
3425
  neetoui.Toastr.error(_context.t0);
3424
- case 12:
3425
- _context.prev = 12;
3426
- setIsUploading(false);
3427
- return _context.finish(12);
3428
- case 15:
3426
+ case 13:
3429
3427
  case "end":
3430
3428
  return _context.stop();
3431
3429
  }
3432
- }, _callee, null, [[0, 9, 12, 15]]);
3430
+ }, _callee, null, [[0, 10]]);
3433
3431
  }));
3434
3432
  return function productionUpload(_x, _x2) {
3435
3433
  return _ref2.apply(this, arguments);
@@ -3453,18 +3451,16 @@ var useImageUploader = function useImageUploader(_ref) {
3453
3451
  handleUploadProgress(e, fileSize, setUploadProgress);
3454
3452
  });
3455
3453
  if (!IS_DEVELOPMENT_OR_HEROKU_ENV) {
3456
- _context2.next = 10;
3454
+ _context2.next = 9;
3457
3455
  break;
3458
3456
  }
3459
- _context2.next = 8;
3460
- return developmentUpload(file, setUploadProgress);
3461
- case 8:
3462
- _context2.next = 12;
3457
+ developmentUpload(file, setUploadProgress);
3458
+ _context2.next = 11;
3463
3459
  break;
3464
- case 10:
3465
- _context2.next = 12;
3460
+ case 9:
3461
+ _context2.next = 11;
3466
3462
  return productionUpload(file, XHRProgress);
3467
- case 12:
3463
+ case 11:
3468
3464
  case "end":
3469
3465
  return _context2.stop();
3470
3466
  }
@@ -3840,11 +3836,15 @@ var ImageEditor = function ImageEditor(_ref) {
3840
3836
  };
3841
3837
 
3842
3838
  var fetch = function fetch(_ref) {
3843
- var search = _ref.search,
3844
- url = _ref.url;
3839
+ var searchTerm = _ref.searchTerm,
3840
+ url = _ref.url,
3841
+ page = _ref.page,
3842
+ per = _ref.per;
3845
3843
  return axios__default["default"].get(url, {
3846
3844
  params: {
3847
- search: search
3845
+ searchTerm: searchTerm,
3846
+ page: page,
3847
+ per: per
3848
3848
  }
3849
3849
  });
3850
3850
  };
@@ -3853,13 +3853,17 @@ var imagesApi = {
3853
3853
  };
3854
3854
 
3855
3855
  var useFetchAssets = function useFetchAssets(_ref) {
3856
- var search = _ref.search,
3857
- url = _ref.url;
3856
+ var searchTerm = _ref.searchTerm,
3857
+ url = _ref.url,
3858
+ page = _ref.page,
3859
+ per = _ref.per;
3858
3860
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3859
- return reactQuery.useQuery([QUERY_KEYS.ASSETS_LIST, search], function () {
3861
+ return reactQuery.useQuery([QUERY_KEYS.ASSETS_LIST], function () {
3860
3862
  return imagesApi.fetch({
3861
- search: search,
3862
- url: url
3863
+ searchTerm: searchTerm,
3864
+ url: url,
3865
+ page: page,
3866
+ per: per
3863
3867
  });
3864
3868
  }, ramda.mergeRight({
3865
3869
  staleTime: ASSETS_STALE_TIME
@@ -4686,31 +4690,75 @@ var InfiniteScroller = function InfiniteScroller(_ref) {
4686
4690
  };
4687
4691
 
4688
4692
  var Images = function Images(_ref) {
4689
- var setSelectedImage = _ref.setSelectedImage,
4690
- debouncedQuery = _ref.debouncedQuery;
4693
+ var query = _ref.query,
4694
+ debouncedQuery = _ref.debouncedQuery,
4695
+ setSelectedImage = _ref.setSelectedImage;
4696
+ var _useState = React.useState(true),
4697
+ _useState2 = _slicedToArray$2(_useState, 2),
4698
+ hasMore = _useState2[0],
4699
+ setHasMore = _useState2[1];
4700
+ var _useState3 = React.useState([]),
4701
+ _useState4 = _slicedToArray$2(_useState3, 2),
4702
+ images = _useState4[0],
4703
+ setImages = _useState4[1];
4704
+ var _useState5 = React.useState(1),
4705
+ _useState6 = _slicedToArray$2(_useState5, 2),
4706
+ pageNo = _useState6[0],
4707
+ setPageNo = _useState6[1];
4708
+ var _useState7 = React.useState(false),
4709
+ _useState8 = _slicedToArray$2(_useState7, 2),
4710
+ error = _useState8[0],
4711
+ setError = _useState8[1];
4712
+ var onSuccess = function onSuccess() {
4713
+ var results = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
4714
+ ramda.equals(pageNo, 1) ? setImages(results) : setImages(ramda.concat(ramda.__, results));
4715
+ setPageNo(ramda.inc);
4716
+ setHasMore(results.length === IMAGES_PER_PAGE);
4717
+ };
4718
+ var onError = function onError() {
4719
+ return setError(true);
4720
+ };
4691
4721
  var _useTranslation = reactI18next.useTranslation(),
4692
4722
  t = _useTranslation.t;
4693
4723
  var _useFetchAssets = useFetchAssets({
4694
- search: debouncedQuery,
4724
+ searchTerm: debouncedQuery,
4725
+ page: pageNo,
4726
+ per: IMAGES_PER_PAGE,
4695
4727
  url: ASSETS_FETCH_URL
4728
+ }, {
4729
+ onSuccess: onSuccess,
4730
+ onError: onError
4696
4731
  }),
4697
- _useFetchAssets$data = _useFetchAssets.data,
4698
- images = _useFetchAssets$data === void 0 ? [] : _useFetchAssets$data,
4732
+ refetch = _useFetchAssets.refetch,
4699
4733
  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));
4734
+ var loadMore = reactUtils.useFuncDebounce(function () {
4735
+ if (isFetching) return;
4736
+ if (!hasMore) return;
4737
+ if (pageNo > 1) {
4738
+ setError(false);
4739
+ refetch();
4740
+ }
4741
+ }, 500);
4742
+ React.useEffect(function () {
4743
+ setPageNo(1);
4744
+ }, [query]);
4745
+ React.useEffect(function () {
4746
+ setImages([]);
4747
+ refetch();
4748
+ }, [debouncedQuery]);
4749
+ if (error) {
4750
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
4751
+ className: "mt-9 flex justify-center",
4752
+ style: "body2"
4753
+ }, t("neetoImageUploader.unsplash.errorMessage"));
4704
4754
  }
4705
- return neetoCist.isNotEmpty(images) ? /*#__PURE__*/React__default["default"].createElement(InfiniteScroller, {
4755
+ return /*#__PURE__*/React__default["default"].createElement(InfiniteScroller, {
4756
+ hasMore: hasMore,
4706
4757
  images: images,
4758
+ loadMore: loadMore,
4707
4759
  setSelectedImage: setSelectedImage,
4708
4760
  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")));
4761
+ });
4714
4762
  };
4715
4763
 
4716
4764
  var newAxiosInstance = axios__default["default"].create();
@@ -4792,7 +4840,8 @@ var uploadWithImageKit = function uploadWithImageKit(file) {
4792
4840
  };
4793
4841
 
4794
4842
  var UnsplashLibrary = function UnsplashLibrary(_ref) {
4795
- var debouncedQuery = _ref.debouncedQuery,
4843
+ var query = _ref.query,
4844
+ debouncedQuery = _ref.debouncedQuery,
4796
4845
  setSelectedImage = _ref.setSelectedImage,
4797
4846
  setIsUploading = _ref.setIsUploading,
4798
4847
  setActiveTab = _ref.setActiveTab;
@@ -4895,6 +4944,9 @@ var UnsplashLibrary = function UnsplashLibrary(_ref) {
4895
4944
  refetch();
4896
4945
  }
4897
4946
  }, 500);
4947
+ React.useEffect(function () {
4948
+ setPageNo(1);
4949
+ }, [query]);
4898
4950
  React.useEffect(function () {
4899
4951
  setPageNo(1);
4900
4952
  setImages([]);
@@ -4946,9 +4998,11 @@ var ImageLibrary = function ImageLibrary(_ref) {
4946
4998
  }
4947
4999
  }), tab === TABS[0].key ? /*#__PURE__*/React__default["default"].createElement(Images, {
4948
5000
  debouncedQuery: debouncedQuery,
5001
+ query: query,
4949
5002
  setSelectedImage: setSelectedImage
4950
5003
  }) : /*#__PURE__*/React__default["default"].createElement(UnsplashLibrary, {
4951
5004
  debouncedQuery: debouncedQuery,
5005
+ query: query,
4952
5006
  setActiveTab: setActiveTab,
4953
5007
  setIsUploading: setIsUploading,
4954
5008
  setSelectedImage: setSelectedImage