@seafile/sdoc-editor 3.0.95 → 3.0.97

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.
@@ -276,7 +276,6 @@
276
276
  background: #FAFAFA;
277
277
  border: 1px solid #f0f0f0;
278
278
  position: relative;
279
- overflow-y: hidden !important;
280
279
  }
281
280
 
282
281
  .sdoc-code-block-pre.hidden {
@@ -320,7 +319,7 @@
320
319
  .sdoc-code-block-code.hide-code {
321
320
  max-height: 580.2px;
322
321
  display: block;
323
- overflow: hidden;
322
+ overflow: scroll;
324
323
  }
325
324
 
326
325
  .sdoc-code-block-code .sdoc-code-line {
@@ -18,6 +18,8 @@ var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
18
18
  var _core = require("../../core");
19
19
  var _helpers = require("./helpers");
20
20
  var _hoverMenu = _interopRequireDefault(require("./hover-menu"));
21
+ // Max code-block content display height
22
+ var HIDDEN_CODE_BLOCK_MAX_HEIGHT = 570;
21
23
  var CodeBlock = function CodeBlock(_ref) {
22
24
  var attributes = _ref.attributes,
23
25
  children = _ref.children,
@@ -25,6 +27,7 @@ var CodeBlock = function CodeBlock(_ref) {
25
27
  editor = _ref.editor;
26
28
  var readOnly = (0, _slateReact.useReadOnly)();
27
29
  var codeBlockRef = (0, _react.useRef)();
30
+ var codeContentRef = (0, _react.useRef)();
28
31
  var scrollRef = (0, _useScrollContext.useScrollContext)();
29
32
  var _element$style = element.style,
30
33
  style = _element$style === void 0 ? {
@@ -46,6 +49,10 @@ var CodeBlock = function CodeBlock(_ref) {
46
49
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
47
50
  showAllCode = _useState6[0],
48
51
  setShowAllCode = _useState6[1];
52
+ var _useState7 = (0, _react.useState)(false),
53
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
54
+ isCodeBlockOverflow = _useState8[0],
55
+ setIsCodeBlockOverflow = _useState8[1];
49
56
  var onChangeLanguage = (0, _react.useCallback)(function (lang) {
50
57
  var language = lang.value;
51
58
  var path = _slateReact.ReactEditor.findPath(editor, element);
@@ -138,10 +145,19 @@ var CodeBlock = function CodeBlock(_ref) {
138
145
  var handleScroll = function handleScroll() {
139
146
  _eventBus["default"].getInstance().dispatch(_constants.INTERNAL_EVENT.UPDATE_SEARCH_REPLACE_HIGHLIGHT);
140
147
  };
141
- var isHiddenCodeBlockParts = children.length > 30;
142
- var toggleHidden = function toggleHidden() {
143
- setShowAllCode(!showAllCode);
144
- };
148
+ var toggleHidden = (0, _react.useCallback)(function () {
149
+ setShowAllCode(function (prev) {
150
+ return !prev;
151
+ });
152
+ }, []);
153
+ (0, _react.useEffect)(function () {
154
+ if (!codeContentRef.current) return;
155
+ if (codeContentRef.current.clientHeight > Number(HIDDEN_CODE_BLOCK_MAX_HEIGHT)) {
156
+ setIsCodeBlockOverflow(true);
157
+ } else {
158
+ setIsCodeBlockOverflow(false);
159
+ }
160
+ }, [children]);
145
161
  return /*#__PURE__*/_react["default"].createElement("div", Object.assign({
146
162
  "data-id": element.id
147
163
  }, attributes, {
@@ -151,12 +167,13 @@ var CodeBlock = function CodeBlock(_ref) {
151
167
  }), /*#__PURE__*/_react["default"].createElement("pre", {
152
168
  onScroll: handleScroll,
153
169
  className: (0, _classnames["default"])('sdoc-code-block-pre', {
154
- 'hidden': isHiddenCodeBlockParts
170
+ 'hidden': isCodeBlockOverflow
155
171
  }),
156
172
  ref: codeBlockRef
157
173
  }, /*#__PURE__*/_react["default"].createElement("code", {
174
+ ref: codeContentRef,
158
175
  className: "sdoc-code-block-code ".concat(white_space === 'nowrap' ? 'sdoc-code-no-wrap' : '', " ").concat(!showAllCode ? 'hide-code' : '')
159
- }, children)), children.length > 30 && /*#__PURE__*/_react["default"].createElement("span", {
176
+ }, children)), isCodeBlockOverflow && /*#__PURE__*/_react["default"].createElement("span", {
160
177
  className: "sdoc-code-block-hidden-icon",
161
178
  onClick: toggleHidden,
162
179
  contentEditable: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "3.0.95",
3
+ "version": "3.0.97",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -20,7 +20,7 @@
20
20
  "@seafile/comment-editor": "1.0.17",
21
21
  "@seafile/print-js": "1.6.6",
22
22
  "@seafile/react-image-lightbox": "5.0.4",
23
- "@seafile/seafile-database": "0.0.33",
23
+ "@seafile/seafile-database": "0.0.34",
24
24
  "@seafile/slate": "0.91.8",
25
25
  "@seafile/slate-history": "0.86.2",
26
26
  "@seafile/slate-hyperscript": "0.81.7",
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "78bd4ccf93aa2e6399e6b5a46f79a84fb5b0f638"
75
+ "gitHead": "742e8dd5e34f5ec5b6eda05b44d1f6e9153f3f50"
76
76
  }