@bigbinary/neeto-image-uploader-frontend 1.5.3 → 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
@@ -2110,7 +2110,8 @@ var ImageDirectUpload = function ImageDirectUpload(_ref) {
2110
2110
  i18nKey: "neetoImageUploader.imageUpload.dragAndDropOrBrowseFile",
2111
2111
  components: {
2112
2112
  span: /*#__PURE__*/React__default["default"].createElement("span", {
2113
- className: "neeto-ui-text-primary-500"
2113
+ className: "neeto-ui-text-primary-500",
2114
+ "data-cy": "neeto-image-uploader-browse-text"
2114
2115
  })
2115
2116
  }
2116
2117
  })), setIsAssetLibraryOpen && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
@@ -2129,6 +2130,7 @@ var ImageDirectUpload = function ImageDirectUpload(_ref) {
2129
2130
  })
2130
2131
  }
2131
2132
  })), /*#__PURE__*/React__default["default"].createElement("input", _extends$1({}, getInputProps(), {
2133
+ "data-cy": "neeto-image-uploader-file-input",
2132
2134
  disabled: isDisabled
2133
2135
  })), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
2134
2136
  className: "neeto-ui-text-gray-700 text-center leading-4",
@@ -2195,6 +2197,7 @@ var IS_DEVELOPMENT_OR_HEROKU_ENV = process.env.RAILS_ENV === "development" || pr
2195
2197
 
2196
2198
  var UNSPLASH_DEFAULT_NAME = "Unsplash-asset";
2197
2199
  var UNSPLASH_URL = "https://unsplash.com/";
2200
+ var IMAGES_PER_PAGE = 30;
2198
2201
  var UNSPLASH_DEFAULT_REQUEST_CONFIG = {
2199
2202
  headers: {
2200
2203
  "Access-Control-Allow-Origin": "*",
@@ -3838,11 +3841,15 @@ var ImageEditor = function ImageEditor(_ref) {
3838
3841
  };
3839
3842
 
3840
3843
  var fetch = function fetch(_ref) {
3841
- var search = _ref.search,
3842
- url = _ref.url;
3844
+ var searchTerm = _ref.searchTerm,
3845
+ url = _ref.url,
3846
+ page = _ref.page,
3847
+ per = _ref.per;
3843
3848
  return axios__default["default"].get(url, {
3844
3849
  params: {
3845
- search: search
3850
+ searchTerm: searchTerm,
3851
+ page: page,
3852
+ per: per
3846
3853
  }
3847
3854
  });
3848
3855
  };
@@ -3851,13 +3858,17 @@ var imagesApi = {
3851
3858
  };
3852
3859
 
3853
3860
  var useFetchAssets = function useFetchAssets(_ref) {
3854
- var search = _ref.search,
3855
- url = _ref.url;
3861
+ var searchTerm = _ref.searchTerm,
3862
+ url = _ref.url,
3863
+ page = _ref.page,
3864
+ per = _ref.per;
3856
3865
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
3857
- return reactQuery.useQuery([QUERY_KEYS.ASSETS_LIST, search], function () {
3866
+ return reactQuery.useQuery([QUERY_KEYS.ASSETS_LIST], function () {
3858
3867
  return imagesApi.fetch({
3859
- search: search,
3860
- url: url
3868
+ searchTerm: searchTerm,
3869
+ url: url,
3870
+ page: page,
3871
+ per: per
3861
3872
  });
3862
3873
  }, ramda.mergeRight({
3863
3874
  staleTime: ASSETS_STALE_TIME
@@ -4684,31 +4695,75 @@ var InfiniteScroller = function InfiniteScroller(_ref) {
4684
4695
  };
4685
4696
 
4686
4697
  var Images = function Images(_ref) {
4687
- var setSelectedImage = _ref.setSelectedImage,
4688
- 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
+ };
4689
4726
  var _useTranslation = reactI18next.useTranslation(),
4690
4727
  t = _useTranslation.t;
4691
4728
  var _useFetchAssets = useFetchAssets({
4692
- search: debouncedQuery,
4729
+ searchTerm: debouncedQuery,
4730
+ page: pageNo,
4731
+ per: IMAGES_PER_PAGE,
4693
4732
  url: ASSETS_FETCH_URL
4733
+ }, {
4734
+ onSuccess: onSuccess,
4735
+ onError: onError
4694
4736
  }),
4695
- _useFetchAssets$data = _useFetchAssets.data,
4696
- images = _useFetchAssets$data === void 0 ? [] : _useFetchAssets$data,
4737
+ refetch = _useFetchAssets.refetch,
4697
4738
  isFetching = _useFetchAssets.isFetching;
4698
- if (isFetching) {
4699
- return /*#__PURE__*/React__default["default"].createElement("div", {
4700
- className: "flex items-center justify-center"
4701
- }, /*#__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"));
4702
4759
  }
4703
- return neetoCist.isNotEmpty(images) ? /*#__PURE__*/React__default["default"].createElement(InfiniteScroller, {
4760
+ return /*#__PURE__*/React__default["default"].createElement(InfiniteScroller, {
4761
+ hasMore: hasMore,
4704
4762
  images: images,
4763
+ loadMore: loadMore,
4705
4764
  setSelectedImage: setSelectedImage,
4706
4765
  tab: TABS[0].key
4707
- }) : /*#__PURE__*/React__default["default"].createElement("div", {
4708
- className: "flex items-center justify-center"
4709
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
4710
- style: "h3"
4711
- }, t("neetoImageUploader.common.noImages")));
4766
+ });
4712
4767
  };
4713
4768
 
4714
4769
  var newAxiosInstance = axios__default["default"].create();
@@ -4790,7 +4845,8 @@ var uploadWithImageKit = function uploadWithImageKit(file) {
4790
4845
  };
4791
4846
 
4792
4847
  var UnsplashLibrary = function UnsplashLibrary(_ref) {
4793
- var debouncedQuery = _ref.debouncedQuery,
4848
+ var query = _ref.query,
4849
+ debouncedQuery = _ref.debouncedQuery,
4794
4850
  setSelectedImage = _ref.setSelectedImage,
4795
4851
  setIsUploading = _ref.setIsUploading,
4796
4852
  setActiveTab = _ref.setActiveTab;
@@ -4893,6 +4949,9 @@ var UnsplashLibrary = function UnsplashLibrary(_ref) {
4893
4949
  refetch();
4894
4950
  }
4895
4951
  }, 500);
4952
+ React.useEffect(function () {
4953
+ setPageNo(1);
4954
+ }, [query]);
4896
4955
  React.useEffect(function () {
4897
4956
  setPageNo(1);
4898
4957
  setImages([]);
@@ -4944,9 +5003,11 @@ var ImageLibrary = function ImageLibrary(_ref) {
4944
5003
  }
4945
5004
  }), tab === TABS[0].key ? /*#__PURE__*/React__default["default"].createElement(Images, {
4946
5005
  debouncedQuery: debouncedQuery,
5006
+ query: query,
4947
5007
  setSelectedImage: setSelectedImage
4948
5008
  }) : /*#__PURE__*/React__default["default"].createElement(UnsplashLibrary, {
4949
5009
  debouncedQuery: debouncedQuery,
5010
+ query: query,
4950
5011
  setActiveTab: setActiveTab,
4951
5012
  setIsUploading: setIsUploading,
4952
5013
  setSelectedImage: setSelectedImage