@seafile/sdoc-editor 0.1.78-beta → 0.1.78-beta2
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/basic-sdk/editor.js +1 -1
- package/dist/components/doc-info/index.js +8 -3
- package/dist/components/doc-operations/revision-operations/index.js +5 -2
- package/dist/components/doc-operations/revision-operations/more-revision-operations/index.css +58 -0
- package/dist/components/doc-operations/revision-operations/more-revision-operations/index.js +56 -0
- package/dist/components/doc-operations/revision-operations/publish-button.js +2 -5
- package/dist/components/doc-operations/revision-operations/view-changes/index.css +3 -0
- package/dist/components/doc-operations/revision-operations/view-changes/index.js +26 -0
- package/dist/components/switch/index.js +1 -1
- package/dist/components/tip-message/index.js +4 -1
- package/dist/pages/simple-editor.js +66 -62
- package/package.json +1 -1
- package/public/locales/en/sdoc-editor.json +2 -1
- package/public/locales/zh-CN/sdoc-editor.json +2 -1
- package/dist/components/doc-operations/revision-operations/more-revision-operations.js +0 -41
- package/dist/components/doc-operations/revision-operations/view-changes.js +0 -20
package/dist/basic-sdk/editor.js
CHANGED
|
@@ -61,7 +61,6 @@ var SDocEditor = function SDocEditor(_ref) {
|
|
|
61
61
|
// useMount: init socket connection
|
|
62
62
|
useEffect(function () {
|
|
63
63
|
editor.openConnection();
|
|
64
|
-
editor.width = articleRef.current.children[0].clientWidth;
|
|
65
64
|
return function () {
|
|
66
65
|
editor.closeConnection && editor.closeConnection();
|
|
67
66
|
};
|
|
@@ -71,6 +70,7 @@ var SDocEditor = function SDocEditor(_ref) {
|
|
|
71
70
|
// useMount: focus editor
|
|
72
71
|
useEffect(function () {
|
|
73
72
|
var timer = setTimeout(function () {
|
|
73
|
+
editor.width = articleRef.current.children[0].clientWidth;
|
|
74
74
|
focusEditor(editor);
|
|
75
75
|
}, 300);
|
|
76
76
|
return function () {
|
|
@@ -7,7 +7,8 @@ import { EXTERNAL_EVENT } from '../../constants';
|
|
|
7
7
|
import { DateUtils } from '../../utils';
|
|
8
8
|
var DocInfo = function DocInfo(_ref) {
|
|
9
9
|
var t = _ref.t,
|
|
10
|
-
isStarred = _ref.isStarred
|
|
10
|
+
isStarred = _ref.isStarred,
|
|
11
|
+
isEditMode = _ref.isEditMode;
|
|
11
12
|
var onInternalLinkClick = useCallback(function () {
|
|
12
13
|
var eventBus = EventBus.getInstance();
|
|
13
14
|
eventBus.dispatch(EXTERNAL_EVENT.INTERNAL_LINK_CLICK);
|
|
@@ -32,7 +33,9 @@ var DocInfo = function DocInfo(_ref) {
|
|
|
32
33
|
className: "internal-link sdocfont sdoc-link",
|
|
33
34
|
title: t('Internal_link'),
|
|
34
35
|
onClick: onInternalLinkClick
|
|
35
|
-
})), /*#__PURE__*/React.createElement(TipMessage,
|
|
36
|
+
})), /*#__PURE__*/React.createElement(TipMessage, {
|
|
37
|
+
isEditMode: isEditMode
|
|
38
|
+
}));
|
|
36
39
|
if (!isSdocRevision) {
|
|
37
40
|
return /*#__PURE__*/React.createElement("div", {
|
|
38
41
|
className: "doc-info"
|
|
@@ -48,7 +51,9 @@ var DocInfo = function DocInfo(_ref) {
|
|
|
48
51
|
className: "doc-name-container d-flex align-items-center justify-content-start w-100"
|
|
49
52
|
}, /*#__PURE__*/React.createElement("div", {
|
|
50
53
|
className: "doc-name"
|
|
51
|
-
}, oldDocName), /*#__PURE__*/React.createElement(TipMessage,
|
|
54
|
+
}, oldDocName), /*#__PURE__*/React.createElement(TipMessage, {
|
|
55
|
+
isEditMode: isEditMode
|
|
56
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
52
57
|
className: "doc-state"
|
|
53
58
|
}, /*#__PURE__*/React.createElement("span", {
|
|
54
59
|
className: "mr-2"
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import context from '../../../context';
|
|
2
3
|
import PublishRevision from './publish-button';
|
|
3
4
|
import ViewChanges from './view-changes';
|
|
4
5
|
import MoreRevisionOperations from './more-revision-operations';
|
|
5
6
|
var RevisionOperations = function RevisionOperations(_ref) {
|
|
6
7
|
var isShowChanges = _ref.isShowChanges,
|
|
7
8
|
toggleViewChanges = _ref.toggleViewChanges;
|
|
8
|
-
|
|
9
|
+
var isSdocRevision = context.getSetting('isSdocRevision');
|
|
10
|
+
var isPublished = context.getSetting('isPublished');
|
|
11
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, !isSdocRevision && /*#__PURE__*/React.createElement(MoreRevisionOperations, null), isSdocRevision && /*#__PURE__*/React.createElement(ViewChanges, {
|
|
9
12
|
isShowChanges: isShowChanges,
|
|
10
13
|
toggleViewChanges: toggleViewChanges
|
|
11
|
-
}), /*#__PURE__*/React.createElement(PublishRevision, null));
|
|
14
|
+
}), isSdocRevision && !isPublished && /*#__PURE__*/React.createElement(PublishRevision, null));
|
|
12
15
|
};
|
|
13
16
|
export default RevisionOperations;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
.sdoc-more-revision-operations-dropdown .sdoc-more-revision-operations-toggle {
|
|
2
|
+
width: 66px;
|
|
3
|
+
height: 30px;
|
|
4
|
+
border-radius: 15px;
|
|
5
|
+
background-color: #F0F0F0;
|
|
6
|
+
display: flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
color: #666;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.sdoc-more-revision-operations-dropdown .sdoc-more-revision-operations-toggle:hover {
|
|
13
|
+
cursor: pointer;
|
|
14
|
+
color: #333;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.sdoc-more-revision-operations-dropdown .sdoc-more-revision-operations-toggle .sdoc-revise {
|
|
18
|
+
margin-right: 10px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.sdoc-more-revision-operations-dropdown .sdoc-more-revision-operations-toggle .sdocfont {
|
|
22
|
+
font-size: 14px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.sdoc-more-revision-operations-dropdown .dropdown-item {
|
|
26
|
+
padding: 12px;
|
|
27
|
+
min-height: 32px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.sdoc-more-revision-operations-dropdown .sdoc-more-revision-operation {
|
|
31
|
+
width: 373px;
|
|
32
|
+
display: flex;
|
|
33
|
+
flex-direction: column;
|
|
34
|
+
align-items: flex-start;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.sdoc-more-revision-operations-dropdown .sdoc-more-revision-operation-title .sdocfont {
|
|
38
|
+
font-size: 14px;
|
|
39
|
+
margin-right: 6px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.sdoc-more-revision-operations-dropdown .sdoc-more-revision-operation-title-name {
|
|
43
|
+
color: #212529;
|
|
44
|
+
font-size: 14px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.sdoc-more-revision-operations-dropdown .sdoc-more-revision-operation-describe {
|
|
48
|
+
padding-left: 20px;
|
|
49
|
+
color: #999;
|
|
50
|
+
font-size: 13px;
|
|
51
|
+
width: 100%;
|
|
52
|
+
white-space: break-spaces;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.sdoc-more-revision-operations-dropdown .dropdown-item:hover .sdoc-more-revision-operation-title-name,
|
|
56
|
+
.sdoc-more-revision-operations-dropdown .dropdown-item:hover .sdoc-more-revision-operation-describe {
|
|
57
|
+
color: #fff;
|
|
58
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
+
import React, { useCallback, useState } from 'react';
|
|
3
|
+
import { withTranslation } from 'react-i18next';
|
|
4
|
+
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
|
|
5
|
+
import context from '../../../../context';
|
|
6
|
+
import toaster from '../../../toast';
|
|
7
|
+
import './index.css';
|
|
8
|
+
var MoreRevisionOperations = function MoreRevisionOperations(_ref) {
|
|
9
|
+
var t = _ref.t;
|
|
10
|
+
var repoID = context.getSetting('repoID');
|
|
11
|
+
var siteRoot = context.getSetting('siteRoot');
|
|
12
|
+
var _useState = useState(false),
|
|
13
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
14
|
+
isDropdownOpen = _useState2[0],
|
|
15
|
+
setIsDropdownOpen = _useState2[1];
|
|
16
|
+
var toggleDropdown = useCallback(function (isDropdownOpen) {
|
|
17
|
+
setIsDropdownOpen(!isDropdownOpen);
|
|
18
|
+
}, []);
|
|
19
|
+
var startRevise = useCallback(function () {
|
|
20
|
+
context.startRevise().then(function (res) {
|
|
21
|
+
window.location.href = "".concat(siteRoot, "lib/").concat(repoID, "/file").concat(res.data.file_path);
|
|
22
|
+
}).catch(function (error) {
|
|
23
|
+
toaster.danger(t('Error'));
|
|
24
|
+
});
|
|
25
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
26
|
+
}, []);
|
|
27
|
+
return /*#__PURE__*/React.createElement(Dropdown, {
|
|
28
|
+
isOpen: isDropdownOpen,
|
|
29
|
+
toggle: function toggle() {
|
|
30
|
+
return toggleDropdown(isDropdownOpen);
|
|
31
|
+
},
|
|
32
|
+
className: "sdoc-more-revision-operations-dropdown"
|
|
33
|
+
}, /*#__PURE__*/React.createElement(DropdownToggle, {
|
|
34
|
+
className: "ml-4 sdoc-more-revision-operations-toggle",
|
|
35
|
+
tag: "div"
|
|
36
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
37
|
+
className: "sdocfont sdoc-revise"
|
|
38
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
39
|
+
className: "sdocfont sdoc-".concat(isDropdownOpen ? 'caret-up' : 'drop-down')
|
|
40
|
+
})), /*#__PURE__*/React.createElement(DropdownMenu, {
|
|
41
|
+
right: true
|
|
42
|
+
}, /*#__PURE__*/React.createElement(DropdownItem, {
|
|
43
|
+
onClick: startRevise
|
|
44
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
45
|
+
className: "sdoc-more-revision-operation"
|
|
46
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
47
|
+
className: "sdoc-more-revision-operation-title"
|
|
48
|
+
}, /*#__PURE__*/React.createElement("i", {
|
|
49
|
+
className: "sdocfont sdoc-revise"
|
|
50
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
51
|
+
className: "sdoc-more-revision-operation-title-name"
|
|
52
|
+
}, t('Revise'))), /*#__PURE__*/React.createElement("div", {
|
|
53
|
+
className: "sdoc-more-revision-operation-describe"
|
|
54
|
+
}, t('Start_revise_tip'))))));
|
|
55
|
+
};
|
|
56
|
+
export default withTranslation('sdoc-editor')(MoreRevisionOperations);
|
|
@@ -5,8 +5,6 @@ import context from '../../../context';
|
|
|
5
5
|
import toaster from '../../../components/toast';
|
|
6
6
|
var PublishRevision = function PublishRevision(_ref) {
|
|
7
7
|
var t = _ref.t;
|
|
8
|
-
var isSdocRevision = context.getSetting('isSdocRevision');
|
|
9
|
-
var isPublished = context.getSetting('isPublished');
|
|
10
8
|
var repoID = context.getSetting('repoID');
|
|
11
9
|
var siteRoot = context.getSetting('siteRoot');
|
|
12
10
|
var publish = useCallback(function (event) {
|
|
@@ -21,11 +19,10 @@ var PublishRevision = function PublishRevision(_ref) {
|
|
|
21
19
|
|
|
22
20
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
23
21
|
}, []);
|
|
24
|
-
if (!isSdocRevision) return null;
|
|
25
|
-
if (isPublished) return null;
|
|
26
22
|
return /*#__PURE__*/React.createElement(Button, {
|
|
27
23
|
color: "success",
|
|
28
|
-
onClick: publish
|
|
24
|
+
onClick: publish,
|
|
25
|
+
className: "ml-4"
|
|
29
26
|
}, t('Publish'));
|
|
30
27
|
};
|
|
31
28
|
export default withTranslation('sdoc-editor')(PublishRevision);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { withTranslation } from 'react-i18next';
|
|
3
|
+
import { UncontrolledTooltip } from 'reactstrap';
|
|
4
|
+
import Switch from '../../../switch';
|
|
5
|
+
import './index.css';
|
|
6
|
+
var ViewChanges = function ViewChanges(_ref) {
|
|
7
|
+
var isShowChanges = _ref.isShowChanges,
|
|
8
|
+
t = _ref.t,
|
|
9
|
+
toggleViewChanges = _ref.toggleViewChanges;
|
|
10
|
+
var onToggleViewCHanges = useCallback(function () {
|
|
11
|
+
toggleViewChanges(!isShowChanges);
|
|
12
|
+
|
|
13
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
14
|
+
}, [isShowChanges]);
|
|
15
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
16
|
+
id: "sdoc-toggle-revision-changes-container",
|
|
17
|
+
className: "h-100 ml-4 d-flex align-items-center "
|
|
18
|
+
}, /*#__PURE__*/React.createElement(Switch, {
|
|
19
|
+
checked: isShowChanges,
|
|
20
|
+
onChange: onToggleViewCHanges,
|
|
21
|
+
className: "sdoc-toggle-revision-changes d-flex align-items-center"
|
|
22
|
+
})), /*#__PURE__*/React.createElement(UncontrolledTooltip, {
|
|
23
|
+
target: "sdoc-toggle-revision-changes-container"
|
|
24
|
+
}, t('View_changes')));
|
|
25
|
+
};
|
|
26
|
+
export default withTranslation('sdoc-editor')(ViewChanges);
|
|
@@ -19,7 +19,7 @@ function Switch(props) {
|
|
|
19
19
|
onChange: onChange,
|
|
20
20
|
name: "custom-switch-checkbox",
|
|
21
21
|
disabled: disabled
|
|
22
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
22
|
+
}), placeholder && /*#__PURE__*/React.createElement("span", {
|
|
23
23
|
className: "custom-switch-description text-truncate"
|
|
24
24
|
}, placeholder), /*#__PURE__*/React.createElement("span", {
|
|
25
25
|
className: "custom-switch-indicator"
|
|
@@ -23,7 +23,10 @@ var TipMessage = /*#__PURE__*/function (_React$Component) {
|
|
|
23
23
|
});
|
|
24
24
|
};
|
|
25
25
|
_this.onDisconnect = function () {
|
|
26
|
-
var
|
|
26
|
+
var _this$props = _this.props,
|
|
27
|
+
t = _this$props.t,
|
|
28
|
+
isEditMode = _this$props.isEditMode;
|
|
29
|
+
if (!isEditMode) return;
|
|
27
30
|
var message = t('Server_is_not_connected_Operation_will_be_sent_to_server_later');
|
|
28
31
|
toaster.warning(message, {
|
|
29
32
|
hasCloseButton: true,
|
|
@@ -11,32 +11,42 @@ import DiffViewer from './diff-viewer';
|
|
|
11
11
|
import '../assets/css/simple-editor.css';
|
|
12
12
|
var SimpleEditor = function SimpleEditor(_ref) {
|
|
13
13
|
var isStarred = _ref.isStarred;
|
|
14
|
-
var _useState = useState(
|
|
14
|
+
var _useState = useState(true),
|
|
15
15
|
_useState2 = _slicedToArray(_useState, 2),
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
isFirstLoad = _useState2[0],
|
|
17
|
+
setFirstLoad = _useState2[1];
|
|
18
18
|
var _useState3 = useState(false),
|
|
19
19
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
isContextInit = _useState4[0],
|
|
21
|
+
setContextInit = _useState4[1];
|
|
22
22
|
var _useState5 = useState(''),
|
|
23
23
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
24
24
|
errorMessage = _useState6[0],
|
|
25
25
|
setErrorMessage = _useState6[1];
|
|
26
|
-
var _useState7 = useState(
|
|
26
|
+
var _useState7 = useState(false),
|
|
27
27
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
isShowChanges = _useState8[0],
|
|
29
|
+
setShowChanges = _useState8[1];
|
|
30
30
|
var _useState9 = useState(null),
|
|
31
31
|
_useState10 = _slicedToArray(_useState9, 2),
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
document = _useState10[0],
|
|
33
|
+
setDocument = _useState10[1];
|
|
34
34
|
var _useState11 = useState(null),
|
|
35
35
|
_useState12 = _slicedToArray(_useState11, 2),
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
currentContent = _useState12[0],
|
|
37
|
+
setCurrentContent = _useState12[1];
|
|
38
|
+
var _useState13 = useState(null),
|
|
39
|
+
_useState14 = _slicedToArray(_useState13, 2),
|
|
40
|
+
lastContent = _useState14[0],
|
|
41
|
+
setLastContent = _useState14[1];
|
|
38
42
|
useEffect(function () {
|
|
39
43
|
context.initApi();
|
|
44
|
+
initDocumentData(true);
|
|
45
|
+
|
|
46
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
47
|
+
}, []);
|
|
48
|
+
var initDocumentData = useCallback(function (isFirstLoad) {
|
|
49
|
+
setShowChanges(false);
|
|
40
50
|
context.getFileContent().then(function (res) {
|
|
41
51
|
var result = res.data || generateDefaultDocContent();
|
|
42
52
|
if (result && !result.children) {
|
|
@@ -48,90 +58,84 @@ var SimpleEditor = function SimpleEditor(_ref) {
|
|
|
48
58
|
}
|
|
49
59
|
setDocument(result);
|
|
50
60
|
setContextInit(true);
|
|
61
|
+
isFirstLoad && setFirstLoad(false);
|
|
51
62
|
}).catch(function (error) {
|
|
52
63
|
// eslint-disable-next-line
|
|
53
64
|
console.log(error);
|
|
54
65
|
setErrorMessage('load doc content error');
|
|
55
66
|
setDocument(null);
|
|
56
67
|
setContextInit(true);
|
|
68
|
+
isFirstLoad && setFirstLoad(false);
|
|
57
69
|
});
|
|
70
|
+
|
|
71
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
58
72
|
}, []);
|
|
59
|
-
var
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
73
|
+
var initChangesData = useCallback(function () {
|
|
74
|
+
setShowChanges(true);
|
|
75
|
+
context.getSeadocRevisionDownloadLinks().then(function (res) {
|
|
76
|
+
var _res$data = res.data,
|
|
77
|
+
fileDownloadLink = _res$data.file_download_link,
|
|
78
|
+
originFileDownloadLink = _res$data.origin_file_download_link;
|
|
79
|
+
fetch(fileDownloadLink).then(function (res) {
|
|
80
|
+
return res.json();
|
|
81
|
+
}).then(function (revisionContent) {
|
|
82
|
+
fetch(originFileDownloadLink).then(function (res) {
|
|
67
83
|
return res.json();
|
|
68
|
-
}).then(function (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
setLastContent(originContent);
|
|
74
|
-
setErrorMessage(null);
|
|
75
|
-
setContextInit(true);
|
|
76
|
-
setShowChanges(true);
|
|
77
|
-
}).catch(function (error) {
|
|
78
|
-
setErrorMessage('load doc content error');
|
|
79
|
-
setContextInit(true);
|
|
80
|
-
setShowChanges(true);
|
|
81
|
-
});
|
|
84
|
+
}).then(function (originContent) {
|
|
85
|
+
setCurrentContent(revisionContent);
|
|
86
|
+
setLastContent(originContent);
|
|
87
|
+
setErrorMessage(null);
|
|
88
|
+
setContextInit(true);
|
|
82
89
|
}).catch(function (error) {
|
|
83
90
|
setErrorMessage('load doc content error');
|
|
84
91
|
setContextInit(true);
|
|
85
|
-
setShowChanges(true);
|
|
86
92
|
});
|
|
87
93
|
}).catch(function (error) {
|
|
88
94
|
setErrorMessage('load doc content error');
|
|
89
95
|
setContextInit(true);
|
|
90
|
-
setShowChanges(true);
|
|
91
|
-
});
|
|
92
|
-
} else {
|
|
93
|
-
context.getFileContent().then(function (res) {
|
|
94
|
-
var result = res.data || generateDefaultDocContent();
|
|
95
|
-
if (result && !result.children) {
|
|
96
|
-
result = {
|
|
97
|
-
version: 0,
|
|
98
|
-
children: result.content,
|
|
99
|
-
cursors: result.cursors || {}
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
setDocument(result);
|
|
103
|
-
setShowChanges(false);
|
|
104
|
-
setContextInit(true);
|
|
105
|
-
}).catch(function (error) {
|
|
106
|
-
// eslint-disable-next-line
|
|
107
|
-
console.log(error);
|
|
108
|
-
setErrorMessage('load doc content error');
|
|
109
|
-
setDocument(null);
|
|
110
|
-
setShowChanges(false);
|
|
111
|
-
setContextInit(true);
|
|
112
96
|
});
|
|
97
|
+
}).catch(function (error) {
|
|
98
|
+
setErrorMessage('load doc content error');
|
|
99
|
+
setContextInit(true);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
103
|
+
}, []);
|
|
104
|
+
var toggleViewChanges = useCallback(function (isShowChanges) {
|
|
105
|
+
setContextInit(false);
|
|
106
|
+
if (isShowChanges) {
|
|
107
|
+
initChangesData();
|
|
108
|
+
return;
|
|
113
109
|
}
|
|
110
|
+
initDocumentData(false);
|
|
111
|
+
|
|
112
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
114
113
|
}, []);
|
|
115
|
-
if (!isContextInit) {
|
|
114
|
+
if (isFirstLoad && !isContextInit) {
|
|
116
115
|
return /*#__PURE__*/React.createElement(Loading, null);
|
|
117
116
|
}
|
|
118
|
-
if (errorMessage) {
|
|
117
|
+
if (isFirstLoad && errorMessage) {
|
|
119
118
|
return /*#__PURE__*/React.createElement("div", {
|
|
120
119
|
className: "d-flex justify-content-center"
|
|
121
120
|
}, errorMessage);
|
|
122
121
|
}
|
|
123
122
|
return /*#__PURE__*/React.createElement(Layout, null, /*#__PURE__*/React.createElement(Header, null, /*#__PURE__*/React.createElement(DocInfo, {
|
|
124
|
-
isStarred: isStarred
|
|
123
|
+
isStarred: isStarred,
|
|
124
|
+
isEditMode: !isShowChanges
|
|
125
125
|
}), /*#__PURE__*/React.createElement(DocOperations, {
|
|
126
126
|
isShowChanges: isShowChanges,
|
|
127
127
|
toggleViewChanges: toggleViewChanges
|
|
128
|
-
})), /*#__PURE__*/React.createElement(Content, null,
|
|
128
|
+
})), /*#__PURE__*/React.createElement(Content, null, !isContextInit && /*#__PURE__*/React.createElement("div", {
|
|
129
|
+
className: "w-100 h-100 d-flex align-items-center justify-content-center"
|
|
130
|
+
}, /*#__PURE__*/React.createElement(Loading, null)), !isContextInit && errorMessage && /*#__PURE__*/React.createElement("div", {
|
|
131
|
+
className: "w-100 h-100 d-flex justify-content-center align-items-center"
|
|
132
|
+
}, errorMessage), isContextInit && /*#__PURE__*/React.createElement(React.Fragment, null, isShowChanges ? /*#__PURE__*/React.createElement(DiffViewer, {
|
|
129
133
|
currentContent: currentContent,
|
|
130
134
|
lastContent: lastContent
|
|
131
135
|
}) : /*#__PURE__*/React.createElement(SDocEditor, {
|
|
132
136
|
config: context.getEditorConfig(),
|
|
133
137
|
document: document,
|
|
134
138
|
isOpenSocket: context.getSetting('isOpenSocket')
|
|
135
|
-
})));
|
|
139
|
+
}))));
|
|
136
140
|
};
|
|
137
141
|
export default SimpleEditor;
|
package/package.json
CHANGED
|
@@ -258,5 +258,6 @@
|
|
|
258
258
|
"Revision": "Revision",
|
|
259
259
|
"Error": "Error",
|
|
260
260
|
"Start_revise": "Start revise",
|
|
261
|
-
"Failed_to_execute_operation_on_server": "Failed to execute operation on server"
|
|
261
|
+
"Failed_to_execute_operation_on_server": "Failed to execute operation on server",
|
|
262
|
+
"Start_revise_tip": "Create a temporary document and modify on it, merge it back after reviewing changes"
|
|
262
263
|
}
|
|
@@ -258,5 +258,6 @@
|
|
|
258
258
|
"Revision": "修订",
|
|
259
259
|
"Error": "错误",
|
|
260
260
|
"Start_revise": "开始修订",
|
|
261
|
-
"Failed_to_execute_operation_on_server": "无法在服务器上执行操作"
|
|
261
|
+
"Failed_to_execute_operation_on_server": "无法在服务器上执行操作",
|
|
262
|
+
"Start_revise_tip": "Create a temporary document and modify on it, merge it back after reviewing changes"
|
|
262
263
|
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import React, { Component, useCallback, useState } from 'react';
|
|
3
|
-
import { withTranslation } from 'react-i18next';
|
|
4
|
-
import { UncontrolledPopover } from 'reactstrap';
|
|
5
|
-
var MoreRevisionOperations = function MoreRevisionOperations(_ref) {
|
|
6
|
-
var t = _ref.t;
|
|
7
|
-
var _useState = useState(false),
|
|
8
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
9
|
-
isShowMenu = _useState2[0],
|
|
10
|
-
setShowMenu = _useState2[1];
|
|
11
|
-
var id = 'more-revision-operation';
|
|
12
|
-
var setRef = useCallback(function (ref, isShowMenu) {
|
|
13
|
-
if (!ref) return;
|
|
14
|
-
var toggle = ref.toggle;
|
|
15
|
-
ref.toggle = function () {
|
|
16
|
-
toggle && toggle();
|
|
17
|
-
setShowMenu(!isShowMenu);
|
|
18
|
-
};
|
|
19
|
-
}, []);
|
|
20
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
21
|
-
id: id,
|
|
22
|
-
type: "button",
|
|
23
|
-
className: ""
|
|
24
|
-
}, /*#__PURE__*/React.createElement("i", {
|
|
25
|
-
className: "mr-2 sdocfont sdoc-revise"
|
|
26
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
27
|
-
className: "sdocfont sdoc-".concat(isShowMenu ? 'caret-up' : 'drop-down')
|
|
28
|
-
})), /*#__PURE__*/React.createElement(UncontrolledPopover, {
|
|
29
|
-
target: id,
|
|
30
|
-
className: "sdoc-common-menu-popover",
|
|
31
|
-
trigger: "legacy",
|
|
32
|
-
placement: "bottom-start",
|
|
33
|
-
hideArrow: true,
|
|
34
|
-
ref: function ref(_ref2) {
|
|
35
|
-
return setRef(_ref2, isShowMenu);
|
|
36
|
-
}
|
|
37
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
38
|
-
className: "sdoc-common-menu-popover-container"
|
|
39
|
-
}, "123")));
|
|
40
|
-
};
|
|
41
|
-
export default withTranslation('sdoc-editor')(MoreRevisionOperations);
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React, { useCallback } from 'react';
|
|
2
|
-
import { withTranslation } from 'react-i18next';
|
|
3
|
-
import Switch from '../../switch';
|
|
4
|
-
var ViewChanges = function ViewChanges(_ref) {
|
|
5
|
-
var isShowChanges = _ref.isShowChanges,
|
|
6
|
-
t = _ref.t,
|
|
7
|
-
toggleViewChanges = _ref.toggleViewChanges;
|
|
8
|
-
var onToggleViewCHanges = useCallback(function () {
|
|
9
|
-
toggleViewChanges(!isShowChanges);
|
|
10
|
-
}, [isShowChanges]);
|
|
11
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
12
|
-
className: "toggle-revision-changes-container"
|
|
13
|
-
}, /*#__PURE__*/React.createElement(Switch, {
|
|
14
|
-
checked: isShowChanges,
|
|
15
|
-
placeholder: t('View_changes'),
|
|
16
|
-
onChange: onToggleViewCHanges,
|
|
17
|
-
className: "toggle-revision-changes"
|
|
18
|
-
}));
|
|
19
|
-
};
|
|
20
|
-
export default withTranslation('sdoc-editor')(ViewChanges);
|