@seafile/sdoc-editor 0.2.23-beta1 → 0.2.23-beta3

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.
@@ -7,15 +7,14 @@ import { EXTERNAL_EVENT } from '../../constants';
7
7
  import { DateUtils } from '../../utils';
8
8
  import DraftDropdown from '../draft-dropdown';
9
9
  import RevisionAvatar from '../../assets/images/revision-avatar.png';
10
- import { useDocument } from '../../hooks';
11
10
  import './index.css';
12
11
  var DocInfo = function DocInfo(_ref) {
13
12
  var t = _ref.t,
14
13
  isStarred = _ref.isStarred,
15
14
  isDraft = _ref.isDraft,
16
- isEditMode = _ref.isEditMode;
17
- var _useDocument = useDocument(),
18
- isPublished = _useDocument.isPublished;
15
+ isEditMode = _ref.isEditMode,
16
+ _ref$isPublished = _ref.isPublished,
17
+ isPublished = _ref$isPublished === void 0 ? false : _ref$isPublished;
19
18
  var onInternalLinkClick = useCallback(function () {
20
19
  var eventBus = EventBus.getInstance();
21
20
  eventBus.dispatch(EXTERNAL_EVENT.INTERNAL_LINK_CLICK);
@@ -70,7 +69,7 @@ var DocInfo = function DocInfo(_ref) {
70
69
  className: "sdoc-revision-order"
71
70
  }, t('Revision') + ' ' + revisionId), isPublished && /*#__PURE__*/React.createElement("div", {
72
71
  className: "sdoc-revision-order"
73
- }, t('Published')), /*#__PURE__*/React.createElement(TipMessage, {
72
+ }, t('Published')), !isPublished && /*#__PURE__*/React.createElement(TipMessage, {
74
73
  isEditMode: isEditMode
75
74
  })), /*#__PURE__*/React.createElement("div", {
76
75
  className: "doc-state"
@@ -9,16 +9,16 @@ import CommentsOperation from './comments-operation';
9
9
  import ShareOperation from './share-operation';
10
10
  import TagOperation from './tag-operation';
11
11
  import { isMobile } from '../../utils';
12
- import { useDocument } from '../../hooks';
13
12
  import './style.css';
14
13
  var DocOperations = function DocOperations(_ref) {
15
14
  var isShowChanges = _ref.isShowChanges,
15
+ _ref$isPublished = _ref.isPublished,
16
+ isPublished = _ref$isPublished === void 0 ? false : _ref$isPublished,
16
17
  changes = _ref.changes,
17
18
  handleViewChangesToggle = _ref.handleViewChangesToggle,
19
+ handleRevisionMerged = _ref.handleRevisionMerged,
18
20
  handleRevisionPublished = _ref.handleRevisionPublished;
19
21
  var isSdocRevision = context.getSetting('isSdocRevision');
20
- var _useDocument = useDocument(),
21
- isPublished = _useDocument.isPublished;
22
22
  if (isMobile) {
23
23
  return /*#__PURE__*/React.createElement("div", {
24
24
  className: "doc-ops"
@@ -28,8 +28,10 @@ var DocOperations = function DocOperations(_ref) {
28
28
  className: "doc-ops"
29
29
  }, /*#__PURE__*/React.createElement(RevisionOperations, {
30
30
  isShowChanges: isShowChanges,
31
+ isPublished: isPublished,
31
32
  changes: changes,
32
33
  handleViewChangesToggle: handleViewChangesToggle,
34
+ handleRevisionMerged: handleRevisionMerged,
33
35
  handleRevisionPublished: handleRevisionPublished
34
36
  }), !isPublished && /*#__PURE__*/React.createElement(TagOperation, null), !isPublished && /*#__PURE__*/React.createElement(CommentsOperation, null), !isSdocRevision && /*#__PURE__*/React.createElement(ShareOperation, null), /*#__PURE__*/React.createElement(HistoryOperation, null), !isPublished && /*#__PURE__*/React.createElement(CollaboratorsOperation, null), !isSdocRevision && /*#__PURE__*/React.createElement(MoreOperations, null));
35
37
  };
@@ -4,7 +4,6 @@ import { EventBus } from '../../../basic-sdk';
4
4
  import { getRebase, hasConflict } from '../../../basic-sdk/utils/rebase';
5
5
  import context from '../../../context';
6
6
  import { EXTERNAL_EVENT, TIP_TYPE } from '../../../constants';
7
- import { useDocument } from '../../../hooks/use-document';
8
7
  import toaster from '../../toast';
9
8
  import TipDialog from '../../tip-dialog';
10
9
  import { useTranslation } from 'react-i18next';
@@ -13,10 +12,14 @@ import ViewChanges from './view-changes';
13
12
  import MoreRevisionOperations from './more-revision-operations';
14
13
  import Revisions from './revisions';
15
14
  import ChangesCount from './changes-count';
15
+ import { useDocument } from '../../../hooks';
16
16
  var RevisionOperations = function RevisionOperations(_ref) {
17
17
  var isShowChanges = _ref.isShowChanges,
18
+ _ref$isPublished = _ref.isPublished,
19
+ isPublished = _ref$isPublished === void 0 ? false : _ref$isPublished,
18
20
  changes = _ref.changes,
19
21
  handleViewChangesToggle = _ref.handleViewChangesToggle,
22
+ handleRevisionMerged = _ref.handleRevisionMerged,
20
23
  handleRevisionPublished = _ref.handleRevisionPublished;
21
24
  var isSdocRevision = context.getSetting('isSdocRevision');
22
25
  var _useTranslation = useTranslation(),
@@ -25,7 +28,7 @@ var RevisionOperations = function RevisionOperations(_ref) {
25
28
  _useState2 = _slicedToArray(_useState, 2),
26
29
  isShowTip = _useState2[0],
27
30
  setShowTip = _useState2[1];
28
- var _useState3 = useState(false),
31
+ var _useState3 = useState(''),
29
32
  _useState4 = _slicedToArray(_useState3, 2),
30
33
  tipType = _useState4[0],
31
34
  setTipType = _useState4[1];
@@ -34,9 +37,7 @@ var RevisionOperations = function RevisionOperations(_ref) {
34
37
  mergeValue = _useState6[0],
35
38
  setMergeValue = _useState6[1];
36
39
  var _useDocument = useDocument(),
37
- loadDocument = _useDocument.loadDocument,
38
- isPublished = _useDocument.isPublished,
39
- setPublished = _useDocument.setPublished;
40
+ loadDocument = _useDocument.loadDocument;
40
41
  var onDocumentReplaced = useCallback(function () {
41
42
  if (isShowTip) return;
42
43
  setTipType(TIP_TYPE.HAS_BEEN_REPLACED);
@@ -44,9 +45,9 @@ var RevisionOperations = function RevisionOperations(_ref) {
44
45
  }, [isShowTip]);
45
46
  var hasPublishRevision = useCallback(function () {
46
47
  if (isPublished) return;
47
- setPublished(true);
48
+ handleRevisionPublished(true);
48
49
  toaster.success(t('Revision published'));
49
- }, [isPublished, setPublished, t]);
50
+ }, [isPublished, handleRevisionPublished, t]);
50
51
  var onDocumentRemoved = useCallback(function () {
51
52
  if (isShowTip) return;
52
53
  setTipType(TIP_TYPE.HAS_BEEN_REMOVED);
@@ -123,7 +124,9 @@ var RevisionOperations = function RevisionOperations(_ref) {
123
124
  if (canMerge && isNeedReplaceMaster) {
124
125
  setTipType(TIP_TYPE.PUBLISHING);
125
126
  context.publishRevision().then(function (res) {
126
- setPublished(true);
127
+ setShowTip(false);
128
+ setTipType('');
129
+ handleRevisionPublished(true);
127
130
  toaster.success(t('Revision published'));
128
131
  }).catch(function (error) {
129
132
  toaster.danger(t('Error'));
@@ -147,7 +150,7 @@ var RevisionOperations = function RevisionOperations(_ref) {
147
150
  }
148
151
  toaster.danger(t('Error'));
149
152
  });
150
- }, [loadDocument, t, setPublished]);
153
+ }, [loadDocument, t, handleRevisionPublished]);
151
154
 
152
155
  // confirm publish
153
156
  var onSubmit = useCallback(function () {
@@ -178,7 +181,7 @@ var RevisionOperations = function RevisionOperations(_ref) {
178
181
  context.updateSettings({
179
182
  'originFileVersion': origin_file_version
180
183
  });
181
- handleRevisionPublished && handleRevisionPublished(mergeValue);
184
+ handleRevisionMerged && handleRevisionMerged(mergeValue);
182
185
  setShowTip(false);
183
186
  }).catch(function (error) {
184
187
  toaster.danger(t('Error'));
@@ -3,6 +3,7 @@ import { useCallback, useEffect, useState } from 'react';
3
3
  import context from '../context';
4
4
  export var useDocument = function useDocument() {
5
5
  var isSdocRevision = context.getSetting('isSdocRevision');
6
+ var isPublished = context.getSetting('isPublished');
6
7
  var _useState = useState(true),
7
8
  _useState2 = _slicedToArray(_useState, 2),
8
9
  isFirstLoading = _useState2[0],
@@ -23,10 +24,6 @@ export var useDocument = function useDocument() {
23
24
  _useState8 = _slicedToArray(_useState7, 2),
24
25
  errorMessage = _useState8[0],
25
26
  setErrorMessage = _useState8[1];
26
- var _useState9 = useState(context.getSetting('isPublished')),
27
- _useState10 = _slicedToArray(_useState9, 2),
28
- isPublished = _useState10[0],
29
- setPublished = _useState10[1];
30
27
  var loadDocument = useCallback(function () {
31
28
  return new Promise(function (resolve, reject) {
32
29
  context.getFileContent().then(function (res) {
@@ -86,7 +83,6 @@ export var useDocument = function useDocument() {
86
83
  document: document,
87
84
  loadDocument: loadDocument,
88
85
  reloadDocument: reloadDocument,
89
- isPublished: isPublished,
90
- setPublished: setPublished
86
+ setErrorMessage: setErrorMessage
91
87
  };
92
88
  };
@@ -78,10 +78,12 @@ var PublishedRevisionViewer = function PublishedRevisionViewer() {
78
78
  }, t(errorMessage)));
79
79
  }
80
80
  return /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(Layout, null, /*#__PURE__*/React.createElement(Header, null, /*#__PURE__*/React.createElement(DocInfo, {
81
- isEditMode: false
81
+ isEditMode: false,
82
+ isPublished: true
82
83
  }), /*#__PURE__*/React.createElement(DocOperations, {
83
84
  isShowChanges: isShowChanges,
84
85
  changes: changes,
86
+ isPublished: true,
85
87
  handleViewChangesToggle: handleViewChangesToggle
86
88
  })), /*#__PURE__*/React.createElement(Content, null, /*#__PURE__*/React.createElement(PublishedRevisionDiffViewer, {
87
89
  isShowChanges: isShowChanges,
@@ -24,7 +24,7 @@ var SimpleEditor = function SimpleEditor(_ref) {
24
24
  errorMessage = _useDocument.errorMessage,
25
25
  document = _useDocument.document,
26
26
  reloadDocument = _useDocument.reloadDocument,
27
- isPublished = _useDocument.isPublished;
27
+ setErrorMessage = _useDocument.setErrorMessage;
28
28
  var _useState = useState(false),
29
29
  _useState2 = _slicedToArray(_useState, 2),
30
30
  isShowChanges = _useState2[0],
@@ -37,6 +37,11 @@ var SimpleEditor = function SimpleEditor(_ref) {
37
37
  _useState6 = _slicedToArray(_useState5, 2),
38
38
  changes = _useState6[0],
39
39
  setChanges = _useState6[1];
40
+ var initIsPublished = context.getSetting('isPublished');
41
+ var _useState7 = useState(initIsPublished),
42
+ _useState8 = _slicedToArray(_useState7, 2),
43
+ isPublished = _useState8[0],
44
+ setPublished = _useState8[1];
40
45
 
41
46
  // useMount: reset title
42
47
  useEffect(function () {
@@ -64,11 +69,33 @@ var SimpleEditor = function SimpleEditor(_ref) {
64
69
  setShowChanges(isShowChanges);
65
70
  // eslint-disable-next-line react-hooks/exhaustive-deps
66
71
  }, [document, editorRef.current, isPublished]);
67
- var handleRevisionPublished = useCallback(function (value) {
72
+ var handleRevisionMerged = useCallback(function (value) {
68
73
  setShowChanges(false);
69
74
  editorRef.current.setSlateValue(value);
70
75
  editorRef.current.updateDocumentVersion(value);
71
76
  }, []);
77
+ var handleRevisionPublished = useCallback(function () {
78
+ context.getPublishedRevisionContent().then(function (res) {
79
+ var revisionContentString = res.data.content;
80
+ var document = JSON.parse(revisionContentString);
81
+ setRevisionContent(document);
82
+ setPublished(true);
83
+ context.settings['isPublished'] = true;
84
+ }).catch(function (error) {
85
+ // eslint-disable-next-line
86
+ console.log(error);
87
+ var errorMessage = 'Load_doc_content_error';
88
+ if (error && error.response) {
89
+ var _ref2 = error.response.data || {},
90
+ error_type = _ref2.error_type;
91
+ if (error_type === 'content_invalid') {
92
+ errorMessage = 'Sdoc_format_invalid';
93
+ }
94
+ }
95
+ setErrorMessage(errorMessage);
96
+ setPublished(true);
97
+ });
98
+ }, [setErrorMessage]);
72
99
  if (isFirstLoading) {
73
100
  return /*#__PURE__*/React.createElement(Loading, null);
74
101
  }
@@ -82,11 +109,14 @@ var SimpleEditor = function SimpleEditor(_ref) {
82
109
  return /*#__PURE__*/React.createElement(ErrorBoundary, null, /*#__PURE__*/React.createElement(Layout, null, /*#__PURE__*/React.createElement(Header, null, /*#__PURE__*/React.createElement(DocInfo, {
83
110
  isStarred: isStarred,
84
111
  isDraft: isDraft,
112
+ isPublished: isPublished,
85
113
  isEditMode: isPublished ? false : !isShowChanges
86
114
  }), /*#__PURE__*/React.createElement(DocOperations, {
87
115
  isShowChanges: isShowChanges,
116
+ isPublished: isPublished,
88
117
  changes: changes,
89
118
  handleViewChangesToggle: handleViewChangesToggle,
119
+ handleRevisionMerged: handleRevisionMerged,
90
120
  handleRevisionPublished: handleRevisionPublished
91
121
  })), /*#__PURE__*/React.createElement(Content, null, isPublished && /*#__PURE__*/React.createElement(PublishedRevisionDiffViewer, {
92
122
  isShowChanges: isShowChanges,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "0.2.23beta1",
3
+ "version": "0.2.23beta3",
4
4
  "private": false,
5
5
  "description": "This is a sdoc editor",
6
6
  "main": "dist/index.js",
@@ -1,2 +0,0 @@
1
- import { useCallback, useEffect, useState } from 'react';
2
- import context from '../context';