@zat-design/sisyphus-react 3.11.5-beta.5 → 3.11.5-beta.7
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/ProDrawerForm/components/ProDrawer/index.js +27 -3
- package/es/ProUpload/components/ButtonRender.d.ts +1 -0
- package/es/ProUpload/components/ButtonRender.js +32 -2
- package/es/ProUpload/components/ImageRender.d.ts +1 -1
- package/es/ProUpload/index.js +1 -1
- package/lib/ProDrawerForm/components/ProDrawer/index.js +26 -2
- package/lib/ProUpload/components/ButtonRender.d.ts +1 -0
- package/lib/ProUpload/components/ButtonRender.js +32 -2
- package/lib/ProUpload/components/ImageRender.d.ts +1 -1
- package/lib/ProUpload/index.js +1 -1
- package/package.json +1 -1
@@ -9,7 +9,7 @@ import _Modal from "antd/es/modal";
|
|
9
9
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
10
10
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
11
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
12
|
-
import React, { useCallback, useState, useRef } from 'react';
|
12
|
+
import React, { useCallback, useState, useRef, useEffect } from 'react';
|
13
13
|
import { useScroll } from 'ahooks';
|
14
14
|
import { isArray } from 'lodash';
|
15
15
|
import { ReactSVG } from 'react-svg';
|
@@ -46,13 +46,37 @@ var ProDrawer = function ProDrawer(_ref) {
|
|
46
46
|
_useState2 = _slicedToArray(_useState, 2),
|
47
47
|
loading = _useState2[0],
|
48
48
|
toggleLoading = _useState2[1];
|
49
|
+
var _useState3 = useState(''),
|
50
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
51
|
+
initialSnapshot = _useState4[0],
|
52
|
+
setInitialSnapshot = _useState4[1];
|
49
53
|
var noRenderFooter = isView || footer === false || footer === null;
|
54
|
+
// 使用 useEffect 在 visible 变更时延迟捕获 初始DOM 快照
|
55
|
+
useEffect(function () {
|
56
|
+
if (visible) {
|
57
|
+
// 延迟到下一个事件循环,确保 Drawer 已经渲染
|
58
|
+
var timeoutId = setTimeout(function () {
|
59
|
+
if (ref.current) {
|
60
|
+
setInitialSnapshot(ref.current.innerHTML); // 捕获 DOM 快照
|
61
|
+
}
|
62
|
+
}, 100); // 使用 setTimeout 让 DOM 渲染完成后再执行
|
63
|
+
return function () {
|
64
|
+
return clearTimeout(timeoutId);
|
65
|
+
}; // 清理定时器
|
66
|
+
}
|
67
|
+
}, [visible]); // 当 visible 变化时执行
|
68
|
+
// 快照对比
|
69
|
+
var compareSnapshots = function compareSnapshots() {
|
70
|
+
if (!ref.current) return false;
|
71
|
+
return ref.current.innerHTML !== initialSnapshot;
|
72
|
+
};
|
50
73
|
var onConfirm = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
51
74
|
var _locale$ProDrawerForm, _locale$ProDrawerForm2, _locale$ProDrawerForm3, _locale$ProDrawerForm4;
|
52
75
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
53
76
|
while (1) switch (_context.prev = _context.next) {
|
54
77
|
case 0:
|
55
|
-
|
78
|
+
// 如果当前是查看状态,或者不需要确认关闭,或者快照对比不一致,则直接关闭
|
79
|
+
if (isView || !isConfirmClose || !compareSnapshots()) {
|
56
80
|
onCancel && onCancel();
|
57
81
|
} else if (!modalRef.current) {
|
58
82
|
modalRef.current = _Modal.confirm(_objectSpread({
|
@@ -74,7 +98,7 @@ var ProDrawer = function ProDrawer(_ref) {
|
|
74
98
|
return _context.stop();
|
75
99
|
}
|
76
100
|
}, _callee);
|
77
|
-
})), [onCancel, modalRef.current]);
|
101
|
+
})), [onCancel, modalRef.current, ref.current]);
|
78
102
|
var handleFinish = useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
79
103
|
var values, _error$errorFields, _error$errorFields$;
|
80
104
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
@@ -14,6 +14,7 @@ interface DragRenderProps extends Pick<ProUploadProps, 'buttonProps' | 'disabled
|
|
14
14
|
afterRender: string | ReactNode;
|
15
15
|
extExt: any[];
|
16
16
|
isConfirmDelete?: boolean;
|
17
|
+
onRemove?: (file: UploadFile) => any | Promise<any>;
|
17
18
|
}
|
18
19
|
declare const ButtonRender: FC<DragRenderProps>;
|
19
20
|
export default ButtonRender;
|
@@ -2,6 +2,8 @@ import "antd/es/button/style";
|
|
2
2
|
import _Button from "antd/es/button";
|
3
3
|
import "antd/es/upload/style";
|
4
4
|
import _Upload from "antd/es/upload";
|
5
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
6
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
5
7
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
6
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
7
9
|
import { DndContext } from '@dnd-kit/core';
|
@@ -26,7 +28,8 @@ var ButtonRender = function ButtonRender(props) {
|
|
26
28
|
afterRender = props.afterRender,
|
27
29
|
_props$buttonText = props.buttonText,
|
28
30
|
buttonText = _props$buttonText === void 0 ? locale === null || locale === void 0 ? void 0 : (_locale$ProUpload = locale.ProUpload) === null || _locale$ProUpload === void 0 ? void 0 : _locale$ProUpload.buttonText : _props$buttonText,
|
29
|
-
isConfirmDelete = props.isConfirmDelete
|
31
|
+
isConfirmDelete = props.isConfirmDelete,
|
32
|
+
_onRemove = props.onRemove;
|
30
33
|
// 按钮类型的props
|
31
34
|
var buttonUploadProps = _objectSpread(_objectSpread({}, baseUploadProps), {}, {
|
32
35
|
fileList: fileList,
|
@@ -38,7 +41,34 @@ var ButtonRender = function ButtonRender(props) {
|
|
38
41
|
file: file,
|
39
42
|
isConfirmDelete: isConfirmDelete,
|
40
43
|
onPreview: onPreview,
|
41
|
-
onRemove:
|
44
|
+
onRemove: function () {
|
45
|
+
var _onRemove2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(file) {
|
46
|
+
var res;
|
47
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
48
|
+
while (1) switch (_context.prev = _context.next) {
|
49
|
+
case 0:
|
50
|
+
_context.next = 2;
|
51
|
+
return _onRemove === null || _onRemove === void 0 ? void 0 : _onRemove(file);
|
52
|
+
case 2:
|
53
|
+
res = _context.sent;
|
54
|
+
if (!(res === false)) {
|
55
|
+
_context.next = 5;
|
56
|
+
break;
|
57
|
+
}
|
58
|
+
return _context.abrupt("return");
|
59
|
+
case 5:
|
60
|
+
actions.remove(file);
|
61
|
+
case 6:
|
62
|
+
case "end":
|
63
|
+
return _context.stop();
|
64
|
+
}
|
65
|
+
}, _callee);
|
66
|
+
}));
|
67
|
+
function onRemove(_x) {
|
68
|
+
return _onRemove2.apply(this, arguments);
|
69
|
+
}
|
70
|
+
return onRemove;
|
71
|
+
}(),
|
42
72
|
onDownload: onDownload
|
43
73
|
})
|
44
74
|
});
|
@@ -13,7 +13,7 @@ interface DragRenderProps extends Pick<ProUploadProps, 'buttonProps' | 'disabled
|
|
13
13
|
onPreview: any;
|
14
14
|
onDownload: any;
|
15
15
|
extExt: any[];
|
16
|
-
onRemove: (file: UploadFile) =>
|
16
|
+
onRemove: (file: UploadFile) => any | Promise<any>;
|
17
17
|
}
|
18
18
|
declare const ImageRender: FC<DragRenderProps>;
|
19
19
|
export default ImageRender;
|
package/es/ProUpload/index.js
CHANGED
@@ -265,7 +265,7 @@ var ProUpload = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
265
265
|
onDragEnd: onDragEnd,
|
266
266
|
onPreview: onPreview,
|
267
267
|
onDownload: onDownload,
|
268
|
-
onRemove:
|
268
|
+
onRemove: onRemove,
|
269
269
|
onChange: onChange,
|
270
270
|
setFileList: setFileList,
|
271
271
|
extExt: extExt,
|
@@ -49,13 +49,37 @@ var ProDrawer = function ProDrawer(_ref) {
|
|
49
49
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
50
50
|
loading = _useState2[0],
|
51
51
|
toggleLoading = _useState2[1];
|
52
|
+
var _useState3 = (0, _react.useState)(''),
|
53
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
54
|
+
initialSnapshot = _useState4[0],
|
55
|
+
setInitialSnapshot = _useState4[1];
|
52
56
|
var noRenderFooter = isView || footer === false || footer === null;
|
57
|
+
// 使用 useEffect 在 visible 变更时延迟捕获 初始DOM 快照
|
58
|
+
(0, _react.useEffect)(function () {
|
59
|
+
if (visible) {
|
60
|
+
// 延迟到下一个事件循环,确保 Drawer 已经渲染
|
61
|
+
var timeoutId = setTimeout(function () {
|
62
|
+
if (ref.current) {
|
63
|
+
setInitialSnapshot(ref.current.innerHTML); // 捕获 DOM 快照
|
64
|
+
}
|
65
|
+
}, 100); // 使用 setTimeout 让 DOM 渲染完成后再执行
|
66
|
+
return function () {
|
67
|
+
return clearTimeout(timeoutId);
|
68
|
+
}; // 清理定时器
|
69
|
+
}
|
70
|
+
}, [visible]); // 当 visible 变化时执行
|
71
|
+
// 快照对比
|
72
|
+
var compareSnapshots = function compareSnapshots() {
|
73
|
+
if (!ref.current) return false;
|
74
|
+
return ref.current.innerHTML !== initialSnapshot;
|
75
|
+
};
|
53
76
|
var onConfirm = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
|
54
77
|
var _locale$ProDrawerForm, _locale$ProDrawerForm2, _locale$ProDrawerForm3, _locale$ProDrawerForm4;
|
55
78
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
56
79
|
while (1) switch (_context.prev = _context.next) {
|
57
80
|
case 0:
|
58
|
-
|
81
|
+
// 如果当前是查看状态,或者不需要确认关闭,或者快照对比不一致,则直接关闭
|
82
|
+
if (isView || !isConfirmClose || !compareSnapshots()) {
|
59
83
|
onCancel && onCancel();
|
60
84
|
} else if (!modalRef.current) {
|
61
85
|
modalRef.current = _antd.Modal.confirm((0, _objectSpread2.default)({
|
@@ -77,7 +101,7 @@ var ProDrawer = function ProDrawer(_ref) {
|
|
77
101
|
return _context.stop();
|
78
102
|
}
|
79
103
|
}, _callee);
|
80
|
-
})), [onCancel, modalRef.current]);
|
104
|
+
})), [onCancel, modalRef.current, ref.current]);
|
81
105
|
var handleFinish = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2() {
|
82
106
|
var values, _error$errorFields, _error$errorFields$;
|
83
107
|
return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
|
@@ -14,6 +14,7 @@ interface DragRenderProps extends Pick<ProUploadProps, 'buttonProps' | 'disabled
|
|
14
14
|
afterRender: string | ReactNode;
|
15
15
|
extExt: any[];
|
16
16
|
isConfirmDelete?: boolean;
|
17
|
+
onRemove?: (file: UploadFile) => any | Promise<any>;
|
17
18
|
}
|
18
19
|
declare const ButtonRender: FC<DragRenderProps>;
|
19
20
|
export default ButtonRender;
|
@@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
6
6
|
});
|
7
7
|
exports.default = void 0;
|
8
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
8
10
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
9
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
10
12
|
var _antd = require("antd");
|
@@ -30,7 +32,8 @@ var ButtonRender = function ButtonRender(props) {
|
|
30
32
|
afterRender = props.afterRender,
|
31
33
|
_props$buttonText = props.buttonText,
|
32
34
|
buttonText = _props$buttonText === void 0 ? _locale.default === null || _locale.default === void 0 ? void 0 : (_locale$ProUpload = _locale.default.ProUpload) === null || _locale$ProUpload === void 0 ? void 0 : _locale$ProUpload.buttonText : _props$buttonText,
|
33
|
-
isConfirmDelete = props.isConfirmDelete
|
35
|
+
isConfirmDelete = props.isConfirmDelete,
|
36
|
+
_onRemove = props.onRemove;
|
34
37
|
// 按钮类型的props
|
35
38
|
var buttonUploadProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, baseUploadProps), {}, {
|
36
39
|
fileList: fileList,
|
@@ -42,7 +45,34 @@ var ButtonRender = function ButtonRender(props) {
|
|
42
45
|
file: file,
|
43
46
|
isConfirmDelete: isConfirmDelete,
|
44
47
|
onPreview: onPreview,
|
45
|
-
onRemove:
|
48
|
+
onRemove: function () {
|
49
|
+
var _onRemove2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(file) {
|
50
|
+
var res;
|
51
|
+
return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
|
52
|
+
while (1) switch (_context.prev = _context.next) {
|
53
|
+
case 0:
|
54
|
+
_context.next = 2;
|
55
|
+
return _onRemove === null || _onRemove === void 0 ? void 0 : _onRemove(file);
|
56
|
+
case 2:
|
57
|
+
res = _context.sent;
|
58
|
+
if (!(res === false)) {
|
59
|
+
_context.next = 5;
|
60
|
+
break;
|
61
|
+
}
|
62
|
+
return _context.abrupt("return");
|
63
|
+
case 5:
|
64
|
+
actions.remove(file);
|
65
|
+
case 6:
|
66
|
+
case "end":
|
67
|
+
return _context.stop();
|
68
|
+
}
|
69
|
+
}, _callee);
|
70
|
+
}));
|
71
|
+
function onRemove(_x) {
|
72
|
+
return _onRemove2.apply(this, arguments);
|
73
|
+
}
|
74
|
+
return onRemove;
|
75
|
+
}(),
|
46
76
|
onDownload: onDownload
|
47
77
|
})
|
48
78
|
});
|
@@ -13,7 +13,7 @@ interface DragRenderProps extends Pick<ProUploadProps, 'buttonProps' | 'disabled
|
|
13
13
|
onPreview: any;
|
14
14
|
onDownload: any;
|
15
15
|
extExt: any[];
|
16
|
-
onRemove: (file: UploadFile) =>
|
16
|
+
onRemove: (file: UploadFile) => any | Promise<any>;
|
17
17
|
}
|
18
18
|
declare const ImageRender: FC<DragRenderProps>;
|
19
19
|
export default ImageRender;
|
package/lib/ProUpload/index.js
CHANGED
@@ -272,7 +272,7 @@ var ProUpload = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
|
|
272
272
|
onDragEnd: onDragEnd,
|
273
273
|
onPreview: onPreview,
|
274
274
|
onDownload: onDownload,
|
275
|
-
onRemove:
|
275
|
+
onRemove: onRemove,
|
276
276
|
onChange: onChange,
|
277
277
|
setFileList: setFileList,
|
278
278
|
extExt: extExt,
|