1 | import _extends from "@babel/runtime/helpers/esm/extends";
|
2 | import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
3 | import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
4 | import _objectSpread from "@babel/runtime/helpers/esm/objectSpread";
|
5 | import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
6 | import _createClass from "@babel/runtime/helpers/esm/createClass";
|
7 | import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
8 | import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
9 | import _inherits from "@babel/runtime/helpers/esm/inherits";
|
10 | import { createElement } from "@wordpress/element";
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | import memize from 'memize';
|
16 | import { size, map, without } from 'lodash';
|
17 |
|
18 |
|
19 |
|
20 |
|
21 | import { withSelect } from '@wordpress/data';
|
22 | import { EditorProvider, ErrorBoundary, PostLockedModal } from '@wordpress/editor';
|
23 | import { StrictMode, Component } from '@wordpress/element';
|
24 | import { KeyboardShortcuts } from '@wordpress/components';
|
25 |
|
26 |
|
27 |
|
28 |
|
29 | import preventEventDiscovery from './prevent-event-discovery';
|
30 | import Layout from './components/layout';
|
31 |
|
32 | var Editor =
|
33 |
|
34 | function (_Component) {
|
35 | _inherits(Editor, _Component);
|
36 |
|
37 | function Editor() {
|
38 | var _this;
|
39 |
|
40 | _classCallCheck(this, Editor);
|
41 |
|
42 | _this = _possibleConstructorReturn(this, _getPrototypeOf(Editor).apply(this, arguments));
|
43 | _this.getEditorSettings = memize(_this.getEditorSettings, {
|
44 | maxSize: 1
|
45 | });
|
46 | return _this;
|
47 | }
|
48 |
|
49 | _createClass(Editor, [{
|
50 | key: "getEditorSettings",
|
51 | value: function getEditorSettings(settings, hasFixedToolbar, focusMode, hiddenBlockTypes, blockTypes) {
|
52 | settings = _objectSpread({}, settings, {
|
53 | hasFixedToolbar: hasFixedToolbar,
|
54 | focusMode: focusMode
|
55 | });
|
56 |
|
57 | if (size(hiddenBlockTypes) > 0) {
|
58 |
|
59 |
|
60 |
|
61 | var defaultAllowedBlockTypes = true === settings.allowedBlockTypes ? map(blockTypes, 'name') : settings.allowedBlockTypes || [];
|
62 | settings.allowedBlockTypes = without.apply(void 0, [defaultAllowedBlockTypes].concat(_toConsumableArray(hiddenBlockTypes)));
|
63 | }
|
64 |
|
65 | return settings;
|
66 | }
|
67 | }, {
|
68 | key: "render",
|
69 | value: function render() {
|
70 | var _this$props = this.props,
|
71 | settings = _this$props.settings,
|
72 | hasFixedToolbar = _this$props.hasFixedToolbar,
|
73 | focusMode = _this$props.focusMode,
|
74 | post = _this$props.post,
|
75 | initialEdits = _this$props.initialEdits,
|
76 | onError = _this$props.onError,
|
77 | hiddenBlockTypes = _this$props.hiddenBlockTypes,
|
78 | blockTypes = _this$props.blockTypes,
|
79 | props = _objectWithoutProperties(_this$props, ["settings", "hasFixedToolbar", "focusMode", "post", "initialEdits", "onError", "hiddenBlockTypes", "blockTypes"]);
|
80 |
|
81 | if (!post) {
|
82 | return null;
|
83 | }
|
84 |
|
85 | var editorSettings = this.getEditorSettings(settings, hasFixedToolbar, focusMode, hiddenBlockTypes, blockTypes);
|
86 | return createElement(StrictMode, null, createElement(EditorProvider, _extends({
|
87 | settings: editorSettings,
|
88 | post: post,
|
89 | initialEdits: initialEdits
|
90 | }, props), createElement(ErrorBoundary, {
|
91 | onError: onError
|
92 | }, createElement(Layout, null), createElement(KeyboardShortcuts, {
|
93 | shortcuts: preventEventDiscovery
|
94 | })), createElement(PostLockedModal, null)));
|
95 | }
|
96 | }]);
|
97 |
|
98 | return Editor;
|
99 | }(Component);
|
100 |
|
101 | export default withSelect(function (select, _ref) {
|
102 | var postId = _ref.postId,
|
103 | postType = _ref.postType;
|
104 |
|
105 | var _select = select('core/edit-post'),
|
106 | isFeatureActive = _select.isFeatureActive,
|
107 | getPreference = _select.getPreference;
|
108 |
|
109 | var _select2 = select('core'),
|
110 | getEntityRecord = _select2.getEntityRecord;
|
111 |
|
112 | var _select3 = select('core/blocks'),
|
113 | getBlockTypes = _select3.getBlockTypes;
|
114 |
|
115 | return {
|
116 | hasFixedToolbar: isFeatureActive('fixedToolbar'),
|
117 | focusMode: isFeatureActive('focusMode'),
|
118 | post: getEntityRecord('postType', postType, postId),
|
119 | hiddenBlockTypes: getPreference('hiddenBlockTypes'),
|
120 | blockTypes: getBlockTypes()
|
121 | };
|
122 | })(Editor);
|
123 |
|
\ | No newline at end of file |