@seafile/seafile-editor 2.0.34-beta → 2.0.34-beta2

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.
@@ -10,6 +10,12 @@ Object.defineProperty(exports, "BrowserTip", {
10
10
  return _browserTip.default;
11
11
  }
12
12
  });
13
+ Object.defineProperty(exports, "LinkVerifiedDialog", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _linkVerifiedDialog.default;
17
+ }
18
+ });
13
19
  Object.defineProperty(exports, "LongTextModal", {
14
20
  enumerable: true,
15
21
  get: function () {
@@ -24,4 +30,5 @@ Object.defineProperty(exports, "ModalHeader", {
24
30
  });
25
31
  var _longtextModal = _interopRequireDefault(require("./longtext-modal"));
26
32
  var _browserTip = _interopRequireDefault(require("./browser-tip"));
27
- var _modalHeader = _interopRequireDefault(require("./modal-header"));
33
+ var _modalHeader = _interopRequireDefault(require("./modal-header"));
34
+ var _linkVerifiedDialog = _interopRequireDefault(require("./link-verified-dialog"));
@@ -0,0 +1,32 @@
1
+ .sf-link-verified-dialog {
2
+ width: 448px;
3
+ max-width: 448px;
4
+ }
5
+
6
+ .sf-link-verified-dialog .modal-content {
7
+ border-radius: 16px;
8
+ }
9
+
10
+ .sf-link-verified-dialog .modal-header {
11
+ align-items: center;
12
+ padding: 10px 8px 10px 16px;
13
+ border-bottom: 0;
14
+ }
15
+
16
+ .sf-link-verified-dialog .modal-body {
17
+ padding-top: 4px;
18
+ }
19
+
20
+ .sf-link-verified-dialog .sf-tip-default {
21
+ color: #666;
22
+ font-size: 14px;
23
+ }
24
+
25
+ .sf-link-verified-dialog .sf-verify-link {
26
+ word-break: break-all;
27
+ }
28
+
29
+ .sf-link-verified-dialog .modal-footer {
30
+ border-top: 0;
31
+ padding: 0 16px 16px;
32
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _reactstrap = require("reactstrap");
11
+ var _reactI18next = require("react-i18next");
12
+ var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard"));
13
+ var _modalHeader = _interopRequireDefault(require("../modal-header"));
14
+ var _constants = require("../../constants");
15
+ require("./index.css");
16
+ /* eslint-disable react-hooks/rules-of-hooks */
17
+
18
+ const LinkVerifiedDialog = _ref => {
19
+ let {
20
+ onToggle,
21
+ link
22
+ } = _ref;
23
+ const {
24
+ t
25
+ } = (0, _reactI18next.useTranslation)(_constants.TRANSLATE_NAMESPACE);
26
+ const copyLink = (0, _react.useCallback)(() => {
27
+ (0, _copyToClipboard.default)(link);
28
+ onToggle && onToggle();
29
+ }, [link, onToggle]);
30
+ const openLink = (0, _react.useCallback)(() => {
31
+ window.open(link);
32
+ onToggle && onToggle();
33
+ }, [link, onToggle]);
34
+ const {
35
+ host,
36
+ protocol,
37
+ pathname
38
+ } = new URL(link);
39
+ return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
40
+ isOpen: true,
41
+ centered: true,
42
+ toggle: onToggle,
43
+ className: "sf-link-verified-dialog",
44
+ zIndex: 1071
45
+ }, /*#__PURE__*/_react.default.createElement(_modalHeader.default, {
46
+ toggle: onToggle
47
+ }, /*#__PURE__*/_react.default.createElement("span", {
48
+ className: "mr-2"
49
+ }, t('This_link_is_not_verified'))), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, null, /*#__PURE__*/_react.default.createElement("p", {
50
+ className: "sf-tip-default mb-5"
51
+ }, t('This_link_is_not_verified_tip')), /*#__PURE__*/_react.default.createElement("div", {
52
+ className: "sf-verify-link"
53
+ }, /*#__PURE__*/_react.default.createElement("span", {
54
+ className: "sf-tip-default"
55
+ }, protocol), /*#__PURE__*/_react.default.createElement("span", null, host), /*#__PURE__*/_react.default.createElement("span", {
56
+ className: "sf-tip-default"
57
+ }, pathname))), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
58
+ onClick: copyLink,
59
+ className: "m-0 mr-2"
60
+ }, t('Copy_link')), /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
61
+ color: "primary",
62
+ className: "m-0",
63
+ onClick: openLink
64
+ }, t('Open_link'))));
65
+ };
66
+ var _default = exports.default = LinkVerifiedDialog;
@@ -16,10 +16,10 @@ function ModalHeader(_ref) {
16
16
  let close = null;
17
17
  if (toggle) {
18
18
  close = /*#__PURE__*/_react.default.createElement("span", {
19
- class: "sf-editor-close-icon",
19
+ className: "sf-editor-close-icon",
20
20
  onClick: toggle
21
21
  }, /*#__PURE__*/_react.default.createElement("i", {
22
- class: "iconfont icon-x",
22
+ className: "iconfont icon-x",
23
23
  "aria-hidden": "true"
24
24
  }));
25
25
  }
@@ -1 +1,4 @@
1
-
1
+ .sf-virtual-definition {
2
+ margin-top: 0 !important;
3
+ margin-bottom: 0 !important;
4
+ }
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
8
  var _react = _interopRequireWildcard(require("react"));
10
- var _classnames = _interopRequireDefault(require("classnames"));
11
- var _slateReact = require("slate-react");
9
+ var _components = require("../../../../components");
12
10
  require("./index.css");
13
11
  /* eslint-disable react-hooks/rules-of-hooks */
14
12
 
@@ -18,19 +16,29 @@ const renderDefinition = (_ref, editor) => {
18
16
  children,
19
17
  element
20
18
  } = _ref;
21
- const [isShowPopover, setShowPopover] = (0, _react.useState)(false);
19
+ const [isShowConfirmDialog, setIsShowConfirmDialog] = (0, _react.useState)(false);
22
20
  const onHrefClick = (0, _react.useCallback)(event => {
23
21
  event.preventDefault();
24
- setShowPopover(true);
25
- }, []);
26
- console.log(element);
27
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", Object.assign({
22
+ if (element.url.startsWith(window.location.origin)) {
23
+ window.open(element.url);
24
+ return;
25
+ }
26
+ setIsShowConfirmDialog(true);
27
+ }, [element.url]);
28
+ const onToggle = (0, _react.useCallback)(() => {
29
+ setIsShowConfirmDialog(!isShowConfirmDialog);
30
+ }, [isShowConfirmDialog]);
31
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", Object.assign({
28
32
  "data-url": element.url,
29
33
  "data-id": element.id,
30
34
  className: "sf-virtual-definition"
31
35
  }, attributes), /*#__PURE__*/_react.default.createElement("span", null, element.identifier + '. '), /*#__PURE__*/_react.default.createElement("a", {
32
36
  href: element.url,
37
+ "data-url": element.url,
33
38
  onClick: onHrefClick
34
- }, children)));
39
+ }, children)), isShowConfirmDialog && /*#__PURE__*/_react.default.createElement(_components.LinkVerifiedDialog, {
40
+ link: element.url,
41
+ onToggle: onToggle
42
+ }));
35
43
  };
36
44
  var _default = exports.default = renderDefinition;
@@ -21,7 +21,13 @@ const renderLinkReference = (_ref, editor) => {
21
21
  const doms = (0, _core.getNodesByType)(editor.children, _elementTypes.DEFINITION);
22
22
  const dom = doms.find(d => d.identifier === element.identifier);
23
23
  if (!dom) return;
24
- console.log(dom);
24
+ const selector = `[data-id="${dom.id}"]`;
25
+ const definitionDom = document.querySelector(selector);
26
+ if (!definitionDom) return;
27
+ definitionDom.scrollIntoView({
28
+ behavior: 'smooth',
29
+ block: 'center'
30
+ });
25
31
  }, [element, editor]);
26
32
  return /*#__PURE__*/_react.default.createElement("sup", Object.assign({
27
33
  onClick: onClick,
@@ -17,7 +17,6 @@ const renderText = (props, editor) => {
17
17
  text,
18
18
  ...rest
19
19
  } = leaf;
20
- console.log(leaf);
21
20
  let markedChildren = /*#__PURE__*/_react.default.cloneElement(children);
22
21
  if (leaf[_constants.TEXT_STYLE_MAP.BOLD]) {
23
22
  markedChildren = /*#__PURE__*/_react.default.createElement("strong", null, markedChildren);
@@ -42,7 +42,6 @@ const mdStringToSlate = mdString => {
42
42
 
43
43
  // md ast --> slate ast
44
44
  const slateNodes = (0, _transform.formatMdToSlate)(root.children);
45
- console.log('slateNodes: ', slateNodes);
46
45
 
47
46
  // Format the document
48
47
  return reconciledSlateNodes(slateNodes);
@@ -101,7 +101,6 @@ const applyMarkForInlineItem = function (result, item) {
101
101
  }
102
102
  if (type === 'linkReference') {
103
103
  var _item$children$;
104
- console.log('linkReference: ', item);
105
104
  textNode['type'] = _elementTypes.LINK_REFERENCE;
106
105
  textNode['identifier'] = item.identifier;
107
106
  textNode['referenceType'] = item.referenceType;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/seafile-editor",
3
- "version": "2.0.34beta",
3
+ "version": "2.0.34beta2",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -87,6 +87,7 @@
87
87
  "dependencies": {
88
88
  "@seafile/react-image-lightbox": "4.0.2",
89
89
  "classnames": "2.3.2",
90
+ "copy-to-clipboard": "3.3.1",
90
91
  "deep-copy": "1.4.2",
91
92
  "deepmerge": "4.3.1",
92
93
  "is-url": "^1.2.4",
@@ -235,5 +235,8 @@
235
235
  "Horizontal_align": "Horizontal align",
236
236
  "Underline": "Underline",
237
237
  "Row_number": "Row number",
238
- "Column_number": "Column number"
238
+ "Column_number": "Column number",
239
+ "This_link_is_not_verified": "This link is not verified",
240
+ "This_link_is_not_verified_tip": "Before continuing, please ensure you trust this link. If you do not trust the URL, do not open the link to access the site.",
241
+ "Copy_link": "Copy link"
239
242
  }