@seafile/seafile-editor 2.0.20 → 2.0.22
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/constants/event-types.js +2 -1
- package/dist/editors/inline-editor/index.js +34 -0
- package/dist/extension/commons/more-menu/index.js +2 -6
- package/dist/extension/plugins/image/menu/image-menu-dialog.js +1 -4
- package/dist/extension/plugins/image/menu/image-menu-popover.js +0 -1
- package/dist/pages/longtext-inline-editor/fallback-editor.js +14 -0
- package/dist/pages/longtext-inline-editor/index.css +3 -0
- package/dist/pages/longtext-inline-editor/index.js +4 -1
- package/package.json +1 -1
|
@@ -20,5 +20,6 @@ const EXTERNAL_EVENTS = exports.EXTERNAL_EVENTS = {
|
|
|
20
20
|
ON_ARTICLE_INFO_TOGGLE: 'on_article_info_toggle',
|
|
21
21
|
ON_LINK_CLICK: 'on_link_click',
|
|
22
22
|
ON_INSERT_IMAGE: 'on_insert_image',
|
|
23
|
-
INSERT_IMAGE: 'insert_image'
|
|
23
|
+
INSERT_IMAGE: 'insert_image',
|
|
24
|
+
CLEAR_ARTICLE: 'clear_article'
|
|
24
25
|
};
|
|
@@ -9,12 +9,15 @@ exports.default = void 0;
|
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _slateReact = require("slate-react");
|
|
11
11
|
var _slate = require("slate");
|
|
12
|
+
var _slugid = _interopRequireDefault(require("slugid"));
|
|
12
13
|
var _extension = require("../../extension");
|
|
13
14
|
var _eventBus = _interopRequireDefault(require("../../utils/event-bus"));
|
|
14
15
|
var _eventHandler = _interopRequireDefault(require("../../utils/event-handler"));
|
|
15
16
|
var _withPropsEditor = _interopRequireDefault(require("./with-props-editor"));
|
|
16
17
|
var _core = require("../../extension/core");
|
|
17
18
|
var _common = require("../../utils/common");
|
|
19
|
+
var _eventTypes = require("../../constants/event-types");
|
|
20
|
+
var _elementTypes = require("../../extension/constants/element-types");
|
|
18
21
|
require("./index.css");
|
|
19
22
|
const isMacOS = (0, _common.isMac)();
|
|
20
23
|
const InlineEditor = _ref => {
|
|
@@ -120,6 +123,37 @@ const InlineEditor = _ref => {
|
|
|
120
123
|
};
|
|
121
124
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
122
125
|
}, []);
|
|
126
|
+
const handleClear = (0, _react.useCallback)(() => {
|
|
127
|
+
editor.children = [{
|
|
128
|
+
type: _elementTypes.PARAGRAPH,
|
|
129
|
+
id: _slugid.default.nice(),
|
|
130
|
+
children: [{
|
|
131
|
+
id: _slugid.default.nice(),
|
|
132
|
+
text: ''
|
|
133
|
+
}]
|
|
134
|
+
}];
|
|
135
|
+
editor.selection = null;
|
|
136
|
+
editor.operations = [{
|
|
137
|
+
type: 'remove_text',
|
|
138
|
+
path: [0, 0],
|
|
139
|
+
offset: 0,
|
|
140
|
+
text: ''
|
|
141
|
+
}];
|
|
142
|
+
editor.onChange();
|
|
143
|
+
editor.operations = [];
|
|
144
|
+
editor.history = {
|
|
145
|
+
redos: [],
|
|
146
|
+
undos: []
|
|
147
|
+
};
|
|
148
|
+
}, [editor]);
|
|
149
|
+
(0, _react.useEffect)(() => {
|
|
150
|
+
const eventBus = _eventBus.default.getInstance();
|
|
151
|
+
const clearSubscribe = eventBus.subscribe(_eventTypes.EXTERNAL_EVENTS.CLEAR_ARTICLE, handleClear);
|
|
152
|
+
return () => {
|
|
153
|
+
clearSubscribe();
|
|
154
|
+
};
|
|
155
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
156
|
+
}, []);
|
|
123
157
|
const onEditorClick = (0, _react.useCallback)(() => {
|
|
124
158
|
if (!enableEdit) {
|
|
125
159
|
focusRangeRef.current = editor.selection;
|
|
@@ -15,9 +15,9 @@ var _eventTypes = require("../../../constants/event-types");
|
|
|
15
15
|
require("./index.css");
|
|
16
16
|
const MoreMenu = _ref => {
|
|
17
17
|
let {
|
|
18
|
-
className,
|
|
18
|
+
className = 'sf-menu-group-item',
|
|
19
19
|
disabled,
|
|
20
|
-
isRichEditor,
|
|
20
|
+
isRichEditor = true,
|
|
21
21
|
children
|
|
22
22
|
} = _ref;
|
|
23
23
|
const popoverRef = (0, _react.useRef)(null);
|
|
@@ -60,8 +60,4 @@ const MoreMenu = _ref => {
|
|
|
60
60
|
ref: popoverRef
|
|
61
61
|
}, children));
|
|
62
62
|
};
|
|
63
|
-
MoreMenu.defaultProps = {
|
|
64
|
-
isRichEditor: true,
|
|
65
|
-
className: 'sf-menu-group-item'
|
|
66
|
-
};
|
|
67
63
|
var _default = exports.default = MoreMenu;
|
|
@@ -17,7 +17,7 @@ const ImageMenuInsertInternetDialog = _ref => {
|
|
|
17
17
|
let {
|
|
18
18
|
editor,
|
|
19
19
|
closeDialog,
|
|
20
|
-
className
|
|
20
|
+
className = ''
|
|
21
21
|
} = _ref;
|
|
22
22
|
const [imageUrl, setSetImageUrl] = (0, _react.useState)('');
|
|
23
23
|
const imgUrlInputRef = (0, _react.useRef)(null);
|
|
@@ -77,7 +77,4 @@ const ImageMenuInsertInternetDialog = _ref => {
|
|
|
77
77
|
onClick: handleSubmit
|
|
78
78
|
}, t('Submit'))));
|
|
79
79
|
};
|
|
80
|
-
ImageMenuInsertInternetDialog.defaultProps = {
|
|
81
|
-
classname: ''
|
|
82
|
-
};
|
|
83
80
|
var _default = exports.default = ImageMenuInsertInternetDialog;
|
|
@@ -8,6 +8,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _isHotkey = _interopRequireDefault(require("is-hotkey"));
|
|
11
|
+
var _eventBus = _interopRequireDefault(require("../../utils/event-bus"));
|
|
12
|
+
var _eventTypes = require("../../constants/event-types");
|
|
11
13
|
const FallbackEditor = _ref => {
|
|
12
14
|
let {
|
|
13
15
|
enableEdit,
|
|
@@ -24,6 +26,18 @@ const FallbackEditor = _ref => {
|
|
|
24
26
|
setTimeout(() => inputRef.current.focus());
|
|
25
27
|
}
|
|
26
28
|
}, [enableEdit]);
|
|
29
|
+
const handleClear = (0, _react.useCallback)(() => {
|
|
30
|
+
setValue('');
|
|
31
|
+
inputRef.current.focus();
|
|
32
|
+
}, []);
|
|
33
|
+
(0, _react.useEffect)(() => {
|
|
34
|
+
const eventBus = _eventBus.default.getInstance();
|
|
35
|
+
const clearSubscribe = eventBus.subscribe(_eventTypes.EXTERNAL_EVENTS.CLEAR_ARTICLE, handleClear);
|
|
36
|
+
return () => {
|
|
37
|
+
clearSubscribe();
|
|
38
|
+
};
|
|
39
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
40
|
+
}, []);
|
|
27
41
|
const onChange = (0, _react.useCallback)(event => {
|
|
28
42
|
const newValue = event.target.value;
|
|
29
43
|
if (newValue === value) return;
|
|
@@ -45,6 +45,9 @@
|
|
|
45
45
|
|
|
46
46
|
.sf-long-text-inline-editor-container .sf-slate-editor-toolbar .sf-menu-group:first-child {
|
|
47
47
|
padding-left: 0px !important;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.sf-long-text-inline-editor-container .sf-slate-editor-toolbar .sf-menu-group:nth-child(2) {
|
|
48
51
|
flex: 1 !important;
|
|
49
52
|
}
|
|
50
53
|
|
|
@@ -52,7 +52,10 @@ const LongTextInlineEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) =>
|
|
|
52
52
|
const onEditorValueChanged = (0, _react.useCallback)(value => {
|
|
53
53
|
valueRef.current = value;
|
|
54
54
|
longTextValueChangedRef.current = true;
|
|
55
|
-
|
|
55
|
+
if (isAlwaysEnableEdit) {
|
|
56
|
+
onSaveEditorValue(valueRef.current);
|
|
57
|
+
}
|
|
58
|
+
}, [isAlwaysEnableEdit, onSaveEditorValue]);
|
|
56
59
|
const onHotKey = (0, _react.useCallback)(event => {
|
|
57
60
|
if (!enableEdit) return;
|
|
58
61
|
const keyCode = event.keyCode;
|