antd-img-crop 4.10.2 → 4.11.0

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.
@@ -5,7 +5,6 @@ var jsxRuntime = require('react/jsx-runtime');
5
5
  var react = require('react');
6
6
  var antd = require('antd');
7
7
  var AntModal = require('antd/lib/modal');
8
- var AntUpload = require('antd/lib/upload');
9
8
  var compareVersions = require('compare-versions');
10
9
  var Cropper = require('react-easy-crop');
11
10
  var AntButton = require('antd/lib/button');
@@ -133,7 +132,7 @@ const ImgCrop = react.forwardRef((props, cropperRef) => {
133
132
  beforeUploadRef.current = beforeUpload;
134
133
  return Object.assign(Object.assign({}, upload), { props: Object.assign(Object.assign({}, restUploadProps), { accept: accept || 'image/*', beforeUpload: (file, fileList) => {
135
134
  return new Promise((resolve, reject) => tslib.__awaiter(void 0, void 0, void 0, function* () {
136
- if (cb.current.beforeCrop) {
135
+ if (typeof cb.current.beforeCrop === 'function') {
137
136
  const shouldCrop = yield cb.current.beforeCrop(file, fileList);
138
137
  if (!shouldCrop) {
139
138
  return reject();
@@ -234,28 +233,29 @@ const ImgCrop = react.forwardRef((props, cropperRef) => {
234
233
  // get the new image
235
234
  const { type, name, uid } = fileRef.current;
236
235
  canvas.toBlob((blob) => tslib.__awaiter(void 0, void 0, void 0, function* () {
237
- const newFile = Object.assign(new File([blob], name, { type }), { uid });
238
- if (!beforeUploadRef.current) {
239
- return resolveRef.current(newFile);
236
+ const newFile = new File([blob], name, { type });
237
+ Object.assign(newFile, { uid });
238
+ if (typeof beforeUploadRef.current !== 'function') {
239
+ resolveRef.current(newFile);
240
+ return;
240
241
  }
241
- const rcFile = newFile;
242
- const result = yield beforeUploadRef.current(rcFile, [rcFile]);
243
- if (result === true) {
244
- return resolveRef.current(newFile);
242
+ // https://github.com/ant-design/ant-design/blob/master/components/upload/Upload.tsx
243
+ // https://ant.design/components/upload-cn#api
244
+ try {
245
+ const rcFile = newFile;
246
+ const result = yield beforeUploadRef.current(rcFile, [rcFile]);
247
+ if (result === true) {
248
+ resolveRef.current(newFile); // true
249
+ }
250
+ else if (result === false) {
251
+ rejectRef.current(new Error('beforeUpload → false')); // false
252
+ }
253
+ else {
254
+ resolveRef.current(result); // File, Upload.LIST_IGNORE
255
+ }
245
256
  }
246
- if (result === false) {
247
- return rejectRef.current(new Error('beforeUpload return false'));
248
- }
249
- delete newFile[AntUpload.LIST_IGNORE];
250
- if (result === AntUpload.LIST_IGNORE) {
251
- Object.defineProperty(newFile, AntUpload.LIST_IGNORE, {
252
- value: true,
253
- configurable: true,
254
- });
255
- return rejectRef.current(new Error('beforeUpload return LIST_IGNORE'));
256
- }
257
- if (typeof result === 'object' && result !== null) {
258
- return resolveRef.current(result);
257
+ catch (err) {
258
+ rejectRef.current(new Error('beforeUpload reject')); // reject
259
259
  }
260
260
  }), type, quality);
261
261
  }), [fillColor, quality, rotationSlider]);
@@ -3,7 +3,6 @@ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
3
  import { forwardRef, useState, useRef, useCallback, useImperativeHandle, memo, useMemo } from 'react';
4
4
  import { version } from 'antd';
5
5
  import AntModal from 'antd/es/modal';
6
- import AntUpload from 'antd/es/upload';
7
6
  import { compareVersions } from 'compare-versions';
8
7
  import Cropper from 'react-easy-crop';
9
8
  import AntButton from 'antd/es/button';
@@ -131,7 +130,7 @@ const ImgCrop = forwardRef((props, cropperRef) => {
131
130
  beforeUploadRef.current = beforeUpload;
132
131
  return Object.assign(Object.assign({}, upload), { props: Object.assign(Object.assign({}, restUploadProps), { accept: accept || 'image/*', beforeUpload: (file, fileList) => {
133
132
  return new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () {
134
- if (cb.current.beforeCrop) {
133
+ if (typeof cb.current.beforeCrop === 'function') {
135
134
  const shouldCrop = yield cb.current.beforeCrop(file, fileList);
136
135
  if (!shouldCrop) {
137
136
  return reject();
@@ -232,28 +231,29 @@ const ImgCrop = forwardRef((props, cropperRef) => {
232
231
  // get the new image
233
232
  const { type, name, uid } = fileRef.current;
234
233
  canvas.toBlob((blob) => __awaiter(void 0, void 0, void 0, function* () {
235
- const newFile = Object.assign(new File([blob], name, { type }), { uid });
236
- if (!beforeUploadRef.current) {
237
- return resolveRef.current(newFile);
234
+ const newFile = new File([blob], name, { type });
235
+ Object.assign(newFile, { uid });
236
+ if (typeof beforeUploadRef.current !== 'function') {
237
+ resolveRef.current(newFile);
238
+ return;
238
239
  }
239
- const rcFile = newFile;
240
- const result = yield beforeUploadRef.current(rcFile, [rcFile]);
241
- if (result === true) {
242
- return resolveRef.current(newFile);
240
+ // https://github.com/ant-design/ant-design/blob/master/components/upload/Upload.tsx
241
+ // https://ant.design/components/upload-cn#api
242
+ try {
243
+ const rcFile = newFile;
244
+ const result = yield beforeUploadRef.current(rcFile, [rcFile]);
245
+ if (result === true) {
246
+ resolveRef.current(newFile); // true
247
+ }
248
+ else if (result === false) {
249
+ rejectRef.current(new Error('beforeUpload → false')); // false
250
+ }
251
+ else {
252
+ resolveRef.current(result); // File, Upload.LIST_IGNORE
253
+ }
243
254
  }
244
- if (result === false) {
245
- return rejectRef.current(new Error('beforeUpload return false'));
246
- }
247
- delete newFile[AntUpload.LIST_IGNORE];
248
- if (result === AntUpload.LIST_IGNORE) {
249
- Object.defineProperty(newFile, AntUpload.LIST_IGNORE, {
250
- value: true,
251
- configurable: true,
252
- });
253
- return rejectRef.current(new Error('beforeUpload return LIST_IGNORE'));
254
- }
255
- if (typeof result === 'object' && result !== null) {
256
- return resolveRef.current(result);
255
+ catch (err) {
256
+ rejectRef.current(new Error('beforeUpload reject')); // reject
257
257
  }
258
258
  }), type, quality);
259
259
  }), [fillColor, quality, rotationSlider]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antd-img-crop",
3
- "version": "4.10.2",
3
+ "version": "4.11.0",
4
4
  "description": "An image cropper for Ant Design Upload",
5
5
  "keywords": [
6
6
  "react",
@@ -36,26 +36,26 @@
36
36
  "@rollup/plugin-replace": "^5.0.2",
37
37
  "@rollup/plugin-typescript": "^11.0.0",
38
38
  "@trivago/prettier-plugin-sort-imports": "^4.1.1",
39
- "@types/node": "^18.15.3",
39
+ "@types/node": "^18.15.6",
40
40
  "@types/react": "^18.0.28",
41
41
  "@types/react-dom": "^18.0.11",
42
42
  "@vitejs/plugin-react": "^3.1.0",
43
- "antd": "^5.3.1",
43
+ "antd": "^5.3.2",
44
44
  "autoprefixer": "^10.4.14",
45
45
  "eslint": "^8.36.0",
46
- "eslint-config-prettier": "^8.7.0",
46
+ "eslint-config-prettier": "^8.8.0",
47
47
  "eslint-config-react-app": "^7.0.1",
48
48
  "postcss": "^8.4.21",
49
- "prettier": "^2.8.4",
49
+ "prettier": "^2.8.6",
50
50
  "prettier-plugin-tailwindcss": "^0.2.5",
51
51
  "react": "^18.2.0",
52
52
  "react-dom": "^18.2.0",
53
- "rollup": "3.19.1",
53
+ "rollup": "3.20.2",
54
54
  "rollup-plugin-dts": "^5.3.0",
55
55
  "rollup-plugin-postcss": "^4.0.2",
56
56
  "tailwindcss": "^3.2.7",
57
57
  "typescript": "^5.0.2",
58
- "vite": "^4.2.0"
58
+ "vite": "^4.2.1"
59
59
  },
60
60
  "scripts": {
61
61
  "build": "rm -rf dist && rollup -c --configPlugin @rollup/plugin-typescript"