@seafile/sdoc-editor 3.0.143 → 3.0.144
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.
|
@@ -50,6 +50,13 @@ var JSBridge = /*#__PURE__*/(0, _createClass2["default"])(function JSBridge() {
|
|
|
50
50
|
action = _parsedData.action,
|
|
51
51
|
data = _parsedData.data;
|
|
52
52
|
var eventHandler = _this.eventHandlerMap[action];
|
|
53
|
+
if (typeof eventHandler !== 'function') {
|
|
54
|
+
console.error("No event handler registered for action: ".concat(action));
|
|
55
|
+
responseCallback(JSON.stringify({
|
|
56
|
+
success: false
|
|
57
|
+
}));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
53
60
|
var params = null;
|
|
54
61
|
try {
|
|
55
62
|
params = JSON.parse(data);
|
|
@@ -59,8 +66,16 @@ var JSBridge = /*#__PURE__*/(0, _createClass2["default"])(function JSBridge() {
|
|
|
59
66
|
responseCallback(JSON.stringify({
|
|
60
67
|
success: false
|
|
61
68
|
}));
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
var execActionSucceed = false;
|
|
72
|
+
try {
|
|
73
|
+
execActionSucceed = eventHandler(params, _this.editor);
|
|
74
|
+
} catch (err) {
|
|
75
|
+
console.error("Failed to execute action handler: ".concat(action));
|
|
76
|
+
console.error(err);
|
|
77
|
+
execActionSucceed = false;
|
|
62
78
|
}
|
|
63
|
-
var execActionSucceed = eventHandler(params, _this.editor);
|
|
64
79
|
if (execActionSucceed) {
|
|
65
80
|
responseCallback(JSON.stringify({
|
|
66
81
|
success: true
|
|
@@ -5,58 +5,60 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.updateEditorHistory = exports.registerToolbarMenuTrigger = void 0;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var _constants = require("../constants");
|
|
9
|
+
var _constants2 = require("../extension/constants");
|
|
10
10
|
var _core = require("../extension/core");
|
|
11
11
|
var _helpers = require("../extension/plugins/check-list/helpers");
|
|
12
12
|
var _helpers2 = require("../extension/plugins/header/helpers");
|
|
13
13
|
var _helpers3 = require("../extension/plugins/list/helpers");
|
|
14
14
|
var _eventBus = _interopRequireDefault(require("../utils/event-bus"));
|
|
15
|
-
var
|
|
15
|
+
var _constants3 = require("./constants");
|
|
16
16
|
var _jsBridge = _interopRequireDefault(require("./js-bridge"));
|
|
17
|
-
var headerTypes = [
|
|
17
|
+
var headerTypes = [_constants2.ELEMENT_TYPE.TITLE, _constants2.ELEMENT_TYPE.SUBTITLE, _constants2.ELEMENT_TYPE.HEADER1, _constants2.ELEMENT_TYPE.HEADER2, _constants2.ELEMENT_TYPE.HEADER3, _constants2.ELEMENT_TYPE.HEADER4, _constants2.ELEMENT_TYPE.HEADER5, _constants2.ELEMENT_TYPE.HEADER6, _constants2.ELEMENT_TYPE.PARAGRAPH];
|
|
18
18
|
var onToolbarTrigger = function onToolbarTrigger(data, editor) {
|
|
19
|
-
var
|
|
19
|
+
var _ref = data || {},
|
|
20
|
+
type = _ref.type;
|
|
20
21
|
if (headerTypes.includes(type)) {
|
|
21
22
|
var nodeEntry = (0, _core.getNearestBlockNode)(editor);
|
|
22
23
|
if (!nodeEntry) return;
|
|
23
24
|
var newType = type;
|
|
24
25
|
if (nodeEntry[0].type === type) {
|
|
25
|
-
newType =
|
|
26
|
+
newType = _constants2.PARAGRAPH;
|
|
26
27
|
}
|
|
27
28
|
(0, _helpers2.setHeaderType)(editor, newType);
|
|
28
29
|
return true;
|
|
29
30
|
}
|
|
30
|
-
if (type ===
|
|
31
|
+
if (type === _constants2.UNDO) {
|
|
31
32
|
editor.undo();
|
|
32
33
|
return true;
|
|
33
34
|
}
|
|
34
|
-
if (type ===
|
|
35
|
+
if (type === _constants2.REDO) {
|
|
35
36
|
editor.redo();
|
|
36
37
|
return true;
|
|
37
38
|
}
|
|
38
|
-
if (type ===
|
|
39
|
+
if (type === _constants2.UNORDERED_LIST || type === _constants2.ORDERED_LIST) {
|
|
39
40
|
(0, _helpers3.setListType)(editor, type);
|
|
40
41
|
return true;
|
|
41
42
|
}
|
|
42
|
-
if (type ===
|
|
43
|
+
if (type === _constants2.CHECK_LIST_ITEM) {
|
|
43
44
|
var _nodeEntry = (0, _core.getNearestBlockNode)(editor);
|
|
44
45
|
if (!_nodeEntry) return;
|
|
45
46
|
var _newType = type;
|
|
46
47
|
if (_nodeEntry[0].type === type) {
|
|
47
|
-
_newType =
|
|
48
|
+
_newType = _constants2.PARAGRAPH;
|
|
48
49
|
}
|
|
49
50
|
(0, _helpers.setCheckListItemType)(editor, _newType);
|
|
50
51
|
return true;
|
|
51
52
|
}
|
|
52
|
-
if (type ===
|
|
53
|
+
if (type === _constants2.LOCAL_IMAGE) {
|
|
53
54
|
var eventBus = _eventBus["default"].getInstance();
|
|
54
|
-
eventBus.dispatch(
|
|
55
|
-
type:
|
|
55
|
+
eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
|
|
56
|
+
type: type,
|
|
56
57
|
editor: editor
|
|
57
58
|
});
|
|
58
59
|
return true;
|
|
59
60
|
}
|
|
61
|
+
return false;
|
|
60
62
|
};
|
|
61
63
|
var updateEditorHistory = exports.updateEditorHistory = function updateEditorHistory(editor) {
|
|
62
64
|
if (!window.seadroid) {
|
|
@@ -65,5 +67,5 @@ var updateEditorHistory = exports.updateEditorHistory = function updateEditorHis
|
|
|
65
67
|
window.seadroid['history'] = editor.history;
|
|
66
68
|
};
|
|
67
69
|
var registerToolbarMenuTrigger = exports.registerToolbarMenuTrigger = function registerToolbarMenuTrigger() {
|
|
68
|
-
_jsBridge["default"].registerEventHandler(
|
|
70
|
+
_jsBridge["default"].registerEventHandler(_constants3.ACTION_TYPES.TOOLBAR_MENU_TRIGGER, onToolbarTrigger);
|
|
69
71
|
};
|
|
@@ -78,6 +78,10 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
78
78
|
_useState22 = (0, _slicedToArray2["default"])(_useState21, 2),
|
|
79
79
|
formula = _useState22[0],
|
|
80
80
|
setFormula = _useState22[1];
|
|
81
|
+
var _useState23 = (0, _react.useState)(0),
|
|
82
|
+
_useState24 = (0, _slicedToArray2["default"])(_useState23, 2),
|
|
83
|
+
localInputTriggerToken = _useState24[0],
|
|
84
|
+
setLocalInputTriggerToken = _useState24[1];
|
|
81
85
|
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
82
86
|
t = _useTranslation.t;
|
|
83
87
|
var uploadLocalImageInputRef = (0, _react.useRef)();
|
|
@@ -135,6 +139,26 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
135
139
|
};
|
|
136
140
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
137
141
|
}, []);
|
|
142
|
+
(0, _react.useEffect)(function () {
|
|
143
|
+
var triggerLocalInput = function triggerLocalInput(inputRef, type) {
|
|
144
|
+
var inputNode = inputRef.current;
|
|
145
|
+
if (!inputNode) {
|
|
146
|
+
console.error("[InsertElementDialog] ".concat(type, " input ref is empty."));
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
inputNode.click();
|
|
150
|
+
};
|
|
151
|
+
if (dialogType === _constants2.LOCAL_IMAGE) {
|
|
152
|
+
requestAnimationFrame(function () {
|
|
153
|
+
return triggerLocalInput(uploadLocalImageInputRef, _constants2.LOCAL_IMAGE);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
if (dialogType === _constants2.LOCAL_VIDEO) {
|
|
157
|
+
requestAnimationFrame(function () {
|
|
158
|
+
return triggerLocalInput(uploadLocalVideoInputRef, _constants2.LOCAL_VIDEO);
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}, [dialogType, localInputTriggerToken]);
|
|
138
162
|
var toggleDialog = (0, _react.useCallback)(function (_ref4) {
|
|
139
163
|
var type = _ref4.type,
|
|
140
164
|
element = _ref4.element,
|
|
@@ -149,7 +173,6 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
149
173
|
linkTitle = _ref4.linkTitle,
|
|
150
174
|
handleSubmit = _ref4.handleSubmit,
|
|
151
175
|
data = _ref4.data;
|
|
152
|
-
console.log('android test: xiaoqiang test');
|
|
153
176
|
setInsertPosition(insertPosition);
|
|
154
177
|
setSlateNode(slateNode);
|
|
155
178
|
setElement(element);
|
|
@@ -170,16 +193,10 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
|
|
|
170
193
|
// Apply for comment editor, as it has a different editor instance
|
|
171
194
|
setValidEditor(paramEditor || editor);
|
|
172
195
|
setData(data);
|
|
173
|
-
if (type === _constants2.LOCAL_IMAGE) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
}, 0);
|
|
178
|
-
}
|
|
179
|
-
if (type === _constants2.LOCAL_VIDEO) {
|
|
180
|
-
setTimeout(function () {
|
|
181
|
-
uploadLocalVideoInputRef.current && uploadLocalVideoInputRef.current.click();
|
|
182
|
-
}, 0);
|
|
196
|
+
if (type === _constants2.LOCAL_IMAGE || type === _constants2.LOCAL_VIDEO) {
|
|
197
|
+
setLocalInputTriggerToken(function (token) {
|
|
198
|
+
return token + 1;
|
|
199
|
+
});
|
|
183
200
|
}
|
|
184
201
|
}, [editor]);
|
|
185
202
|
var closeDialog = (0, _react.useCallback)(function () {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.144",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "jest",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "8a8efe068fcc74e2bebe435568e142faeacd48a5"
|
|
76
76
|
}
|