decap-cms-widget-markdown 3.13.1-beta.0 → 3.13.1

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.
@@ -1,9 +1,10 @@
1
1
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
2
2
  /* eslint-disable react/prop-types */
3
- import { useState } from 'react';
3
+ import { useCallback, useMemo, useState } from 'react';
4
4
  import { css } from '@emotion/react';
5
5
  import { fromJS } from 'immutable';
6
6
  import omit from 'lodash/omit';
7
+ import noop from 'lodash/noop';
7
8
  import { ReactEditor, useSlate } from 'slate-react';
8
9
  import { Range, Transforms } from 'slate';
9
10
  import { getEditorControl, getEditorComponents } from '../index';
@@ -13,7 +14,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
13
14
  styles: "margin-top:0;margin-bottom:16px;&:first-of-type{margin-top:0;};label:Shortcode;"
14
15
  } : {
15
16
  name: "1xfnuhy-Shortcode",
16
- styles: "margin-top:0;margin-bottom:16px;&:first-of-type{margin-top:0;};label:Shortcode;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9NYXJrZG93bkNvbnRyb2wvY29tcG9uZW50cy9TaG9ydGNvZGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbURrQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvTWFya2Rvd25Db250cm9sL2NvbXBvbmVudHMvU2hvcnRjb2RlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcHJvcC10eXBlcyAqL1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyBmcm9tSlMgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IG9taXQgZnJvbSAnbG9kYXNoL29taXQnO1xuaW1wb3J0IHsgUmVhY3RFZGl0b3IsIHVzZVNsYXRlIH0gZnJvbSAnc2xhdGUtcmVhY3QnO1xuaW1wb3J0IHsgUmFuZ2UsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5cbmltcG9ydCB7IGdldEVkaXRvckNvbnRyb2wsIGdldEVkaXRvckNvbXBvbmVudHMgfSBmcm9tICcuLi9pbmRleCc7XG5cbmZ1bmN0aW9uIFNob3J0Y29kZShwcm9wcykge1xuICBjb25zdCBlZGl0b3IgPSB1c2VTbGF0ZSgpO1xuICBjb25zdCB7IGVsZW1lbnQsIGRhdGFLZXkgPSAnc2hvcnRjb2RlRGF0YScsIGNoaWxkcmVuIH0gPSBwcm9wcztcbiAgY29uc3QgRWRpdG9yQ29udHJvbCA9IGdldEVkaXRvckNvbnRyb2woKTtcbiAgY29uc3QgcGx1Z2luID0gZ2V0RWRpdG9yQ29tcG9uZW50cygpLmdldChlbGVtZW50LmRhdGEuc2hvcnRjb2RlKTtcbiAgY29uc3QgZmllbGRLZXlzID0gWydpZCcsICdmcm9tQmxvY2snLCAndG9CbG9jaycsICd0b1ByZXZpZXcnLCAncGF0dGVybicsICdpY29uJ107XG5cbiAgY29uc3QgZmllbGQgPSBmcm9tSlMob21pdChwbHVnaW4sIGZpZWxkS2V5cykpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKGZyb21KUyhlbGVtZW50LmRhdGFbZGF0YUtleV0pKTtcblxuICBmdW5jdGlvbiBoYW5kbGVDaGFuZ2UoZmllbGROYW1lLCB2YWx1ZSwgbWV0YWRhdGEpIHtcbiAgICBjb25zdCBwYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBlbGVtZW50KTtcbiAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0ge1xuICAgICAgZGF0YToge1xuICAgICAgICAuLi5lbGVtZW50LmRhdGEsXG4gICAgICAgIFtkYXRhS2V5XTogdmFsdWUudG9KUygpLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICBUcmFuc2Zvcm1zLnNldE5vZGVzKGVkaXRvciwgbmV3UHJvcGVydGllcywge1xuICAgICAgYXQ6IHBhdGgsXG4gICAgfSk7XG4gICAgc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgZnVuY3Rpb24gaGFuZGxlRm9jdXMoKSB7XG4gICAgY29uc3QgcGF0aCA9IFJlYWN0RWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgZWxlbWVudCk7XG4gICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBwYXRoKTtcbiAgfVxuXG4gIGNvbnN0IHBhdGggPSBSZWFjdEVkaXRvci5maW5kUGF0aChlZGl0b3IsIGVsZW1lbnQpO1xuICBjb25zdCBpc1NlbGVjdGVkID1cbiAgICBlZGl0b3Iuc2VsZWN0aW9uICYmXG4gICAgcGF0aCAmJlxuICAgIFJhbmdlLmlzUmFuZ2UoZWRpdG9yLnNlbGVjdGlvbikgJiZcbiAgICBSYW5nZS5pbmNsdWRlcyhlZGl0b3Iuc2VsZWN0aW9uLCBwYXRoKTtcblxuICByZXR1cm4gKFxuICAgICFmaWVsZC5pc0VtcHR5KCkgJiYgKFxuICAgICAgPGRpdiBvbkNsaWNrPXtoYW5kbGVGb2N1c30gb25Gb2N1cz17aGFuZGxlRm9jdXN9PlxuICAgICAgICA8RWRpdG9yQ29udHJvbFxuICAgICAgICAgIGNzcz17Y3NzYFxuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG5cbiAgICAgICAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgYH1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgZmllbGQ9e2ZpZWxkfVxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgaXNFZGl0b3JDb21wb25lbnQ9e3RydWV9XG4gICAgICAgICAgb25WYWxpZGF0ZU9iamVjdD17KCkgPT4ge319XG4gICAgICAgICAgaXNOZXdFZGl0b3JDb21wb25lbnQ9e2VsZW1lbnQuZGF0YS5zaG9ydGNvZGVOZXd9XG4gICAgICAgICAgaXNTZWxlY3RlZD17aXNTZWxlY3RlZH1cbiAgICAgICAgLz5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9kaXY+XG4gICAgKVxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBTaG9ydGNvZGU7XG4iXX0= */",
17
+ styles: "margin-top:0;margin-bottom:16px;&:first-of-type{margin-top:0;};label:Shortcode;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9NYXJrZG93bkNvbnRyb2wvY29tcG9uZW50cy9TaG9ydGNvZGUuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdURrQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvTWFya2Rvd25Db250cm9sL2NvbXBvbmVudHMvU2hvcnRjb2RlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvcHJvcC10eXBlcyAqL1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgZnJvbUpTIH0gZnJvbSAnaW1tdXRhYmxlJztcbmltcG9ydCBvbWl0IGZyb20gJ2xvZGFzaC9vbWl0JztcbmltcG9ydCBub29wIGZyb20gJ2xvZGFzaC9ub29wJztcbmltcG9ydCB7IFJlYWN0RWRpdG9yLCB1c2VTbGF0ZSB9IGZyb20gJ3NsYXRlLXJlYWN0JztcbmltcG9ydCB7IFJhbmdlLCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuXG5pbXBvcnQgeyBnZXRFZGl0b3JDb250cm9sLCBnZXRFZGl0b3JDb21wb25lbnRzIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5mdW5jdGlvbiBTaG9ydGNvZGUocHJvcHMpIHtcbiAgY29uc3QgZWRpdG9yID0gdXNlU2xhdGUoKTtcbiAgY29uc3QgeyBlbGVtZW50LCBkYXRhS2V5ID0gJ3Nob3J0Y29kZURhdGEnLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIGNvbnN0IEVkaXRvckNvbnRyb2wgPSBnZXRFZGl0b3JDb250cm9sKCk7XG4gIGNvbnN0IHBsdWdpbiA9IGdldEVkaXRvckNvbXBvbmVudHMoKS5nZXQoZWxlbWVudC5kYXRhLnNob3J0Y29kZSk7XG4gIGNvbnN0IGZpZWxkS2V5cyA9IFsnaWQnLCAnZnJvbUJsb2NrJywgJ3RvQmxvY2snLCAndG9QcmV2aWV3JywgJ3BhdHRlcm4nLCAnaWNvbiddO1xuXG4gIGNvbnN0IGZpZWxkID0gdXNlTWVtbygoKSA9PiBmcm9tSlMob21pdChwbHVnaW4sIGZpZWxkS2V5cykpLCBbcGx1Z2luXSk7XG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUoZnJvbUpTKGVsZW1lbnQuZGF0YVtkYXRhS2V5XSkpO1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChmaWVsZE5hbWUsIHZhbHVlLCBtZXRhZGF0YSkgPT4ge1xuICAgICAgY29uc3QgcGF0aCA9IFJlYWN0RWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgZWxlbWVudCk7XG4gICAgICBjb25zdCBuZXdQcm9wZXJ0aWVzID0ge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4uZWxlbWVudC5kYXRhLFxuICAgICAgICAgIFtkYXRhS2V5XTogdmFsdWUudG9KUygpLFxuICAgICAgICAgIG1ldGFkYXRhLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCBuZXdQcm9wZXJ0aWVzLCB7XG4gICAgICAgIGF0OiBwYXRoLFxuICAgICAgfSk7XG4gICAgICBzZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfSxcbiAgICBbZWRpdG9yLCBlbGVtZW50LCBkYXRhS2V5XSxcbiAgKTtcblxuICBmdW5jdGlvbiBoYW5kbGVGb2N1cygpIHtcbiAgICBjb25zdCBwYXRoID0gUmVhY3RFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBlbGVtZW50KTtcbiAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIHBhdGgpO1xuICB9XG5cbiAgY29uc3QgcGF0aCA9IFJlYWN0RWRpdG9yLmZpbmRQYXRoKGVkaXRvciwgZWxlbWVudCk7XG4gIGNvbnN0IGlzU2VsZWN0ZWQgPVxuICAgIGVkaXRvci5zZWxlY3Rpb24gJiZcbiAgICBwYXRoICYmXG4gICAgUmFuZ2UuaXNSYW5nZShlZGl0b3Iuc2VsZWN0aW9uKSAmJlxuICAgIFJhbmdlLmluY2x1ZGVzKGVkaXRvci5zZWxlY3Rpb24sIHBhdGgpO1xuXG4gIHJldHVybiAoXG4gICAgIWZpZWxkLmlzRW1wdHkoKSAmJiAoXG4gICAgICA8ZGl2IG9uQ2xpY2s9e2hhbmRsZUZvY3VzfSBvbkZvY3VzPXtoYW5kbGVGb2N1c30+XG4gICAgICAgIDxFZGl0b3JDb250cm9sXG4gICAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcblxuICAgICAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBgfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICBpc0VkaXRvckNvbXBvbmVudD17dHJ1ZX1cbiAgICAgICAgICBvblZhbGlkYXRlT2JqZWN0PXtub29wfVxuICAgICAgICAgIGlzTmV3RWRpdG9yQ29tcG9uZW50PXtlbGVtZW50LmRhdGEuc2hvcnRjb2RlTmV3fVxuICAgICAgICAgIGlzU2VsZWN0ZWQ9e2lzU2VsZWN0ZWR9XG4gICAgICAgIC8+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgU2hvcnRjb2RlO1xuIl19 */",
17
18
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
18
19
  };
19
20
  function Shortcode(props) {
@@ -26,9 +27,9 @@ function Shortcode(props) {
26
27
  const EditorControl = getEditorControl();
27
28
  const plugin = getEditorComponents().get(element.data.shortcode);
28
29
  const fieldKeys = ['id', 'fromBlock', 'toBlock', 'toPreview', 'pattern', 'icon'];
29
- const field = fromJS(omit(plugin, fieldKeys));
30
+ const field = useMemo(() => fromJS(omit(plugin, fieldKeys)), [plugin]);
30
31
  const [value, setValue] = useState(fromJS(element.data[dataKey]));
31
- function handleChange(fieldName, value, metadata) {
32
+ const handleChange = useCallback((fieldName, value, metadata) => {
32
33
  const path = ReactEditor.findPath(editor, element);
33
34
  const newProperties = {
34
35
  data: {
@@ -41,7 +42,7 @@ function Shortcode(props) {
41
42
  at: path
42
43
  });
43
44
  setValue(value);
44
- }
45
+ }, [editor, element, dataKey]);
45
46
  function handleFocus() {
46
47
  const path = ReactEditor.findPath(editor, element);
47
48
  Transforms.select(editor, path);
@@ -57,7 +58,7 @@ function Shortcode(props) {
57
58
  field: field,
58
59
  onChange: handleChange,
59
60
  isEditorComponent: true,
60
- onValidateObject: () => {},
61
+ onValidateObject: noop,
61
62
  isNewEditorComponent: element.data.shortcodeNew,
62
63
  isSelected: isSelected
63
64
  }), children]
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "decap-cms-widget-markdown",
3
3
  "description": "Widget for editing markdown in Decap CMS.",
4
- "version": "3.13.1-beta.0",
4
+ "version": "3.13.1",
5
5
  "homepage": "https://www.decapcms.org/docs/widgets/#markdown",
6
6
  "repository": {
7
7
  "type": "git",
@@ -56,7 +56,7 @@
56
56
  "react": "^19.1.0",
57
57
  "react-dom": "^19.1.0",
58
58
  "react-immutable-proptypes": "^2.1.0",
59
- "decap-cms-ui-default": "3.9.3-beta.0"
59
+ "decap-cms-ui-default": "3.9.2"
60
60
  },
61
61
  "devDependencies": {
62
62
  "commonmark": "^0.30.0",
@@ -1,8 +1,9 @@
1
1
  /* eslint-disable react/prop-types */
2
- import { useState } from 'react';
2
+ import { useCallback, useMemo, useState } from 'react';
3
3
  import { css } from '@emotion/react';
4
4
  import { fromJS } from 'immutable';
5
5
  import omit from 'lodash/omit';
6
+ import noop from 'lodash/noop';
6
7
  import { ReactEditor, useSlate } from 'slate-react';
7
8
  import { Range, Transforms } from 'slate';
8
9
 
@@ -15,23 +16,26 @@ function Shortcode(props) {
15
16
  const plugin = getEditorComponents().get(element.data.shortcode);
16
17
  const fieldKeys = ['id', 'fromBlock', 'toBlock', 'toPreview', 'pattern', 'icon'];
17
18
 
18
- const field = fromJS(omit(plugin, fieldKeys));
19
+ const field = useMemo(() => fromJS(omit(plugin, fieldKeys)), [plugin]);
19
20
  const [value, setValue] = useState(fromJS(element.data[dataKey]));
20
21
 
21
- function handleChange(fieldName, value, metadata) {
22
- const path = ReactEditor.findPath(editor, element);
23
- const newProperties = {
24
- data: {
25
- ...element.data,
26
- [dataKey]: value.toJS(),
27
- metadata,
28
- },
29
- };
30
- Transforms.setNodes(editor, newProperties, {
31
- at: path,
32
- });
33
- setValue(value);
34
- }
22
+ const handleChange = useCallback(
23
+ (fieldName, value, metadata) => {
24
+ const path = ReactEditor.findPath(editor, element);
25
+ const newProperties = {
26
+ data: {
27
+ ...element.data,
28
+ [dataKey]: value.toJS(),
29
+ metadata,
30
+ },
31
+ };
32
+ Transforms.setNodes(editor, newProperties, {
33
+ at: path,
34
+ });
35
+ setValue(value);
36
+ },
37
+ [editor, element, dataKey],
38
+ );
35
39
 
36
40
  function handleFocus() {
37
41
  const path = ReactEditor.findPath(editor, element);
@@ -61,7 +65,7 @@ function Shortcode(props) {
61
65
  field={field}
62
66
  onChange={handleChange}
63
67
  isEditorComponent={true}
64
- onValidateObject={() => {}}
68
+ onValidateObject={noop}
65
69
  isNewEditorComponent={element.data.shortcodeNew}
66
70
  isSelected={isSelected}
67
71
  />