@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.
@@ -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;
@@ -76,5 +76,4 @@ const ImageMenuPopover = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
76
76
  onToggleImageDialog: onToggleImageDialog
77
77
  }));
78
78
  });
79
- ImageMenuPopover.defaultProps = {};
80
79
  var _default = exports.default = ImageMenuPopover;
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/seafile-editor",
3
- "version": "2.0.20",
3
+ "version": "2.0.22",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {