@kids-reporter/draft-editor 0.4.4 → 0.4.6
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/lib/block-renderer-fn.js
CHANGED
|
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.atomicBlockRenderer = atomicBlockRenderer;
|
|
7
7
|
var _blockquote = require("./block-renderers/blockquote");
|
|
8
|
+
var _infoBox = require("./block-renderers/info-box");
|
|
8
9
|
var _draftRenderer = require("@kids-reporter/draft-renderer");
|
|
9
10
|
const {
|
|
10
11
|
EmbeddedCodeInArticleBody,
|
|
11
12
|
ImageInArticleBody,
|
|
12
|
-
InfoBoxInArticleBody,
|
|
13
13
|
SlideshowInArticleBody
|
|
14
14
|
} = _draftRenderer.blockRenderers;
|
|
15
15
|
const AtomicBlock = props => {
|
|
@@ -41,9 +41,7 @@ const AtomicBlock = props => {
|
|
|
41
41
|
}
|
|
42
42
|
case 'INFOBOX':
|
|
43
43
|
{
|
|
44
|
-
return
|
|
45
|
-
data: entityData
|
|
46
|
-
});
|
|
44
|
+
return (0, _infoBox.EditableInfoBox)(props);
|
|
47
45
|
}
|
|
48
46
|
}
|
|
49
47
|
return null;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EditableInfoBox = EditableInfoBox;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
+
var _infoBox = require("../buttons/info-box");
|
|
10
|
+
var _draftRenderer = require("@kids-reporter/draft-renderer");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
+
const {
|
|
15
|
+
InfoBoxInArticleBody
|
|
16
|
+
} = _draftRenderer.blockRenderers;
|
|
17
|
+
const StyledInfoBox = (0, _styledComponents.default)(InfoBoxInArticleBody)``;
|
|
18
|
+
const EditButton = _styledComponents.default.div`
|
|
19
|
+
cursor: pointer;
|
|
20
|
+
display: none;
|
|
21
|
+
position: absolute;
|
|
22
|
+
top: 50%;
|
|
23
|
+
left: 50%;
|
|
24
|
+
transform: translate(-50%, -50%);
|
|
25
|
+
`;
|
|
26
|
+
const EditableBlock = _styledComponents.default.div`
|
|
27
|
+
position: relative;
|
|
28
|
+
|
|
29
|
+
&:hover {
|
|
30
|
+
${StyledInfoBox} {
|
|
31
|
+
background-color: #f0f0f0;
|
|
32
|
+
opacity: 0.3;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
${EditButton} {
|
|
36
|
+
opacity: 1;
|
|
37
|
+
display: block;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
function EditableInfoBox(props) {
|
|
42
|
+
const [isInputOpen, setIsInputOpen] = (0, _react.useState)(false);
|
|
43
|
+
const {
|
|
44
|
+
block,
|
|
45
|
+
blockProps,
|
|
46
|
+
contentState
|
|
47
|
+
} = props;
|
|
48
|
+
const {
|
|
49
|
+
onEditStart,
|
|
50
|
+
onEditFinish,
|
|
51
|
+
RichTextEditorComponent: Editor,
|
|
52
|
+
decorator
|
|
53
|
+
} = blockProps;
|
|
54
|
+
const entityKey = block.getEntityAt(0);
|
|
55
|
+
const entity = contentState.getEntity(entityKey);
|
|
56
|
+
const data = entity.getData();
|
|
57
|
+
const onInputChange = inputValue => {
|
|
58
|
+
// close `BlockquoteInput`
|
|
59
|
+
setIsInputOpen(false);
|
|
60
|
+
onEditFinish({
|
|
61
|
+
entityKey,
|
|
62
|
+
entityData: inputValue
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_infoBox.InfoBoxInput, {
|
|
66
|
+
isOpen: isInputOpen,
|
|
67
|
+
onCancel: () => {
|
|
68
|
+
setIsInputOpen(false);
|
|
69
|
+
onEditFinish();
|
|
70
|
+
},
|
|
71
|
+
onConfirm: onInputChange,
|
|
72
|
+
inputValue: data,
|
|
73
|
+
Editor: Editor,
|
|
74
|
+
decorator: decorator
|
|
75
|
+
}), /*#__PURE__*/_react.default.createElement(EditableBlock, null, /*#__PURE__*/_react.default.createElement(StyledInfoBox, {
|
|
76
|
+
data: data
|
|
77
|
+
}), /*#__PURE__*/_react.default.createElement(EditButton, {
|
|
78
|
+
onClick: () => {
|
|
79
|
+
// call `onEditStart` prop as we are trying to update the blockquote entity
|
|
80
|
+
onEditStart();
|
|
81
|
+
// open `BlockquoteInput`
|
|
82
|
+
setIsInputOpen(true);
|
|
83
|
+
}
|
|
84
|
+
}, /*#__PURE__*/_react.default.createElement("i", {
|
|
85
|
+
className: "fa-solid fa-pen"
|
|
86
|
+
}), /*#__PURE__*/_react.default.createElement("span", null, "Modify"))));
|
|
87
|
+
}
|
package/lib/buttons/info-box.js
CHANGED
|
@@ -29,7 +29,7 @@ var InfoBoxLabelEnum = /*#__PURE__*/function (InfoBoxLabelEnum) {
|
|
|
29
29
|
function InfoBoxInput(props) {
|
|
30
30
|
const {
|
|
31
31
|
isOpen,
|
|
32
|
-
|
|
32
|
+
onConfirm,
|
|
33
33
|
onCancel,
|
|
34
34
|
Editor,
|
|
35
35
|
decorator,
|
|
@@ -54,7 +54,7 @@ function InfoBoxInput(props) {
|
|
|
54
54
|
confirm: {
|
|
55
55
|
label: 'Confirm',
|
|
56
56
|
action: () => {
|
|
57
|
-
|
|
57
|
+
onConfirm({
|
|
58
58
|
type: inputValueState.type,
|
|
59
59
|
rawContentState: (0, _draftJs.convertToRaw)(inputValueState.editorState.getCurrentContent())
|
|
60
60
|
});
|
|
@@ -126,7 +126,7 @@ function createInfoBoxButton({
|
|
|
126
126
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, toShowInput && /*#__PURE__*/_react.default.createElement(InfoBoxInput, {
|
|
127
127
|
Editor: InnerEditor,
|
|
128
128
|
decorator: decorator,
|
|
129
|
-
|
|
129
|
+
onConfirm: onChange,
|
|
130
130
|
onCancel: () => {
|
|
131
131
|
setToShowInput(false);
|
|
132
132
|
},
|
package/lib/draft-editor.js
CHANGED
|
@@ -308,6 +308,8 @@ class RichTextEditor extends _react.default.Component {
|
|
|
308
308
|
atomicBlockObj['props'] = {
|
|
309
309
|
onEditStart,
|
|
310
310
|
onEditFinish,
|
|
311
|
+
RichTextEditorComponent: RichTextEditor,
|
|
312
|
+
decorator: _draftRenderer.decorator,
|
|
311
313
|
getMainEditorReadOnly: () => this.state.readOnly
|
|
312
314
|
};
|
|
313
315
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kids-reporter/draft-editor",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
],
|
|
24
24
|
"license": "MIT",
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@kids-reporter/draft-renderer": "^0.4.
|
|
26
|
+
"@kids-reporter/draft-renderer": "^0.4.3",
|
|
27
27
|
"draft-js": "^0.11.7"
|
|
28
28
|
},
|
|
29
29
|
"peerDependencies": {
|