@wordpress/editor 13.24.1 → 13.25.0
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/CHANGELOG.md +2 -0
- package/build/components/document-bar/index.js +152 -0
- package/build/components/document-bar/index.js.map +1 -0
- package/build/components/editor-canvas/edit-template-blocks-notification.js +106 -0
- package/build/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
- package/build/components/editor-canvas/index.js +292 -0
- package/build/components/editor-canvas/index.js.map +1 -0
- package/build/components/index.js +24 -8
- package/build/components/index.js.map +1 -1
- package/build/components/post-publish-button/index.js +1 -0
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-upload-media.js +2 -4
- package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build/components/post-saved-state/index.js +1 -0
- package/build/components/post-saved-state/index.js.map +1 -1
- package/build/components/post-schedule/panel.js +1 -1
- package/build/components/post-schedule/panel.js.map +1 -1
- package/build/components/post-template/block-theme.js +99 -0
- package/build/components/post-template/block-theme.js.map +1 -0
- package/build/components/post-template/classic-theme.js +171 -0
- package/build/components/post-template/classic-theme.js.map +1 -0
- package/build/components/post-template/create-new-template-modal.js +98 -0
- package/build/components/post-template/create-new-template-modal.js.map +1 -0
- package/build/components/post-template/create-new-template.js +55 -0
- package/build/components/post-template/create-new-template.js.map +1 -0
- package/build/components/post-template/hooks.js +88 -0
- package/build/components/post-template/hooks.js.map +1 -0
- package/build/components/post-template/panel.js +71 -0
- package/build/components/post-template/panel.js.map +1 -0
- package/build/components/post-template/reset-default-template.js +48 -0
- package/build/components/post-template/reset-default-template.js.map +1 -0
- package/build/components/post-template/swap-template-button.js +84 -0
- package/build/components/post-template/swap-template-button.js.map +1 -0
- package/build/components/post-title/index.native.js +0 -1
- package/build/components/post-title/index.native.js.map +1 -1
- package/build/components/preview-dropdown/index.js +113 -0
- package/build/components/preview-dropdown/index.js.map +1 -0
- package/build/components/provider/index.js +24 -82
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/index.native.js +17 -8
- package/build/components/provider/index.native.js.map +1 -1
- package/build/components/provider/navigation-block-editing-mode.js +40 -0
- package/build/components/provider/navigation-block-editing-mode.js.map +1 -0
- package/build/components/provider/use-block-editor-settings.js +9 -10
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/hooks/index.js +1 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/pattern-partial-syncing.js +49 -0
- package/build/hooks/pattern-partial-syncing.js.map +1 -0
- package/build/private-apis.js +4 -0
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +59 -11
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +2 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/index.js +3 -0
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +52 -0
- package/build/store/private-actions.js.map +1 -0
- package/build/store/reducer.js +32 -27
- package/build/store/reducer.js.map +1 -1
- package/build/store/reducer.native.js +0 -1
- package/build/store/reducer.native.js.map +1 -1
- package/build/store/selectors.js +31 -10
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/document-bar/index.js +144 -0
- package/build-module/components/document-bar/index.js.map +1 -0
- package/build-module/components/editor-canvas/edit-template-blocks-notification.js +100 -0
- package/build-module/components/editor-canvas/edit-template-blocks-notification.js.map +1 -0
- package/build-module/components/editor-canvas/index.js +283 -0
- package/build-module/components/editor-canvas/index.js.map +1 -0
- package/build-module/components/index.js +3 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/post-publish-button/index.js +1 -0
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-upload-media.js +2 -4
- package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build-module/components/post-saved-state/index.js +1 -0
- package/build-module/components/post-saved-state/index.js.map +1 -1
- package/build-module/components/post-schedule/panel.js +1 -1
- package/build-module/components/post-schedule/panel.js.map +1 -1
- package/build-module/components/post-template/block-theme.js +91 -0
- package/build-module/components/post-template/block-theme.js.map +1 -0
- package/build-module/components/post-template/classic-theme.js +162 -0
- package/build-module/components/post-template/classic-theme.js.map +1 -0
- package/build-module/components/post-template/create-new-template-modal.js +91 -0
- package/build-module/components/post-template/create-new-template-modal.js.map +1 -0
- package/build-module/components/post-template/create-new-template.js +47 -0
- package/build-module/components/post-template/create-new-template.js.map +1 -0
- package/build-module/components/post-template/hooks.js +78 -0
- package/build-module/components/post-template/hooks.js.map +1 -0
- package/build-module/components/post-template/panel.js +63 -0
- package/build-module/components/post-template/panel.js.map +1 -0
- package/build-module/components/post-template/reset-default-template.js +41 -0
- package/build-module/components/post-template/reset-default-template.js.map +1 -0
- package/build-module/components/post-template/swap-template-button.js +77 -0
- package/build-module/components/post-template/swap-template-button.js.map +1 -0
- package/build-module/components/post-title/index.native.js +0 -1
- package/build-module/components/post-title/index.native.js.map +1 -1
- package/build-module/components/preview-dropdown/index.js +105 -0
- package/build-module/components/preview-dropdown/index.js.map +1 -0
- package/build-module/components/provider/index.js +25 -83
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/index.native.js +18 -9
- package/build-module/components/provider/index.native.js.map +1 -1
- package/build-module/components/provider/navigation-block-editing-mode.js +34 -0
- package/build-module/components/provider/navigation-block-editing-mode.js.map +1 -0
- package/build-module/components/provider/use-block-editor-settings.js +9 -10
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/pattern-partial-syncing.js +46 -0
- package/build-module/hooks/pattern-partial-syncing.js.map +1 -0
- package/build-module/private-apis.js +4 -0
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +53 -9
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +2 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/index.js +3 -0
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +44 -0
- package/build-module/store/private-actions.js.map +1 -0
- package/build-module/store/reducer.js +30 -26
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/reducer.native.js +1 -2
- package/build-module/store/reducer.native.js.map +1 -1
- package/build-module/store/selectors.js +26 -6
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +182 -0
- package/build-style/style.css +182 -0
- package/package.json +32 -31
- package/src/components/document-bar/index.js +182 -0
- package/src/components/document-bar/style.scss +130 -0
- package/src/components/editor-canvas/edit-template-blocks-notification.js +108 -0
- package/src/components/editor-canvas/index.js +381 -0
- package/src/components/index.js +3 -1
- package/src/components/post-publish-button/index.js +1 -0
- package/src/components/post-publish-panel/maybe-upload-media.js +3 -8
- package/src/components/post-saved-state/index.js +1 -0
- package/src/components/post-saved-state/test/__snapshots__/index.js.snap +2 -2
- package/src/components/post-schedule/panel.js +1 -1
- package/src/components/post-template/block-theme.js +109 -0
- package/src/components/post-template/classic-theme.js +213 -0
- package/src/components/post-template/create-new-template-modal.js +139 -0
- package/src/components/post-template/create-new-template.js +50 -0
- package/src/components/post-template/hooks.js +95 -0
- package/src/components/post-template/panel.js +67 -0
- package/src/components/post-template/reset-default-template.js +43 -0
- package/src/components/post-template/style.scss +52 -0
- package/src/components/post-template/swap-template-button.js +83 -0
- package/src/components/post-title/index.native.js +0 -1
- package/src/components/preview-dropdown/index.js +136 -0
- package/src/components/preview-dropdown/style.scss +5 -0
- package/src/components/provider/index.js +28 -118
- package/src/components/provider/index.native.js +26 -12
- package/src/components/provider/navigation-block-editing-mode.js +37 -0
- package/src/components/provider/use-block-editor-settings.js +6 -9
- package/src/hooks/index.js +1 -0
- package/src/hooks/pattern-partial-syncing.js +73 -0
- package/src/private-apis.js +4 -0
- package/src/store/actions.js +51 -9
- package/src/store/defaults.js +1 -0
- package/src/store/index.js +3 -0
- package/src/store/private-actions.js +61 -0
- package/src/store/reducer.js +32 -27
- package/src/store/reducer.native.js +0 -2
- package/src/store/selectors.js +64 -42
- package/src/store/test/selectors.js +88 -147
- package/src/style.scss +3 -0
- package/build/components/post-template/index.js +0 -66
- package/build/components/post-template/index.js.map +0 -1
- package/build-module/components/post-template/index.js +0 -57
- package/build-module/components/post-template/index.js.map +0 -1
- package/src/components/post-template/index.js +0 -64
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = SwapTemplateButton;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
var _htmlEntities = require("@wordpress/html-entities");
|
|
10
|
+
var _blockEditor = require("@wordpress/block-editor");
|
|
11
|
+
var _components = require("@wordpress/components");
|
|
12
|
+
var _i18n = require("@wordpress/i18n");
|
|
13
|
+
var _data = require("@wordpress/data");
|
|
14
|
+
var _coreData = require("@wordpress/core-data");
|
|
15
|
+
var _blocks = require("@wordpress/blocks");
|
|
16
|
+
var _compose = require("@wordpress/compose");
|
|
17
|
+
var _hooks = require("./hooks");
|
|
18
|
+
/**
|
|
19
|
+
* WordPress dependencies
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Internal dependencies
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
function SwapTemplateButton({
|
|
27
|
+
onClick
|
|
28
|
+
}) {
|
|
29
|
+
const [showModal, setShowModal] = (0, _element.useState)(false);
|
|
30
|
+
const availableTemplates = (0, _hooks.useAvailableTemplates)();
|
|
31
|
+
const onClose = (0, _element.useCallback)(() => {
|
|
32
|
+
setShowModal(false);
|
|
33
|
+
}, []);
|
|
34
|
+
const {
|
|
35
|
+
postType,
|
|
36
|
+
postId
|
|
37
|
+
} = (0, _hooks.useEditedPostContext)();
|
|
38
|
+
const {
|
|
39
|
+
editEntityRecord
|
|
40
|
+
} = (0, _data.useDispatch)(_coreData.store);
|
|
41
|
+
if (!availableTemplates?.length) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const onTemplateSelect = async template => {
|
|
45
|
+
editEntityRecord('postType', postType, postId, {
|
|
46
|
+
template: template.name
|
|
47
|
+
}, {
|
|
48
|
+
undoIgnore: true
|
|
49
|
+
});
|
|
50
|
+
onClose(); // Close the template suggestions modal first.
|
|
51
|
+
onClick();
|
|
52
|
+
};
|
|
53
|
+
return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.MenuItem, {
|
|
54
|
+
onClick: () => setShowModal(true)
|
|
55
|
+
}, (0, _i18n.__)('Swap template')), showModal && (0, _react.createElement)(_components.Modal, {
|
|
56
|
+
title: (0, _i18n.__)('Choose a template'),
|
|
57
|
+
onRequestClose: onClose,
|
|
58
|
+
overlayClassName: "editor-post-template__swap-template-modal",
|
|
59
|
+
isFullScreen: true
|
|
60
|
+
}, (0, _react.createElement)("div", {
|
|
61
|
+
className: "editor-post-template__swap-template-modal-content"
|
|
62
|
+
}, (0, _react.createElement)(TemplatesList, {
|
|
63
|
+
onSelect: onTemplateSelect
|
|
64
|
+
}))));
|
|
65
|
+
}
|
|
66
|
+
function TemplatesList({
|
|
67
|
+
onSelect
|
|
68
|
+
}) {
|
|
69
|
+
const availableTemplates = (0, _hooks.useAvailableTemplates)();
|
|
70
|
+
const templatesAsPatterns = (0, _element.useMemo)(() => availableTemplates.map(template => ({
|
|
71
|
+
name: template.slug,
|
|
72
|
+
blocks: (0, _blocks.parse)(template.content.raw),
|
|
73
|
+
title: (0, _htmlEntities.decodeEntities)(template.title.rendered),
|
|
74
|
+
id: template.id
|
|
75
|
+
})), [availableTemplates]);
|
|
76
|
+
const shownTemplates = (0, _compose.useAsyncList)(templatesAsPatterns);
|
|
77
|
+
return (0, _react.createElement)(_blockEditor.__experimentalBlockPatternsList, {
|
|
78
|
+
label: (0, _i18n.__)('Templates'),
|
|
79
|
+
blockPatterns: templatesAsPatterns,
|
|
80
|
+
shownPatterns: shownTemplates,
|
|
81
|
+
onClickPattern: onSelect
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=swap-template-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_element","require","_htmlEntities","_blockEditor","_components","_i18n","_data","_coreData","_blocks","_compose","_hooks","SwapTemplateButton","onClick","showModal","setShowModal","useState","availableTemplates","useAvailableTemplates","onClose","useCallback","postType","postId","useEditedPostContext","editEntityRecord","useDispatch","coreStore","length","onTemplateSelect","template","name","undoIgnore","_react","createElement","Fragment","MenuItem","__","Modal","title","onRequestClose","overlayClassName","isFullScreen","className","TemplatesList","onSelect","templatesAsPatterns","useMemo","map","slug","blocks","parse","content","raw","decodeEntities","rendered","id","shownTemplates","useAsyncList","__experimentalBlockPatternsList","label","blockPatterns","shownPatterns","onClickPattern"],"sources":["@wordpress/editor/src/components/post-template/swap-template-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState, useCallback } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport { MenuItem, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { parse } from '@wordpress/blocks';\nimport { useAsyncList } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { useAvailableTemplates, useEditedPostContext } from './hooks';\n\nexport default function SwapTemplateButton( { onClick } ) {\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst availableTemplates = useAvailableTemplates();\n\tconst onClose = useCallback( () => {\n\t\tsetShowModal( false );\n\t}, [] );\n\tconst { postType, postId } = useEditedPostContext();\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tif ( ! availableTemplates?.length ) {\n\t\treturn null;\n\t}\n\tconst onTemplateSelect = async ( template ) => {\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId,\n\t\t\t{ template: template.name },\n\t\t\t{ undoIgnore: true }\n\t\t);\n\t\tonClose(); // Close the template suggestions modal first.\n\t\tonClick();\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setShowModal( true ) }>\n\t\t\t\t{ __( 'Swap template' ) }\n\t\t\t</MenuItem>\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Choose a template' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\toverlayClassName=\"editor-post-template__swap-template-modal\"\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<div className=\"editor-post-template__swap-template-modal-content\">\n\t\t\t\t\t\t<TemplatesList onSelect={ onTemplateSelect } />\n\t\t\t\t\t</div>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction TemplatesList( { onSelect } ) {\n\tconst availableTemplates = useAvailableTemplates();\n\tconst templatesAsPatterns = useMemo(\n\t\t() =>\n\t\t\tavailableTemplates.map( ( template ) => ( {\n\t\t\t\tname: template.slug,\n\t\t\t\tblocks: parse( template.content.raw ),\n\t\t\t\ttitle: decodeEntities( template.title.rendered ),\n\t\t\t\tid: template.id,\n\t\t\t} ) ),\n\t\t[ availableTemplates ]\n\t);\n\tconst shownTemplates = useAsyncList( templatesAsPatterns );\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tlabel={ __( 'Templates' ) }\n\t\t\tblockPatterns={ templatesAsPatterns }\n\t\t\tshownPatterns={ shownTemplates }\n\t\t\tonClickPattern={ onSelect }\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_element","_richText","_htmlEntities","_data","_components","_compose","_i18n","_blocks","_blockEditor","_editor","_style","_interopRequireDefault","PostTitle","Component","constructor","props","setRef","bind","onPaste","componentDidUpdate","prevProps","isSelected","isAnyBlockSelected","richTextRef","blur","onUnselect","componentDidMount","innerRef","handleFocusOutside","focus","onSelect","value","onChange","plainText","html","title","onInsertBlockAfter","onUpdate","content","pasteHandler","HTML","length","valueToInsert","create","insert","firstBlock","name","attributes","slice","richText","getTitle","postType","__","sprintf","render","placeholder","style","focusedBorderColor","borderStyle","isDimmed","globalStyles","decodedPlaceholder","decodeEntities","borderColor","titleStyles","text","color","placeholderColor","_react","createElement","View","testID","styles","titleContainer","dimmed","accessible","accessibilityLabel","accessibilityHint","RichText","Raw","tagName","tagsToEliminate","unstableOnFocus","onBlur","multiline","fontSize","lineHeight","fontWeight","deleteEnter","onSelectionChange","onEnter","onEnterPress","disableEditingMenu","__unstableIsSelected","__unstableOnCreateUndoLevel","_default","compose","withSelect","select","isPostTitleSelected","getEditedPostAttribute","editorStore","getSelectedBlockClientId","getBlockRootClientId","getSettings","blockEditorStore","selectedId","selectionIsNested","__experimentalGlobalStylesBaseStyles","withDispatch","dispatch","undo","redo","togglePostTitleSelection","editPost","clearSelectedBlock","insertDefaultBlock","insertBlocks","undefined","onUndo","onRedo","blocks","withInstanceId","withFocusOutside","exports","default"],"sources":["@wordpress/editor/src/components/post-title/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { create, insert } from '@wordpress/rich-text';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { withFocusOutside } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { pasteHandler } from '@wordpress/blocks';\nimport { store as blockEditorStore, RichText } from '@wordpress/block-editor';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nclass PostTitle extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.setRef = this.setRef.bind( this );\n\t\tthis.onPaste = this.onPaste.bind( this );\n\t}\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Unselect if any other block is selected and blur the RichText.\n\t\tif (\n\t\t\tthis.props.isSelected &&\n\t\t\t! prevProps.isAnyBlockSelected &&\n\t\t\tthis.props.isAnyBlockSelected\n\t\t) {\n\t\t\tif ( this.richTextRef ) {\n\t\t\t\tthis.richTextRef.blur();\n\t\t\t}\n\t\t\tthis.props.onUnselect();\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.innerRef ) {\n\t\t\tthis.props.innerRef( this );\n\t\t}\n\t}\n\n\thandleFocusOutside() {\n\t\tthis.props.onUnselect();\n\t}\n\n\tfocus() {\n\t\tthis.props.onSelect();\n\t}\n\n\tonPaste( { value, onChange, plainText, html } ) {\n\t\tconst { title, onInsertBlockAfter, onUpdate } = this.props;\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t} );\n\n\t\tif ( content.length ) {\n\t\t\tif ( typeof content === 'string' ) {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t} else {\n\t\t\t\tconst [ firstBlock ] = content;\n\t\t\t\tif (\n\t\t\t\t\t! title &&\n\t\t\t\t\t( firstBlock.name === 'core/heading' ||\n\t\t\t\t\t\tfirstBlock.name === 'core/paragraph' )\n\t\t\t\t) {\n\t\t\t\t\tonUpdate( firstBlock.attributes.content );\n\t\t\t\t\tonInsertBlockAfter( content.slice( 1 ) );\n\t\t\t\t} else {\n\t\t\t\t\tonInsertBlockAfter( content );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsetRef( richText ) {\n\t\tthis.richTextRef = richText;\n\t}\n\n\tgetTitle( title, postType ) {\n\t\tif ( 'page' === postType ) {\n\t\t\treturn ! title\n\t\t\t\t? /* translators: accessibility text. empty page title. */\n\t\t\t\t __( 'Page title. Empty' )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: text content of the page title. */\n\t\t\t\t\t\t__( 'Page title. %s' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t );\n\t\t}\n\n\t\treturn ! title\n\t\t\t? /* translators: accessibility text. empty post title. */\n\t\t\t __( 'Post title. Empty' )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: accessibility text. %s: text content of the post title. */\n\t\t\t\t\t__( 'Post title. %s' ),\n\t\t\t\t\ttitle\n\t\t\t );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tplaceholder,\n\t\t\tstyle,\n\t\t\ttitle,\n\t\t\tfocusedBorderColor,\n\t\t\tborderStyle,\n\t\t\tisDimmed,\n\t\t\tpostType,\n\t\t\tglobalStyles,\n\t\t} = this.props;\n\n\t\tconst decodedPlaceholder = decodeEntities( placeholder );\n\t\tconst borderColor = this.props.isSelected\n\t\t\t? focusedBorderColor\n\t\t\t: 'transparent';\n\t\tconst titleStyles = {\n\t\t\t...style,\n\t\t\t...( globalStyles?.text && {\n\t\t\t\tcolor: globalStyles.text,\n\t\t\t\tplaceholderColor: globalStyles.text,\n\t\t\t} ),\n\t\t};\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\ttestID=\"post-title\"\n\t\t\t\tstyle={ [\n\t\t\t\t\tstyles.titleContainer,\n\t\t\t\t\tborderStyle,\n\t\t\t\t\t{ borderColor },\n\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t] }\n\t\t\t\taccessible={ ! this.props.isSelected }\n\t\t\t\taccessibilityLabel={ this.getTitle( title, postType ) }\n\t\t\t\taccessibilityHint={ __( 'Updates the title.' ) }\n\t\t\t>\n\t\t\t\t<RichText.Raw\n\t\t\t\t\tsetRef={ this.setRef }\n\t\t\t\t\taccessibilityLabel={ this.getTitle( title, postType ) }\n\t\t\t\t\ttagName={ 'p' }\n\t\t\t\t\ttagsToEliminate={ [ 'strong' ] }\n\t\t\t\t\tunstableOnFocus={ this.props.onSelect }\n\t\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as a props.\n\t\t\t\t\tmultiline={ false }\n\t\t\t\t\tstyle={ titleStyles }\n\t\t\t\t\tstyles={ styles }\n\t\t\t\t\tfontSize={ 24 }\n\t\t\t\t\tlineHeight={ 1 }\n\t\t\t\t\tfontWeight={ 'bold' }\n\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tthis.props.onUpdate( value );\n\t\t\t\t\t} }\n\t\t\t\t\tonPaste={ this.onPaste }\n\t\t\t\t\tplaceholder={ decodedPlaceholder }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonSelectionChange={ () => {} }\n\t\t\t\t\tonEnter={ this.props.onEnterPress }\n\t\t\t\t\tdisableEditingMenu={ true }\n\t\t\t\t\t__unstableIsSelected={ this.props.isSelected }\n\t\t\t\t\t__unstableOnCreateUndoLevel={ () => {} }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nexport default compose(\n\twithSelect( ( select ) => {\n\t\tconst { isPostTitleSelected, getEditedPostAttribute } =\n\t\t\tselect( editorStore );\n\t\tconst { getSelectedBlockClientId, getBlockRootClientId, getSettings } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst selectedId = getSelectedBlockClientId();\n\t\tconst selectionIsNested = !! getBlockRootClientId( selectedId );\n\t\tconst globalStyles =\n\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles?.color;\n\n\t\treturn {\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tisAnyBlockSelected: !! selectedId,\n\t\t\tisSelected: isPostTitleSelected(),\n\t\t\tisDimmed: selectionIsNested,\n\t\t\tglobalStyles,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { undo, redo, togglePostTitleSelection, editPost } =\n\t\t\tdispatch( editorStore );\n\n\t\tconst { clearSelectedBlock, insertDefaultBlock, insertBlocks } =\n\t\t\tdispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonEnterPress() {\n\t\t\t\tinsertDefaultBlock( undefined, undefined, 0 );\n\t\t\t},\n\t\t\tonUndo: undo,\n\t\t\tonRedo: redo,\n\t\t\tonSelect() {\n\t\t\t\ttogglePostTitleSelection( true );\n\t\t\t\tclearSelectedBlock();\n\t\t\t},\n\t\t\tonUnselect() {\n\t\t\t\ttogglePostTitleSelection( false );\n\t\t\t},\n\t\t\tonUpdate( title ) {\n\t\t\t\teditPost( { title } );\n\t\t\t},\n\t\t\tonInsertBlockAfter( blocks ) {\n\t\t\t\tinsertBlocks( blocks, 0 );\n\t\t\t},\n\t\t};\n\t} ),\n\twithInstanceId,\n\twithFocusOutside\n)( PostTitle );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_element","_richText","_htmlEntities","_data","_components","_compose","_i18n","_blocks","_blockEditor","_editor","_style","_interopRequireDefault","PostTitle","Component","constructor","props","setRef","bind","onPaste","componentDidUpdate","prevProps","isSelected","isAnyBlockSelected","richTextRef","blur","onUnselect","componentDidMount","innerRef","handleFocusOutside","focus","onSelect","value","onChange","plainText","html","title","onInsertBlockAfter","onUpdate","content","pasteHandler","HTML","length","valueToInsert","create","insert","firstBlock","name","attributes","slice","richText","getTitle","postType","__","sprintf","render","placeholder","style","focusedBorderColor","borderStyle","isDimmed","globalStyles","decodedPlaceholder","decodeEntities","borderColor","titleStyles","text","color","placeholderColor","_react","createElement","View","testID","styles","titleContainer","dimmed","accessible","accessibilityLabel","accessibilityHint","RichText","Raw","tagName","tagsToEliminate","unstableOnFocus","onBlur","fontSize","lineHeight","fontWeight","deleteEnter","onSelectionChange","onEnter","onEnterPress","disableEditingMenu","__unstableIsSelected","__unstableOnCreateUndoLevel","_default","compose","withSelect","select","isPostTitleSelected","getEditedPostAttribute","editorStore","getSelectedBlockClientId","getBlockRootClientId","getSettings","blockEditorStore","selectedId","selectionIsNested","__experimentalGlobalStylesBaseStyles","withDispatch","dispatch","undo","redo","togglePostTitleSelection","editPost","clearSelectedBlock","insertDefaultBlock","insertBlocks","undefined","onUndo","onRedo","blocks","withInstanceId","withFocusOutside","exports","default"],"sources":["@wordpress/editor/src/components/post-title/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { create, insert } from '@wordpress/rich-text';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { withFocusOutside } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { pasteHandler } from '@wordpress/blocks';\nimport { store as blockEditorStore, RichText } from '@wordpress/block-editor';\nimport { store as editorStore } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nclass PostTitle extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.setRef = this.setRef.bind( this );\n\t\tthis.onPaste = this.onPaste.bind( this );\n\t}\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Unselect if any other block is selected and blur the RichText.\n\t\tif (\n\t\t\tthis.props.isSelected &&\n\t\t\t! prevProps.isAnyBlockSelected &&\n\t\t\tthis.props.isAnyBlockSelected\n\t\t) {\n\t\t\tif ( this.richTextRef ) {\n\t\t\t\tthis.richTextRef.blur();\n\t\t\t}\n\t\t\tthis.props.onUnselect();\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.innerRef ) {\n\t\t\tthis.props.innerRef( this );\n\t\t}\n\t}\n\n\thandleFocusOutside() {\n\t\tthis.props.onUnselect();\n\t}\n\n\tfocus() {\n\t\tthis.props.onSelect();\n\t}\n\n\tonPaste( { value, onChange, plainText, html } ) {\n\t\tconst { title, onInsertBlockAfter, onUpdate } = this.props;\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t} );\n\n\t\tif ( content.length ) {\n\t\t\tif ( typeof content === 'string' ) {\n\t\t\t\tconst valueToInsert = create( { html: content } );\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t} else {\n\t\t\t\tconst [ firstBlock ] = content;\n\t\t\t\tif (\n\t\t\t\t\t! title &&\n\t\t\t\t\t( firstBlock.name === 'core/heading' ||\n\t\t\t\t\t\tfirstBlock.name === 'core/paragraph' )\n\t\t\t\t) {\n\t\t\t\t\tonUpdate( firstBlock.attributes.content );\n\t\t\t\t\tonInsertBlockAfter( content.slice( 1 ) );\n\t\t\t\t} else {\n\t\t\t\t\tonInsertBlockAfter( content );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tsetRef( richText ) {\n\t\tthis.richTextRef = richText;\n\t}\n\n\tgetTitle( title, postType ) {\n\t\tif ( 'page' === postType ) {\n\t\t\treturn ! title\n\t\t\t\t? /* translators: accessibility text. empty page title. */\n\t\t\t\t __( 'Page title. Empty' )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: accessibility text. %s: text content of the page title. */\n\t\t\t\t\t\t__( 'Page title. %s' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t );\n\t\t}\n\n\t\treturn ! title\n\t\t\t? /* translators: accessibility text. empty post title. */\n\t\t\t __( 'Post title. Empty' )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: accessibility text. %s: text content of the post title. */\n\t\t\t\t\t__( 'Post title. %s' ),\n\t\t\t\t\ttitle\n\t\t\t );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tplaceholder,\n\t\t\tstyle,\n\t\t\ttitle,\n\t\t\tfocusedBorderColor,\n\t\t\tborderStyle,\n\t\t\tisDimmed,\n\t\t\tpostType,\n\t\t\tglobalStyles,\n\t\t} = this.props;\n\n\t\tconst decodedPlaceholder = decodeEntities( placeholder );\n\t\tconst borderColor = this.props.isSelected\n\t\t\t? focusedBorderColor\n\t\t\t: 'transparent';\n\t\tconst titleStyles = {\n\t\t\t...style,\n\t\t\t...( globalStyles?.text && {\n\t\t\t\tcolor: globalStyles.text,\n\t\t\t\tplaceholderColor: globalStyles.text,\n\t\t\t} ),\n\t\t};\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\ttestID=\"post-title\"\n\t\t\t\tstyle={ [\n\t\t\t\t\tstyles.titleContainer,\n\t\t\t\t\tborderStyle,\n\t\t\t\t\t{ borderColor },\n\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t] }\n\t\t\t\taccessible={ ! this.props.isSelected }\n\t\t\t\taccessibilityLabel={ this.getTitle( title, postType ) }\n\t\t\t\taccessibilityHint={ __( 'Updates the title.' ) }\n\t\t\t>\n\t\t\t\t<RichText.Raw\n\t\t\t\t\tsetRef={ this.setRef }\n\t\t\t\t\taccessibilityLabel={ this.getTitle( title, postType ) }\n\t\t\t\t\ttagName={ 'p' }\n\t\t\t\t\ttagsToEliminate={ [ 'strong' ] }\n\t\t\t\t\tunstableOnFocus={ this.props.onSelect }\n\t\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as a props.\n\t\t\t\t\tstyle={ titleStyles }\n\t\t\t\t\tstyles={ styles }\n\t\t\t\t\tfontSize={ 24 }\n\t\t\t\t\tlineHeight={ 1 }\n\t\t\t\t\tfontWeight={ 'bold' }\n\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tthis.props.onUpdate( value );\n\t\t\t\t\t} }\n\t\t\t\t\tonPaste={ this.onPaste }\n\t\t\t\t\tplaceholder={ decodedPlaceholder }\n\t\t\t\t\tvalue={ title }\n\t\t\t\t\tonSelectionChange={ () => {} }\n\t\t\t\t\tonEnter={ this.props.onEnterPress }\n\t\t\t\t\tdisableEditingMenu={ true }\n\t\t\t\t\t__unstableIsSelected={ this.props.isSelected }\n\t\t\t\t\t__unstableOnCreateUndoLevel={ () => {} }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nexport default compose(\n\twithSelect( ( select ) => {\n\t\tconst { isPostTitleSelected, getEditedPostAttribute } =\n\t\t\tselect( editorStore );\n\t\tconst { getSelectedBlockClientId, getBlockRootClientId, getSettings } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst selectedId = getSelectedBlockClientId();\n\t\tconst selectionIsNested = !! getBlockRootClientId( selectedId );\n\t\tconst globalStyles =\n\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles?.color;\n\n\t\treturn {\n\t\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tisAnyBlockSelected: !! selectedId,\n\t\t\tisSelected: isPostTitleSelected(),\n\t\t\tisDimmed: selectionIsNested,\n\t\t\tglobalStyles,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { undo, redo, togglePostTitleSelection, editPost } =\n\t\t\tdispatch( editorStore );\n\n\t\tconst { clearSelectedBlock, insertDefaultBlock, insertBlocks } =\n\t\t\tdispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonEnterPress() {\n\t\t\t\tinsertDefaultBlock( undefined, undefined, 0 );\n\t\t\t},\n\t\t\tonUndo: undo,\n\t\t\tonRedo: redo,\n\t\t\tonSelect() {\n\t\t\t\ttogglePostTitleSelection( true );\n\t\t\t\tclearSelectedBlock();\n\t\t\t},\n\t\t\tonUnselect() {\n\t\t\t\ttogglePostTitleSelection( false );\n\t\t\t},\n\t\t\tonUpdate( title ) {\n\t\t\t\teditPost( { title } );\n\t\t\t},\n\t\t\tonInsertBlockAfter( blocks ) {\n\t\t\t\tinsertBlocks( blocks, 0 );\n\t\t\t},\n\t\t};\n\t} ),\n\twithInstanceId,\n\twithFocusOutside\n)( PostTitle );\n"],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = PreviewDropdown;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _compose = require("@wordpress/compose");
|
|
10
|
+
var _components = require("@wordpress/components");
|
|
11
|
+
var _i18n = require("@wordpress/i18n");
|
|
12
|
+
var _icons = require("@wordpress/icons");
|
|
13
|
+
var _data = require("@wordpress/data");
|
|
14
|
+
var _coreData = require("@wordpress/core-data");
|
|
15
|
+
var _store = require("../../store");
|
|
16
|
+
var _postPreviewButton = _interopRequireDefault(require("../post-preview-button"));
|
|
17
|
+
/**
|
|
18
|
+
* WordPress dependencies
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Internal dependencies
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
function PreviewDropdown({
|
|
26
|
+
showIconLabels,
|
|
27
|
+
forceIsAutosaveable,
|
|
28
|
+
disabled
|
|
29
|
+
}) {
|
|
30
|
+
const {
|
|
31
|
+
deviceType,
|
|
32
|
+
homeUrl,
|
|
33
|
+
isTemplate,
|
|
34
|
+
isViewable
|
|
35
|
+
} = (0, _data.useSelect)(select => {
|
|
36
|
+
var _getPostType$viewable;
|
|
37
|
+
const {
|
|
38
|
+
getDeviceType,
|
|
39
|
+
getCurrentPostType
|
|
40
|
+
} = select(_store.store);
|
|
41
|
+
const {
|
|
42
|
+
getUnstableBase,
|
|
43
|
+
getPostType
|
|
44
|
+
} = select(_coreData.store);
|
|
45
|
+
const _currentPostType = getCurrentPostType();
|
|
46
|
+
return {
|
|
47
|
+
deviceType: getDeviceType(),
|
|
48
|
+
homeUrl: getUnstableBase()?.home,
|
|
49
|
+
isTemplate: _currentPostType === 'wp_template',
|
|
50
|
+
isViewable: (_getPostType$viewable = getPostType(_currentPostType)?.viewable) !== null && _getPostType$viewable !== void 0 ? _getPostType$viewable : false
|
|
51
|
+
};
|
|
52
|
+
}, []);
|
|
53
|
+
const {
|
|
54
|
+
setDeviceType
|
|
55
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
56
|
+
const isMobile = (0, _compose.useViewportMatch)('medium', '<');
|
|
57
|
+
if (isMobile) return null;
|
|
58
|
+
const popoverProps = {
|
|
59
|
+
placement: 'bottom-end'
|
|
60
|
+
};
|
|
61
|
+
const toggleProps = {
|
|
62
|
+
className: 'editor-preview-dropdown__toggle',
|
|
63
|
+
size: 'compact',
|
|
64
|
+
showTooltip: !showIconLabels,
|
|
65
|
+
disabled,
|
|
66
|
+
__experimentalIsFocusable: disabled
|
|
67
|
+
};
|
|
68
|
+
const menuProps = {
|
|
69
|
+
'aria-label': (0, _i18n.__)('View options')
|
|
70
|
+
};
|
|
71
|
+
const deviceIcons = {
|
|
72
|
+
mobile: _icons.mobile,
|
|
73
|
+
tablet: _icons.tablet,
|
|
74
|
+
desktop: _icons.desktop
|
|
75
|
+
};
|
|
76
|
+
return (0, _react.createElement)(_components.DropdownMenu, {
|
|
77
|
+
className: "editor-preview-dropdown",
|
|
78
|
+
popoverProps: popoverProps,
|
|
79
|
+
toggleProps: toggleProps,
|
|
80
|
+
menuProps: menuProps,
|
|
81
|
+
icon: deviceIcons[deviceType.toLowerCase()],
|
|
82
|
+
label: (0, _i18n.__)('View'),
|
|
83
|
+
disableOpenOnArrowDown: disabled
|
|
84
|
+
}, ({
|
|
85
|
+
onClose
|
|
86
|
+
}) => (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_components.MenuGroup, null, (0, _react.createElement)(_components.MenuItem, {
|
|
87
|
+
onClick: () => setDeviceType('Desktop'),
|
|
88
|
+
icon: deviceType === 'Desktop' && _icons.check
|
|
89
|
+
}, (0, _i18n.__)('Desktop')), (0, _react.createElement)(_components.MenuItem, {
|
|
90
|
+
onClick: () => setDeviceType('Tablet'),
|
|
91
|
+
icon: deviceType === 'Tablet' && _icons.check
|
|
92
|
+
}, (0, _i18n.__)('Tablet')), (0, _react.createElement)(_components.MenuItem, {
|
|
93
|
+
onClick: () => setDeviceType('Mobile'),
|
|
94
|
+
icon: deviceType === 'Mobile' && _icons.check
|
|
95
|
+
}, (0, _i18n.__)('Mobile'))), isTemplate && (0, _react.createElement)(_components.MenuGroup, null, (0, _react.createElement)(_components.MenuItem, {
|
|
96
|
+
href: homeUrl,
|
|
97
|
+
target: "_blank",
|
|
98
|
+
icon: _icons.external,
|
|
99
|
+
onClick: onClose
|
|
100
|
+
}, (0, _i18n.__)('View site'), (0, _react.createElement)(_components.VisuallyHidden, {
|
|
101
|
+
as: "span"
|
|
102
|
+
}, /* translators: accessibility text */
|
|
103
|
+
(0, _i18n.__)('(opens in a new tab)')))), isViewable && (0, _react.createElement)(_components.MenuGroup, null, (0, _react.createElement)(_postPreviewButton.default, {
|
|
104
|
+
className: "editor-preview-dropdown__button-external",
|
|
105
|
+
role: "menuitem",
|
|
106
|
+
forceIsAutosaveable: forceIsAutosaveable,
|
|
107
|
+
textContent: (0, _react.createElement)(_react.Fragment, null, (0, _i18n.__)('Preview in new tab'), (0, _react.createElement)(_components.Icon, {
|
|
108
|
+
icon: _icons.external
|
|
109
|
+
})),
|
|
110
|
+
onPreview: onClose
|
|
111
|
+
}))));
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_compose","require","_components","_i18n","_icons","_data","_coreData","_store","_postPreviewButton","_interopRequireDefault","PreviewDropdown","showIconLabels","forceIsAutosaveable","disabled","deviceType","homeUrl","isTemplate","isViewable","useSelect","select","_getPostType$viewable","getDeviceType","getCurrentPostType","editorStore","getUnstableBase","getPostType","coreStore","_currentPostType","home","viewable","setDeviceType","useDispatch","isMobile","useViewportMatch","popoverProps","placement","toggleProps","className","size","showTooltip","__experimentalIsFocusable","menuProps","__","deviceIcons","mobile","tablet","desktop","_react","createElement","DropdownMenu","icon","toLowerCase","label","disableOpenOnArrowDown","onClose","Fragment","MenuGroup","MenuItem","onClick","check","href","target","external","VisuallyHidden","as","default","role","textContent","Icon","onPreview"],"sources":["@wordpress/editor/src/components/preview-dropdown/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tVisuallyHidden,\n\tIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check, desktop, mobile, tablet, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport PostPreviewButton from '../post-preview-button';\n\nexport default function PreviewDropdown( {\n\tshowIconLabels,\n\tforceIsAutosaveable,\n\tdisabled,\n} ) {\n\tconst { deviceType, homeUrl, isTemplate, isViewable } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getDeviceType, getCurrentPostType } = select( editorStore );\n\t\t\tconst { getUnstableBase, getPostType } = select( coreStore );\n\t\t\tconst _currentPostType = getCurrentPostType();\n\t\t\treturn {\n\t\t\t\tdeviceType: getDeviceType(),\n\t\t\t\thomeUrl: getUnstableBase()?.home,\n\t\t\t\tisTemplate: _currentPostType === 'wp_template',\n\t\t\t\tisViewable: getPostType( _currentPostType )?.viewable ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\tconst { setDeviceType } = useDispatch( editorStore );\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tif ( isMobile ) return null;\n\n\tconst popoverProps = {\n\t\tplacement: 'bottom-end',\n\t};\n\tconst toggleProps = {\n\t\tclassName: 'editor-preview-dropdown__toggle',\n\t\tsize: 'compact',\n\t\tshowTooltip: ! showIconLabels,\n\t\tdisabled,\n\t\t__experimentalIsFocusable: disabled,\n\t};\n\tconst menuProps = {\n\t\t'aria-label': __( 'View options' ),\n\t};\n\n\tconst deviceIcons = {\n\t\tmobile,\n\t\ttablet,\n\t\tdesktop,\n\t};\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"editor-preview-dropdown\"\n\t\t\tpopoverProps={ popoverProps }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tmenuProps={ menuProps }\n\t\t\ticon={ deviceIcons[ deviceType.toLowerCase() ] }\n\t\t\tlabel={ __( 'View' ) }\n\t\t\tdisableOpenOnArrowDown={ disabled }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Desktop' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Desktop' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Desktop' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Tablet' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Tablet' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Tablet' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => setDeviceType( 'Mobile' ) }\n\t\t\t\t\t\t\ticon={ deviceType === 'Mobile' && check }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Mobile' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t{ isTemplate && (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'View site' ) }\n\t\t\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isViewable && (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<PostPreviewButton\n\t\t\t\t\t\t\t\tclassName=\"editor-preview-dropdown__button-external\"\n\t\t\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\t\t\tforceIsAutosaveable={ forceIsAutosaveable }\n\t\t\t\t\t\t\t\ttextContent={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Preview in new tab' ) }\n\t\t\t\t\t\t\t\t\t\t<Icon icon={ external } />\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonPreview={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ var _store = require("../../store");
|
|
|
20
20
|
var _useBlockEditorSettings = _interopRequireDefault(require("./use-block-editor-settings"));
|
|
21
21
|
var _lockUnlock = require("../../lock-unlock");
|
|
22
22
|
var _disableNonPageContentBlocks = _interopRequireDefault(require("./disable-non-page-content-blocks"));
|
|
23
|
-
var
|
|
23
|
+
var _navigationBlockEditingMode = _interopRequireDefault(require("./navigation-block-editing-mode"));
|
|
24
24
|
/**
|
|
25
25
|
* WordPress dependencies
|
|
26
26
|
*/
|
|
@@ -37,56 +37,6 @@ const {
|
|
|
37
37
|
} = (0, _lockUnlock.unlock)(_patterns.privateApis);
|
|
38
38
|
const noop = () => {};
|
|
39
39
|
|
|
40
|
-
/**
|
|
41
|
-
* For the Navigation block editor, we need to force the block editor to contentOnly for that block.
|
|
42
|
-
*
|
|
43
|
-
* Set block editing mode to contentOnly when entering Navigation focus mode.
|
|
44
|
-
* this ensures that non-content controls on the block will be hidden and thus
|
|
45
|
-
* the user can focus on editing the Navigation Menu content only.
|
|
46
|
-
*
|
|
47
|
-
* @param {string} navigationBlockClientId ClientId.
|
|
48
|
-
*/
|
|
49
|
-
function useForceFocusModeForNavigation(navigationBlockClientId) {
|
|
50
|
-
const {
|
|
51
|
-
setBlockEditingMode,
|
|
52
|
-
unsetBlockEditingMode
|
|
53
|
-
} = (0, _data.useDispatch)(_blockEditor.store);
|
|
54
|
-
(0, _element.useEffect)(() => {
|
|
55
|
-
if (!navigationBlockClientId) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
setBlockEditingMode(navigationBlockClientId, 'contentOnly');
|
|
59
|
-
return () => {
|
|
60
|
-
unsetBlockEditingMode(navigationBlockClientId);
|
|
61
|
-
};
|
|
62
|
-
}, [navigationBlockClientId, unsetBlockEditingMode, setBlockEditingMode]);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Helper method to extract the post content block types from a template.
|
|
67
|
-
*
|
|
68
|
-
* @param {Array} blocks Template blocks.
|
|
69
|
-
*
|
|
70
|
-
* @return {Array} Flattened object.
|
|
71
|
-
*/
|
|
72
|
-
function extractPageContentBlockTypesFromTemplateBlocks(blocks) {
|
|
73
|
-
const result = [];
|
|
74
|
-
for (let i = 0; i < blocks.length; i++) {
|
|
75
|
-
// Since the Query Block could contain PAGE_CONTENT_BLOCK_TYPES block types,
|
|
76
|
-
// we skip it because we only want to render stand-alone page content blocks in the block list.
|
|
77
|
-
if (blocks[i].name === 'core/query') {
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
if (_constants.PAGE_CONTENT_BLOCK_TYPES.includes(blocks[i].name)) {
|
|
81
|
-
result.push((0, _blocks.createBlock)(blocks[i].name));
|
|
82
|
-
}
|
|
83
|
-
if (blocks[i].innerBlocks.length) {
|
|
84
|
-
result.push(...extractPageContentBlockTypesFromTemplateBlocks(blocks[i].innerBlocks));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return result;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
40
|
/**
|
|
91
41
|
* Depending on the post, template and template mode,
|
|
92
42
|
* returns the appropriate blocks and change handlers for the block editor provider.
|
|
@@ -115,23 +65,6 @@ function useBlockEditorProps(post, template, mode) {
|
|
|
115
65
|
})];
|
|
116
66
|
}
|
|
117
67
|
}, [post.type, post.id]);
|
|
118
|
-
const maybePostOnlyBlocks = (0, _element.useMemo)(() => {
|
|
119
|
-
if (mode === 'post-only') {
|
|
120
|
-
const postContentBlocks = extractPageContentBlockTypesFromTemplateBlocks(templateBlocks);
|
|
121
|
-
return [(0, _blocks.createBlock)('core/group', {
|
|
122
|
-
layout: {
|
|
123
|
-
type: 'constrained'
|
|
124
|
-
},
|
|
125
|
-
style: {
|
|
126
|
-
spacing: {
|
|
127
|
-
margin: {
|
|
128
|
-
top: '4em' // Mimics the post editor.
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}, postContentBlocks.length ? postContentBlocks : [(0, _blocks.createBlock)('core/post-title'), (0, _blocks.createBlock)('core/post-content')])];
|
|
133
|
-
}
|
|
134
|
-
}, [templateBlocks, mode]);
|
|
135
68
|
|
|
136
69
|
// It is important that we don't create a new instance of blocks on every change
|
|
137
70
|
// We should only create a new instance if the blocks them selves change, not a dependency of them.
|
|
@@ -139,21 +72,16 @@ function useBlockEditorProps(post, template, mode) {
|
|
|
139
72
|
if (maybeNavigationBlocks) {
|
|
140
73
|
return maybeNavigationBlocks;
|
|
141
74
|
}
|
|
142
|
-
if (maybePostOnlyBlocks) {
|
|
143
|
-
return maybePostOnlyBlocks;
|
|
144
|
-
}
|
|
145
75
|
if (rootLevelPost === 'template') {
|
|
146
76
|
return templateBlocks;
|
|
147
77
|
}
|
|
148
78
|
return postBlocks;
|
|
149
|
-
}, [maybeNavigationBlocks,
|
|
79
|
+
}, [maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks]);
|
|
150
80
|
|
|
151
81
|
// Handle fallback to postBlocks outside of the above useMemo, to ensure
|
|
152
82
|
// that constructed block templates that call `createBlock` are not generated
|
|
153
83
|
// too frequently. This ensures that clientIds are stable.
|
|
154
|
-
const disableRootLevelChanges = !!template && mode === 'template-locked' || post.type === 'wp_navigation'
|
|
155
|
-
const navigationBlockClientId = post.type === 'wp_navigation' && blocks && blocks[0]?.clientId;
|
|
156
|
-
useForceFocusModeForNavigation(navigationBlockClientId);
|
|
84
|
+
const disableRootLevelChanges = !!template && mode === 'template-locked' || post.type === 'wp_navigation';
|
|
157
85
|
if (disableRootLevelChanges) {
|
|
158
86
|
return [blocks, noop, noop];
|
|
159
87
|
}
|
|
@@ -207,13 +135,14 @@ const ExperimentalEditorProvider = (0, _withRegistryProvider.default)(({
|
|
|
207
135
|
updatePostLock,
|
|
208
136
|
setupEditor,
|
|
209
137
|
updateEditorSettings,
|
|
210
|
-
|
|
211
|
-
|
|
138
|
+
setCurrentTemplateId,
|
|
139
|
+
setEditedPost,
|
|
140
|
+
setRenderingMode
|
|
141
|
+
} = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
|
|
212
142
|
const {
|
|
213
143
|
createWarningNotice
|
|
214
144
|
} = (0, _data.useDispatch)(_notices.store);
|
|
215
145
|
|
|
216
|
-
// Initialize and tear down the editor.
|
|
217
146
|
// Ideally this should be synced on each change and not just something you do once.
|
|
218
147
|
(0, _element.useLayoutEffect)(() => {
|
|
219
148
|
// Assume that we don't need to initialize in the case of an error recovery.
|
|
@@ -231,15 +160,28 @@ const ExperimentalEditorProvider = (0, _withRegistryProvider.default)(({
|
|
|
231
160
|
}]
|
|
232
161
|
});
|
|
233
162
|
}
|
|
234
|
-
return () => {
|
|
235
|
-
__experimentalTearDownEditor();
|
|
236
|
-
};
|
|
237
163
|
}, []);
|
|
238
164
|
|
|
165
|
+
// Synchronizes the active post with the state
|
|
166
|
+
(0, _element.useEffect)(() => {
|
|
167
|
+
setEditedPost(post.type, post.id);
|
|
168
|
+
}, [post.type, post.id]);
|
|
169
|
+
|
|
239
170
|
// Synchronize the editor settings as they change.
|
|
240
171
|
(0, _element.useEffect)(() => {
|
|
241
172
|
updateEditorSettings(settings);
|
|
242
173
|
}, [settings, updateEditorSettings]);
|
|
174
|
+
|
|
175
|
+
// Synchronizes the active template with the state.
|
|
176
|
+
(0, _element.useEffect)(() => {
|
|
177
|
+
setCurrentTemplateId(template?.id);
|
|
178
|
+
}, [template?.id, setCurrentTemplateId]);
|
|
179
|
+
|
|
180
|
+
// Sets the right rendering mode when loading the editor.
|
|
181
|
+
(0, _element.useEffect)(() => {
|
|
182
|
+
var _settings$defaultRend;
|
|
183
|
+
setRenderingMode((_settings$defaultRend = settings.defaultRenderingMode) !== null && _settings$defaultRend !== void 0 ? _settings$defaultRend : 'post-only');
|
|
184
|
+
}, [settings.defaultRenderingMode, setRenderingMode]);
|
|
243
185
|
if (!isReady) {
|
|
244
186
|
return null;
|
|
245
187
|
}
|
|
@@ -259,7 +201,7 @@ const ExperimentalEditorProvider = (0, _withRegistryProvider.default)(({
|
|
|
259
201
|
selection: selection,
|
|
260
202
|
settings: blockEditorSettings,
|
|
261
203
|
useSubRegistry: false
|
|
262
|
-
}, children, (0, _react.createElement)(PatternsMenuItems, null),
|
|
204
|
+
}, children, (0, _react.createElement)(PatternsMenuItems, null), mode === 'template-locked' && (0, _react.createElement)(_disableNonPageContentBlocks.default, null), type === 'wp_navigation' && (0, _react.createElement)(_navigationBlockEditingMode.default, null)))));
|
|
263
205
|
});
|
|
264
206
|
exports.ExperimentalEditorProvider = ExperimentalEditorProvider;
|
|
265
207
|
function EditorProvider(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_data","_i18n","_coreData","_blockEditor","_notices","_patterns","_blocks","_withRegistryProvider","_interopRequireDefault","_store","_useBlockEditorSettings","_lockUnlock","_disableNonPageContentBlocks","_constants","ExperimentalBlockEditorProvider","unlock","blockEditorPrivateApis","PatternsMenuItems","editPatternsPrivateApis","noop","useForceFocusModeForNavigation","navigationBlockClientId","setBlockEditingMode","unsetBlockEditingMode","useDispatch","blockEditorStore","useEffect","extractPageContentBlockTypesFromTemplateBlocks","blocks","result","i","length","name","PAGE_CONTENT_BLOCK_TYPES","includes","push","createBlock","innerBlocks","useBlockEditorProps","post","template","mode","rootLevelPost","postBlocks","onInput","onChange","useEntityBlockEditor","type","id","templateBlocks","onInputTemplate","onChangeTemplate","maybeNavigationBlocks","useMemo","ref","templateLock","maybePostOnlyBlocks","postContentBlocks","layout","style","spacing","margin","top","disableRootLevelChanges","clientId","ExperimentalEditorProvider","withRegistryProvider","settings","recovery","initialEdits","children","BlockEditorProviderComponent","__unstableTemplate","useSelect","select","editorStore","getRenderingMode","shouldRenderTemplate","defaultBlockContext","postContext","postId","postType","templateSlug","slug","undefined","editorSettings","selection","isReady","getEditorSettings","getEditorSelection","__unstableIsEditorReady","blockEditorSettings","useBlockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","__experimentalTearDownEditor","createWarningNotice","noticesStore","useLayoutEffect","postLock","autosave","__","actions","label","url","editLink","_react","createElement","EntityProvider","kind","BlockContextProvider","value","useSubRegistry","default","exports","EditorProvider","props","BlockEditorProvider","_default"],"sources":["@wordpress/editor/src/components/provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { EntityProvider, useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport useBlockEditorSettings from './use-block-editor-settings';\nimport { unlock } from '../../lock-unlock';\nimport DisableNonPageContentBlocks from './disable-non-page-content-blocks';\nimport { PAGE_CONTENT_BLOCK_TYPES } from './constants';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\n\nconst noop = () => {};\n\n/**\n * For the Navigation block editor, we need to force the block editor to contentOnly for that block.\n *\n * Set block editing mode to contentOnly when entering Navigation focus mode.\n * this ensures that non-content controls on the block will be hidden and thus\n * the user can focus on editing the Navigation Menu content only.\n *\n * @param {string} navigationBlockClientId ClientId.\n */\nfunction useForceFocusModeForNavigation( navigationBlockClientId ) {\n\tconst { setBlockEditingMode, unsetBlockEditingMode } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( ! navigationBlockClientId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockEditingMode( navigationBlockClientId, 'contentOnly' );\n\n\t\treturn () => {\n\t\t\tunsetBlockEditingMode( navigationBlockClientId );\n\t\t};\n\t}, [\n\t\tnavigationBlockClientId,\n\t\tunsetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t] );\n}\n\n/**\n * Helper method to extract the post content block types from a template.\n *\n * @param {Array} blocks Template blocks.\n *\n * @return {Array} Flattened object.\n */\nfunction extractPageContentBlockTypesFromTemplateBlocks( blocks ) {\n\tconst result = [];\n\tfor ( let i = 0; i < blocks.length; i++ ) {\n\t\t// Since the Query Block could contain PAGE_CONTENT_BLOCK_TYPES block types,\n\t\t// we skip it because we only want to render stand-alone page content blocks in the block list.\n\t\tif ( blocks[ i ].name === 'core/query' ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( PAGE_CONTENT_BLOCK_TYPES.includes( blocks[ i ].name ) ) {\n\t\t\tresult.push( createBlock( blocks[ i ].name ) );\n\t\t}\n\t\tif ( blocks[ i ].innerBlocks.length ) {\n\t\t\tresult.push(\n\t\t\t\t...extractPageContentBlockTypesFromTemplateBlocks(\n\t\t\t\t\tblocks[ i ].innerBlocks\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\treturn result;\n}\n\n/**\n * Depending on the post, template and template mode,\n * returns the appropriate blocks and change handlers for the block editor provider.\n *\n * @param {Array} post Block list.\n * @param {boolean} template Whether the page content has focus (and the surrounding template is inert). If `true` return page content blocks. Default `false`.\n * @param {string} mode Rendering mode.\n * @return {Array} Block editor props.\n */\nfunction useBlockEditorProps( post, template, mode ) {\n\tconst rootLevelPost =\n\t\tmode === 'post-only' || ! template ? 'post' : 'template';\n\tconst [ postBlocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpost.type,\n\t\t{ id: post.id }\n\t);\n\tconst [ templateBlocks, onInputTemplate, onChangeTemplate ] =\n\t\tuseEntityBlockEditor( 'postType', template?.type, {\n\t\t\tid: template?.id,\n\t\t} );\n\tconst maybeNavigationBlocks = useMemo( () => {\n\t\tif ( post.type === 'wp_navigation' ) {\n\t\t\treturn [\n\t\t\t\tcreateBlock( 'core/navigation', {\n\t\t\t\t\tref: post.id,\n\t\t\t\t\t// As the parent editor is locked with `templateLock`, the template locking\n\t\t\t\t\t// must be explicitly \"unset\" on the block itself to allow the user to modify\n\t\t\t\t\t// the block's content.\n\t\t\t\t\ttemplateLock: false,\n\t\t\t\t} ),\n\t\t\t];\n\t\t}\n\t}, [ post.type, post.id ] );\n\n\tconst maybePostOnlyBlocks = useMemo( () => {\n\t\tif ( mode === 'post-only' ) {\n\t\t\tconst postContentBlocks =\n\t\t\t\textractPageContentBlockTypesFromTemplateBlocks(\n\t\t\t\t\ttemplateBlocks\n\t\t\t\t);\n\t\t\treturn [\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/group',\n\t\t\t\t\t{\n\t\t\t\t\t\tlayout: { type: 'constrained' },\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\tspacing: {\n\t\t\t\t\t\t\t\tmargin: {\n\t\t\t\t\t\t\t\t\ttop: '4em', // Mimics the post editor.\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tpostContentBlocks.length\n\t\t\t\t\t\t? postContentBlocks\n\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\tcreateBlock( 'core/post-title' ),\n\t\t\t\t\t\t\t\tcreateBlock( 'core/post-content' ),\n\t\t\t\t\t\t ]\n\t\t\t\t),\n\t\t\t];\n\t\t}\n\t}, [ templateBlocks, mode ] );\n\n\t// It is important that we don't create a new instance of blocks on every change\n\t// We should only create a new instance if the blocks them selves change, not a dependency of them.\n\tconst blocks = useMemo( () => {\n\t\tif ( maybeNavigationBlocks ) {\n\t\t\treturn maybeNavigationBlocks;\n\t\t}\n\n\t\tif ( maybePostOnlyBlocks ) {\n\t\t\treturn maybePostOnlyBlocks;\n\t\t}\n\n\t\tif ( rootLevelPost === 'template' ) {\n\t\t\treturn templateBlocks;\n\t\t}\n\n\t\treturn postBlocks;\n\t}, [\n\t\tmaybeNavigationBlocks,\n\t\tmaybePostOnlyBlocks,\n\t\trootLevelPost,\n\t\ttemplateBlocks,\n\t\tpostBlocks,\n\t] );\n\n\t// Handle fallback to postBlocks outside of the above useMemo, to ensure\n\t// that constructed block templates that call `createBlock` are not generated\n\t// too frequently. This ensures that clientIds are stable.\n\tconst disableRootLevelChanges =\n\t\t( !! template && mode === 'template-locked' ) ||\n\t\tpost.type === 'wp_navigation' ||\n\t\tmode === 'post-only';\n\tconst navigationBlockClientId =\n\t\tpost.type === 'wp_navigation' && blocks && blocks[ 0 ]?.clientId;\n\tuseForceFocusModeForNavigation( navigationBlockClientId );\n\tif ( disableRootLevelChanges ) {\n\t\treturn [ blocks, noop, noop ];\n\t}\n\n\treturn [\n\t\tblocks,\n\t\trootLevelPost === 'post' ? onInput : onInputTemplate,\n\t\trootLevelPost === 'post' ? onChange : onChangeTemplate,\n\t];\n}\n\nexport const ExperimentalEditorProvider = withRegistryProvider(\n\t( {\n\t\tpost,\n\t\tsettings,\n\t\trecovery,\n\t\tinitialEdits,\n\t\tchildren,\n\t\tBlockEditorProviderComponent = ExperimentalBlockEditorProvider,\n\t\t__unstableTemplate: template,\n\t} ) => {\n\t\tconst mode = useSelect(\n\t\t\t( select ) => select( editorStore ).getRenderingMode(),\n\t\t\t[]\n\t\t);\n\t\tconst shouldRenderTemplate = !! template && mode !== 'post-only';\n\t\tconst rootLevelPost = shouldRenderTemplate ? template : post;\n\t\tconst defaultBlockContext = useMemo( () => {\n\t\t\tconst postContext =\n\t\t\t\trootLevelPost.type !== 'wp_template' ||\n\t\t\t\t( shouldRenderTemplate && mode !== 'template-only' )\n\t\t\t\t\t? { postId: post.id, postType: post.type }\n\t\t\t\t\t: {};\n\n\t\t\treturn {\n\t\t\t\t...postContext,\n\t\t\t\ttemplateSlug:\n\t\t\t\t\trootLevelPost.type === 'wp_template'\n\t\t\t\t\t\t? rootLevelPost.slug\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t}, [\n\t\t\tmode,\n\t\t\tpost.id,\n\t\t\tpost.type,\n\t\t\trootLevelPost.type,\n\t\t\trootLevelPost?.slug,\n\t\t\tshouldRenderTemplate,\n\t\t] );\n\t\tconst { editorSettings, selection, isReady } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEditorSettings,\n\t\t\t\t\tgetEditorSelection,\n\t\t\t\t\t__unstableIsEditorReady,\n\t\t\t\t} = select( editorStore );\n\t\t\t\treturn {\n\t\t\t\t\teditorSettings: getEditorSettings(),\n\t\t\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\t\t\tselection: getEditorSelection(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[]\n\t\t);\n\t\tconst { id, type } = rootLevelPost;\n\t\tconst blockEditorSettings = useBlockEditorSettings(\n\t\t\teditorSettings,\n\t\t\ttype,\n\t\t\tid\n\t\t);\n\t\tconst [ blocks, onInput, onChange ] = useBlockEditorProps(\n\t\t\tpost,\n\t\t\ttemplate,\n\t\t\tmode\n\t\t);\n\n\t\tconst {\n\t\t\tupdatePostLock,\n\t\t\tsetupEditor,\n\t\t\tupdateEditorSettings,\n\t\t\t__experimentalTearDownEditor,\n\t\t} = useDispatch( editorStore );\n\t\tconst { createWarningNotice } = useDispatch( noticesStore );\n\n\t\t// Initialize and tear down the editor.\n\t\t// Ideally this should be synced on each change and not just something you do once.\n\t\tuseLayoutEffect( () => {\n\t\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\t\tif ( recovery ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdatePostLock( settings.postLock );\n\t\t\tsetupEditor( post, initialEdits, settings.template );\n\t\t\tif ( settings.autosave ) {\n\t\t\t\tcreateWarningNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\t\turl: settings.autosave.editLink,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\t__experimentalTearDownEditor();\n\t\t\t};\n\t\t}, [] );\n\n\t\t// Synchronize the editor settings as they change.\n\t\tuseEffect( () => {\n\t\t\tupdateEditorSettings( settings );\n\t\t}, [ settings, updateEditorSettings ] );\n\n\t\tif ( ! isReady ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ post.type }\n\t\t\t\t\tid={ post.id }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t\t<BlockEditorProviderComponent\n\t\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tsettings={ blockEditorSettings }\n\t\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t<PatternsMenuItems />\n\t\t\t\t\t\t\t{ [ 'post-only', 'template-locked' ].includes(\n\t\t\t\t\t\t\t\tmode\n\t\t\t\t\t\t\t) && <DisableNonPageContentBlocks /> }\n\t\t\t\t\t\t</BlockEditorProviderComponent>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t);\n\t}\n);\n\nexport function EditorProvider( props ) {\n\treturn (\n\t\t<ExperimentalEditorProvider\n\t\t\t{ ...props }\n\t\t\tBlockEditorProviderComponent={ BlockEditorProvider }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalEditorProvider>\n\t);\n}\n\nexport default EditorProvider;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_element","require","_data","_i18n","_coreData","_blockEditor","_notices","_patterns","_blocks","_withRegistryProvider","_interopRequireDefault","_store","_useBlockEditorSettings","_lockUnlock","_disableNonPageContentBlocks","_navigationBlockEditingMode","ExperimentalBlockEditorProvider","unlock","blockEditorPrivateApis","PatternsMenuItems","editPatternsPrivateApis","noop","useBlockEditorProps","post","template","mode","rootLevelPost","postBlocks","onInput","onChange","useEntityBlockEditor","type","id","templateBlocks","onInputTemplate","onChangeTemplate","maybeNavigationBlocks","useMemo","createBlock","ref","templateLock","blocks","disableRootLevelChanges","ExperimentalEditorProvider","withRegistryProvider","settings","recovery","initialEdits","children","BlockEditorProviderComponent","__unstableTemplate","useSelect","select","editorStore","getRenderingMode","shouldRenderTemplate","defaultBlockContext","postContext","postId","postType","templateSlug","slug","undefined","editorSettings","selection","isReady","getEditorSettings","getEditorSelection","__unstableIsEditorReady","blockEditorSettings","useBlockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","setCurrentTemplateId","setEditedPost","setRenderingMode","useDispatch","createWarningNotice","noticesStore","useLayoutEffect","postLock","autosave","__","actions","label","url","editLink","useEffect","_settings$defaultRend","defaultRenderingMode","_react","createElement","EntityProvider","kind","BlockContextProvider","value","useSubRegistry","default","exports","EditorProvider","props","BlockEditorProvider","_default"],"sources":["@wordpress/editor/src/components/provider/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { EntityProvider, useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport useBlockEditorSettings from './use-block-editor-settings';\nimport { unlock } from '../../lock-unlock';\nimport DisableNonPageContentBlocks from './disable-non-page-content-blocks';\nimport NavigationBlockEditingMode from './navigation-block-editing-mode';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\nconst { PatternsMenuItems } = unlock( editPatternsPrivateApis );\n\nconst noop = () => {};\n\n/**\n * Depending on the post, template and template mode,\n * returns the appropriate blocks and change handlers for the block editor provider.\n *\n * @param {Array} post Block list.\n * @param {boolean} template Whether the page content has focus (and the surrounding template is inert). If `true` return page content blocks. Default `false`.\n * @param {string} mode Rendering mode.\n * @return {Array} Block editor props.\n */\nfunction useBlockEditorProps( post, template, mode ) {\n\tconst rootLevelPost =\n\t\tmode === 'post-only' || ! template ? 'post' : 'template';\n\tconst [ postBlocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\tpost.type,\n\t\t{ id: post.id }\n\t);\n\tconst [ templateBlocks, onInputTemplate, onChangeTemplate ] =\n\t\tuseEntityBlockEditor( 'postType', template?.type, {\n\t\t\tid: template?.id,\n\t\t} );\n\tconst maybeNavigationBlocks = useMemo( () => {\n\t\tif ( post.type === 'wp_navigation' ) {\n\t\t\treturn [\n\t\t\t\tcreateBlock( 'core/navigation', {\n\t\t\t\t\tref: post.id,\n\t\t\t\t\t// As the parent editor is locked with `templateLock`, the template locking\n\t\t\t\t\t// must be explicitly \"unset\" on the block itself to allow the user to modify\n\t\t\t\t\t// the block's content.\n\t\t\t\t\ttemplateLock: false,\n\t\t\t\t} ),\n\t\t\t];\n\t\t}\n\t}, [ post.type, post.id ] );\n\n\t// It is important that we don't create a new instance of blocks on every change\n\t// We should only create a new instance if the blocks them selves change, not a dependency of them.\n\tconst blocks = useMemo( () => {\n\t\tif ( maybeNavigationBlocks ) {\n\t\t\treturn maybeNavigationBlocks;\n\t\t}\n\n\t\tif ( rootLevelPost === 'template' ) {\n\t\t\treturn templateBlocks;\n\t\t}\n\n\t\treturn postBlocks;\n\t}, [ maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks ] );\n\n\t// Handle fallback to postBlocks outside of the above useMemo, to ensure\n\t// that constructed block templates that call `createBlock` are not generated\n\t// too frequently. This ensures that clientIds are stable.\n\tconst disableRootLevelChanges =\n\t\t( !! template && mode === 'template-locked' ) ||\n\t\tpost.type === 'wp_navigation';\n\tif ( disableRootLevelChanges ) {\n\t\treturn [ blocks, noop, noop ];\n\t}\n\n\treturn [\n\t\tblocks,\n\t\trootLevelPost === 'post' ? onInput : onInputTemplate,\n\t\trootLevelPost === 'post' ? onChange : onChangeTemplate,\n\t];\n}\n\nexport const ExperimentalEditorProvider = withRegistryProvider(\n\t( {\n\t\tpost,\n\t\tsettings,\n\t\trecovery,\n\t\tinitialEdits,\n\t\tchildren,\n\t\tBlockEditorProviderComponent = ExperimentalBlockEditorProvider,\n\t\t__unstableTemplate: template,\n\t} ) => {\n\t\tconst mode = useSelect(\n\t\t\t( select ) => select( editorStore ).getRenderingMode(),\n\t\t\t[]\n\t\t);\n\t\tconst shouldRenderTemplate = !! template && mode !== 'post-only';\n\t\tconst rootLevelPost = shouldRenderTemplate ? template : post;\n\t\tconst defaultBlockContext = useMemo( () => {\n\t\t\tconst postContext =\n\t\t\t\trootLevelPost.type !== 'wp_template' ||\n\t\t\t\t( shouldRenderTemplate && mode !== 'template-only' )\n\t\t\t\t\t? { postId: post.id, postType: post.type }\n\t\t\t\t\t: {};\n\n\t\t\treturn {\n\t\t\t\t...postContext,\n\t\t\t\ttemplateSlug:\n\t\t\t\t\trootLevelPost.type === 'wp_template'\n\t\t\t\t\t\t? rootLevelPost.slug\n\t\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t}, [\n\t\t\tmode,\n\t\t\tpost.id,\n\t\t\tpost.type,\n\t\t\trootLevelPost.type,\n\t\t\trootLevelPost?.slug,\n\t\t\tshouldRenderTemplate,\n\t\t] );\n\t\tconst { editorSettings, selection, isReady } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetEditorSettings,\n\t\t\t\t\tgetEditorSelection,\n\t\t\t\t\t__unstableIsEditorReady,\n\t\t\t\t} = select( editorStore );\n\t\t\t\treturn {\n\t\t\t\t\teditorSettings: getEditorSettings(),\n\t\t\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\t\t\tselection: getEditorSelection(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[]\n\t\t);\n\t\tconst { id, type } = rootLevelPost;\n\t\tconst blockEditorSettings = useBlockEditorSettings(\n\t\t\teditorSettings,\n\t\t\ttype,\n\t\t\tid\n\t\t);\n\t\tconst [ blocks, onInput, onChange ] = useBlockEditorProps(\n\t\t\tpost,\n\t\t\ttemplate,\n\t\t\tmode\n\t\t);\n\n\t\tconst {\n\t\t\tupdatePostLock,\n\t\t\tsetupEditor,\n\t\t\tupdateEditorSettings,\n\t\t\tsetCurrentTemplateId,\n\t\t\tsetEditedPost,\n\t\t\tsetRenderingMode,\n\t\t} = unlock( useDispatch( editorStore ) );\n\t\tconst { createWarningNotice } = useDispatch( noticesStore );\n\n\t\t// Ideally this should be synced on each change and not just something you do once.\n\t\tuseLayoutEffect( () => {\n\t\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\t\tif ( recovery ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdatePostLock( settings.postLock );\n\t\t\tsetupEditor( post, initialEdits, settings.template );\n\t\t\tif ( settings.autosave ) {\n\t\t\t\tcreateWarningNotice(\n\t\t\t\t\t__(\n\t\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\t\turl: settings.autosave.editLink,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}, [] );\n\n\t\t// Synchronizes the active post with the state\n\t\tuseEffect( () => {\n\t\t\tsetEditedPost( post.type, post.id );\n\t\t}, [ post.type, post.id ] );\n\n\t\t// Synchronize the editor settings as they change.\n\t\tuseEffect( () => {\n\t\t\tupdateEditorSettings( settings );\n\t\t}, [ settings, updateEditorSettings ] );\n\n\t\t// Synchronizes the active template with the state.\n\t\tuseEffect( () => {\n\t\t\tsetCurrentTemplateId( template?.id );\n\t\t}, [ template?.id, setCurrentTemplateId ] );\n\n\t\t// Sets the right rendering mode when loading the editor.\n\t\tuseEffect( () => {\n\t\t\tsetRenderingMode( settings.defaultRenderingMode ?? 'post-only' );\n\t\t}, [ settings.defaultRenderingMode, setRenderingMode ] );\n\n\t\tif ( ! isReady ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t\t<EntityProvider\n\t\t\t\t\tkind=\"postType\"\n\t\t\t\t\ttype={ post.type }\n\t\t\t\t\tid={ post.id }\n\t\t\t\t>\n\t\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t\t<BlockEditorProviderComponent\n\t\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tsettings={ blockEditorSettings }\n\t\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t\t<PatternsMenuItems />\n\t\t\t\t\t\t\t{ mode === 'template-locked' && (\n\t\t\t\t\t\t\t\t<DisableNonPageContentBlocks />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ type === 'wp_navigation' && (\n\t\t\t\t\t\t\t\t<NavigationBlockEditingMode />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockEditorProviderComponent>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t</EntityProvider>\n\t\t\t</EntityProvider>\n\t\t);\n\t}\n);\n\nexport function EditorProvider( props ) {\n\treturn (\n\t\t<ExperimentalEditorProvider\n\t\t\t{ ...props }\n\t\t\tBlockEditorProviderComponent={ BlockEditorProvider }\n\t\t>\n\t\t\t{ props.children }\n\t\t</ExperimentalEditorProvider>\n\t);\n}\n\nexport default EditorProvider;\n"],"mappings":"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"}
|
|
@@ -18,6 +18,7 @@ var _hooks = require("@wordpress/hooks");
|
|
|
18
18
|
var _blockEditor = require("@wordpress/block-editor");
|
|
19
19
|
var _components = require("@wordpress/components");
|
|
20
20
|
var _blockLibrary = require("@wordpress/block-library");
|
|
21
|
+
var _i18n = require("@wordpress/i18n");
|
|
21
22
|
var _editor = require("@wordpress/editor");
|
|
22
23
|
var _notices = require("@wordpress/notices");
|
|
23
24
|
var _coreData = require("@wordpress/core-data");
|
|
@@ -78,6 +79,7 @@ class NativeEditorProvider extends _element.Component {
|
|
|
78
79
|
componentDidMount() {
|
|
79
80
|
const {
|
|
80
81
|
capabilities,
|
|
82
|
+
createErrorNotice,
|
|
81
83
|
locale,
|
|
82
84
|
hostAppNamespace,
|
|
83
85
|
updateEditorSettings,
|
|
@@ -106,13 +108,18 @@ class NativeEditorProvider extends _element.Component {
|
|
|
106
108
|
});
|
|
107
109
|
this.subscriptionParentMediaAppend = (0, _reactNativeBridge.subscribeMediaAppend)(payload => {
|
|
108
110
|
const blockName = 'core/' + payload.mediaType;
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
111
|
+
const blockType = (0, _blocks.getBlockType)(blockName);
|
|
112
|
+
if (blockType && blockType?.name) {
|
|
113
|
+
const newBlock = (0, _blocks.createBlock)(blockType.name, {
|
|
114
|
+
id: payload.mediaId,
|
|
115
|
+
[payload.mediaType === 'image' ? 'url' : 'src']: payload.mediaUrl
|
|
116
|
+
});
|
|
117
|
+
const indexAfterSelected = this.props.selectedBlockIndex + 1;
|
|
118
|
+
const insertionIndex = indexAfterSelected || this.props.blockCount;
|
|
119
|
+
this.props.insertBlock(newBlock, insertionIndex);
|
|
120
|
+
} else {
|
|
121
|
+
createErrorNotice((0, _i18n.__)('File type not supported as a media file.'));
|
|
122
|
+
}
|
|
116
123
|
});
|
|
117
124
|
this.subscriptionParentUpdateEditorSettings = (0, _reactNativeBridge.subscribeUpdateEditorSettings)(({
|
|
118
125
|
galleryWithImageBlocks,
|
|
@@ -334,7 +341,8 @@ const ComposedNativeProvider = (0, _compose.compose)([(0, _data.withSelect)(sele
|
|
|
334
341
|
receiveEntityRecords
|
|
335
342
|
} = dispatch(_coreData.store);
|
|
336
343
|
const {
|
|
337
|
-
createSuccessNotice
|
|
344
|
+
createSuccessNotice,
|
|
345
|
+
createErrorNotice
|
|
338
346
|
} = dispatch(_notices.store);
|
|
339
347
|
return {
|
|
340
348
|
updateBlockEditorSettings: updateSettings,
|
|
@@ -342,6 +350,7 @@ const ComposedNativeProvider = (0, _compose.compose)([(0, _data.withSelect)(sele
|
|
|
342
350
|
addEntities,
|
|
343
351
|
insertBlock,
|
|
344
352
|
createSuccessNotice,
|
|
353
|
+
createErrorNotice,
|
|
345
354
|
editTitle(title) {
|
|
346
355
|
editPost({
|
|
347
356
|
title
|