@seafile/seafile-editor 3.0.30 → 3.0.31
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.
|
@@ -14,18 +14,40 @@ var _reactI18next = require("react-i18next");
|
|
|
14
14
|
var _constants = require("../../../../constants");
|
|
15
15
|
require("@seafile/react-image-lightbox/style.css");
|
|
16
16
|
require("./style.css");
|
|
17
|
+
const formatImageInfos = images => {
|
|
18
|
+
const formatImages = images.map(src => {
|
|
19
|
+
let name = '';
|
|
20
|
+
try {
|
|
21
|
+
name = src ? decodeURI(src.slice(src.lastIndexOf('/') + 1)).split(/[??]/)[0] : '';
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.log('error', error);
|
|
24
|
+
name = '';
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
name: name,
|
|
28
|
+
thumbnail: src
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
return formatImages;
|
|
32
|
+
};
|
|
17
33
|
const ImagePreviewer = _ref => {
|
|
18
34
|
let {
|
|
19
35
|
imgUrl,
|
|
20
36
|
toggleImagePreviewer
|
|
21
37
|
} = _ref;
|
|
22
38
|
const editor = (0, _slateReact.useSlateStatic)();
|
|
23
|
-
|
|
39
|
+
const originImages = (0, _helper.getImagesUrlList)(editor.children);
|
|
40
|
+
const images = formatImageInfos(originImages);
|
|
24
41
|
const {
|
|
25
42
|
t
|
|
26
43
|
} = (0, _reactI18next.useTranslation)(_constants.TRANSLATE_NAMESPACE);
|
|
27
|
-
const [imageIndex, setImageIndex] = (0, _react.useState)(images.findIndex(item => item === imgUrl));
|
|
28
|
-
const
|
|
44
|
+
const [imageIndex, setImageIndex] = (0, _react.useState)(Math.max(0, images.findIndex(item => item.thumbnail === imgUrl)));
|
|
45
|
+
const imagesLength = images.length;
|
|
46
|
+
const imageItem = images[imageIndex];
|
|
47
|
+
const imageName = imageItem ? imageItem.name : '';
|
|
48
|
+
const mainSrc = imageItem ? imageItem.thumbnail : {};
|
|
49
|
+
const nextImg = images[(imageIndex + 1) % images.length];
|
|
50
|
+
const prevImg = images[(imageIndex + images.length - 1) % images.length];
|
|
29
51
|
const moveToPrevImage = () => {
|
|
30
52
|
const currentImageIndex = (imageIndex + images.length - 1) % images.length;
|
|
31
53
|
setImageIndex(currentImageIndex);
|
|
@@ -39,15 +61,11 @@ const ImagePreviewer = _ref => {
|
|
|
39
61
|
currentIndex: imageIndex,
|
|
40
62
|
setImageIndex: setImageIndex,
|
|
41
63
|
wrapperClassName: "sf-editor-image-previewer",
|
|
42
|
-
imageTitle:
|
|
43
|
-
mainSrc: mainSrc,
|
|
44
|
-
imageIndex: imageIndex,
|
|
45
|
-
images: images
|
|
46
|
-
}),
|
|
64
|
+
imageTitle: "".concat(imageName, " (").concat(imageIndex + 1, "/").concat(imagesLength, ")"),
|
|
47
65
|
mainSrc: mainSrc,
|
|
48
66
|
toolbarButtons: [],
|
|
49
|
-
nextSrc:
|
|
50
|
-
prevSrc:
|
|
67
|
+
nextSrc: nextImg.thumbnail || nextImg.src,
|
|
68
|
+
prevSrc: prevImg.thumbnail || prevImg.src,
|
|
51
69
|
onCloseRequest: toggleImagePreviewer,
|
|
52
70
|
reactModalProps: {
|
|
53
71
|
shouldReturnFocusAfterClose: true,
|
|
@@ -56,35 +74,8 @@ const ImagePreviewer = _ref => {
|
|
|
56
74
|
onMovePrevRequest: moveToPrevImage,
|
|
57
75
|
onMoveNextRequest: moveToNextImage,
|
|
58
76
|
imagePadding: 70,
|
|
59
|
-
reactModalStyle: {
|
|
60
|
-
overlay: {
|
|
61
|
-
zIndex: 1071
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
77
|
zoomInTip: t('Zoom_in'),
|
|
65
78
|
zoomOutTip: t('Zoom_out')
|
|
66
79
|
});
|
|
67
80
|
};
|
|
68
|
-
var _default = exports.default = ImagePreviewer;
|
|
69
|
-
const ImageTitleElement = props => {
|
|
70
|
-
const {
|
|
71
|
-
mainSrc,
|
|
72
|
-
imageIndex,
|
|
73
|
-
images
|
|
74
|
-
} = props;
|
|
75
|
-
const getImgTitle = () => {
|
|
76
|
-
try {
|
|
77
|
-
return mainSrc ? decodeURI(mainSrc.slice(mainSrc.lastIndexOf('/') + 1)) : '';
|
|
78
|
-
} catch (error) {
|
|
79
|
-
console.log('error', error);
|
|
80
|
-
return '';
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
|
|
84
|
-
className: "d-flex"
|
|
85
|
-
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
86
|
-
className: "text-truncate"
|
|
87
|
-
}, getImgTitle()), /*#__PURE__*/_react.default.createElement("span", {
|
|
88
|
-
className: "flex-shrink-0"
|
|
89
|
-
}, "(", imageIndex + 1, "/", images.length, ")")));
|
|
90
|
-
};
|
|
81
|
+
var _default = exports.default = ImagePreviewer;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/seafile-editor",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.31",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
]
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
|
-
"@seafile/react-image-lightbox": "^5.0.
|
|
88
|
+
"@seafile/react-image-lightbox": "^5.0.6",
|
|
89
89
|
"classnames": "2.3.2",
|
|
90
90
|
"copy-to-clipboard": "3.3.1",
|
|
91
91
|
"deep-copy": "1.4.2",
|