UNPKG

1.95 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _react = require('react');
8
9var _react2 = _interopRequireDefault(_react);
10
11var _styleMap = require('../style-map');
12
13var _styleMap2 = _interopRequireDefault(_styleMap);
14
15var _decorators = require('../decorators');
16
17var _decorators2 = _interopRequireDefault(_decorators);
18
19var _component = require('../component');
20
21var _component2 = _interopRequireDefault(_component);
22
23var _blocks = require('../blocks');
24
25var _blockRenderMap = require('../block-render-map');
26
27var _blockRenderMap2 = _interopRequireDefault(_blockRenderMap);
28
29var _draftJs = require('draft-js');
30
31function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
33function blockRenderer(draftBlock) {
34 if (draftBlock.getType() !== 'atomic') return null;
35 var data = draftBlock.getData().toObject();
36 var blockData = _blocks.blocks.find(function (block) {
37 return block.type === data.type;
38 });
39
40 if (blockData) {
41 return {
42 component: _blocks.BaseBlock,
43 editable: false,
44 props: { blockData: blockData }
45 };
46 }
47
48 return false;
49}
50
51/**
52 * Composite the decorators.
53 *
54 * @return {CompositeDecorator}
55 */
56function getDecorators() {
57 return new _draftJs.CompositeDecorator(_decorators2.default);
58}
59
60var EditorView = function EditorView(_ref) {
61 var raw = _ref.raw;
62
63 var contentState = (0, _draftJs.convertFromRaw)(raw);
64 var editorState = _draftJs.EditorState.createWithContent(contentState, getDecorators());
65
66 return _react2.default.createElement(
67 _component2.default,
68 null,
69 _react2.default.createElement(_draftJs.Editor, {
70 editorState: editorState,
71 customStyleMap: _styleMap2.default,
72 blockRenderMap: _blockRenderMap2.default,
73 blockRendererFn: blockRenderer,
74 readOnly: true
75 })
76 );
77};
78
79EditorView.propTypes = {
80 raw: _react.PropTypes.shape().isRequired
81};
82
83exports.default = EditorView;
\No newline at end of file