@wordpress/editor 13.24.0 → 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 +36 -77
- 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 +37 -78
- 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 +39 -112
- 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,105 @@
|
|
|
1
|
+
import { createElement, Fragment } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { useViewportMatch } from '@wordpress/compose';
|
|
6
|
+
import { DropdownMenu, MenuGroup, MenuItem, VisuallyHidden, Icon } from '@wordpress/components';
|
|
7
|
+
import { __ } from '@wordpress/i18n';
|
|
8
|
+
import { check, desktop, mobile, tablet, external } from '@wordpress/icons';
|
|
9
|
+
import { useSelect, useDispatch } from '@wordpress/data';
|
|
10
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Internal dependencies
|
|
14
|
+
*/
|
|
15
|
+
import { store as editorStore } from '../../store';
|
|
16
|
+
import PostPreviewButton from '../post-preview-button';
|
|
17
|
+
export default function PreviewDropdown({
|
|
18
|
+
showIconLabels,
|
|
19
|
+
forceIsAutosaveable,
|
|
20
|
+
disabled
|
|
21
|
+
}) {
|
|
22
|
+
const {
|
|
23
|
+
deviceType,
|
|
24
|
+
homeUrl,
|
|
25
|
+
isTemplate,
|
|
26
|
+
isViewable
|
|
27
|
+
} = useSelect(select => {
|
|
28
|
+
var _getPostType$viewable;
|
|
29
|
+
const {
|
|
30
|
+
getDeviceType,
|
|
31
|
+
getCurrentPostType
|
|
32
|
+
} = select(editorStore);
|
|
33
|
+
const {
|
|
34
|
+
getUnstableBase,
|
|
35
|
+
getPostType
|
|
36
|
+
} = select(coreStore);
|
|
37
|
+
const _currentPostType = getCurrentPostType();
|
|
38
|
+
return {
|
|
39
|
+
deviceType: getDeviceType(),
|
|
40
|
+
homeUrl: getUnstableBase()?.home,
|
|
41
|
+
isTemplate: _currentPostType === 'wp_template',
|
|
42
|
+
isViewable: (_getPostType$viewable = getPostType(_currentPostType)?.viewable) !== null && _getPostType$viewable !== void 0 ? _getPostType$viewable : false
|
|
43
|
+
};
|
|
44
|
+
}, []);
|
|
45
|
+
const {
|
|
46
|
+
setDeviceType
|
|
47
|
+
} = useDispatch(editorStore);
|
|
48
|
+
const isMobile = useViewportMatch('medium', '<');
|
|
49
|
+
if (isMobile) return null;
|
|
50
|
+
const popoverProps = {
|
|
51
|
+
placement: 'bottom-end'
|
|
52
|
+
};
|
|
53
|
+
const toggleProps = {
|
|
54
|
+
className: 'editor-preview-dropdown__toggle',
|
|
55
|
+
size: 'compact',
|
|
56
|
+
showTooltip: !showIconLabels,
|
|
57
|
+
disabled,
|
|
58
|
+
__experimentalIsFocusable: disabled
|
|
59
|
+
};
|
|
60
|
+
const menuProps = {
|
|
61
|
+
'aria-label': __('View options')
|
|
62
|
+
};
|
|
63
|
+
const deviceIcons = {
|
|
64
|
+
mobile,
|
|
65
|
+
tablet,
|
|
66
|
+
desktop
|
|
67
|
+
};
|
|
68
|
+
return createElement(DropdownMenu, {
|
|
69
|
+
className: "editor-preview-dropdown",
|
|
70
|
+
popoverProps: popoverProps,
|
|
71
|
+
toggleProps: toggleProps,
|
|
72
|
+
menuProps: menuProps,
|
|
73
|
+
icon: deviceIcons[deviceType.toLowerCase()],
|
|
74
|
+
label: __('View'),
|
|
75
|
+
disableOpenOnArrowDown: disabled
|
|
76
|
+
}, ({
|
|
77
|
+
onClose
|
|
78
|
+
}) => createElement(Fragment, null, createElement(MenuGroup, null, createElement(MenuItem, {
|
|
79
|
+
onClick: () => setDeviceType('Desktop'),
|
|
80
|
+
icon: deviceType === 'Desktop' && check
|
|
81
|
+
}, __('Desktop')), createElement(MenuItem, {
|
|
82
|
+
onClick: () => setDeviceType('Tablet'),
|
|
83
|
+
icon: deviceType === 'Tablet' && check
|
|
84
|
+
}, __('Tablet')), createElement(MenuItem, {
|
|
85
|
+
onClick: () => setDeviceType('Mobile'),
|
|
86
|
+
icon: deviceType === 'Mobile' && check
|
|
87
|
+
}, __('Mobile'))), isTemplate && createElement(MenuGroup, null, createElement(MenuItem, {
|
|
88
|
+
href: homeUrl,
|
|
89
|
+
target: "_blank",
|
|
90
|
+
icon: external,
|
|
91
|
+
onClick: onClose
|
|
92
|
+
}, __('View site'), createElement(VisuallyHidden, {
|
|
93
|
+
as: "span"
|
|
94
|
+
}, /* translators: accessibility text */
|
|
95
|
+
__('(opens in a new tab)')))), isViewable && createElement(MenuGroup, null, createElement(PostPreviewButton, {
|
|
96
|
+
className: "editor-preview-dropdown__button-external",
|
|
97
|
+
role: "menuitem",
|
|
98
|
+
forceIsAutosaveable: forceIsAutosaveable,
|
|
99
|
+
textContent: createElement(Fragment, null, __('Preview in new tab'), createElement(Icon, {
|
|
100
|
+
icon: external
|
|
101
|
+
})),
|
|
102
|
+
onPreview: onClose
|
|
103
|
+
}))));
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useViewportMatch","DropdownMenu","MenuGroup","MenuItem","VisuallyHidden","Icon","__","check","desktop","mobile","tablet","external","useSelect","useDispatch","store","coreStore","editorStore","PostPreviewButton","PreviewDropdown","showIconLabels","forceIsAutosaveable","disabled","deviceType","homeUrl","isTemplate","isViewable","select","_getPostType$viewable","getDeviceType","getCurrentPostType","getUnstableBase","getPostType","_currentPostType","home","viewable","setDeviceType","isMobile","popoverProps","placement","toggleProps","className","size","showTooltip","__experimentalIsFocusable","menuProps","deviceIcons","createElement","icon","toLowerCase","label","disableOpenOnArrowDown","onClose","Fragment","onClick","href","target","as","role","textContent","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":";AAAA;AACA;AACA;AACA,SAASA,gBAAgB,QAAQ,oBAAoB;AACrD,SACCC,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,cAAc,EACdC,IAAI,QACE,uBAAuB;AAC9B,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,EAAEC,OAAO,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,kBAAkB;AAC3E,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASD,KAAK,IAAIE,WAAW,QAAQ,aAAa;AAClD,OAAOC,iBAAiB,MAAM,wBAAwB;AAEtD,eAAe,SAASC,eAAeA,CAAE;EACxCC,cAAc;EACdC,mBAAmB;EACnBC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,UAAU;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAAW,CAAC,GAAGb,SAAS,CAC9Dc,MAAM,IAAM;IAAA,IAAAC,qBAAA;IACb,MAAM;MAAEC,aAAa;MAAEC;IAAmB,CAAC,GAAGH,MAAM,CAAEV,WAAY,CAAC;IACnE,MAAM;MAAEc,eAAe;MAAEC;IAAY,CAAC,GAAGL,MAAM,CAAEX,SAAU,CAAC;IAC5D,MAAMiB,gBAAgB,GAAGH,kBAAkB,CAAC,CAAC;IAC7C,OAAO;MACNP,UAAU,EAAEM,aAAa,CAAC,CAAC;MAC3BL,OAAO,EAAEO,eAAe,CAAC,CAAC,EAAEG,IAAI;MAChCT,UAAU,EAAEQ,gBAAgB,KAAK,aAAa;MAC9CP,UAAU,GAAAE,qBAAA,GAAEI,WAAW,CAAEC,gBAAiB,CAAC,EAAEE,QAAQ,cAAAP,qBAAA,cAAAA,qBAAA,GAAI;IAC1D,CAAC;EACF,CAAC,EACD,EACD,CAAC;EACD,MAAM;IAAEQ;EAAc,CAAC,GAAGtB,WAAW,CAAEG,WAAY,CAAC;EACpD,MAAMoB,QAAQ,GAAGpC,gBAAgB,CAAE,QAAQ,EAAE,GAAI,CAAC;EAClD,IAAKoC,QAAQ,EAAG,OAAO,IAAI;EAE3B,MAAMC,YAAY,GAAG;IACpBC,SAAS,EAAE;EACZ,CAAC;EACD,MAAMC,WAAW,GAAG;IACnBC,SAAS,EAAE,iCAAiC;IAC5CC,IAAI,EAAE,SAAS;IACfC,WAAW,EAAE,CAAEvB,cAAc;IAC7BE,QAAQ;IACRsB,yBAAyB,EAAEtB;EAC5B,CAAC;EACD,MAAMuB,SAAS,GAAG;IACjB,YAAY,EAAEtC,EAAE,CAAE,cAAe;EAClC,CAAC;EAED,MAAMuC,WAAW,GAAG;IACnBpC,MAAM;IACNC,MAAM;IACNF;EACD,CAAC;EAED,OACCsC,aAAA,CAAC7C,YAAY;IACZuC,SAAS,EAAC,yBAAyB;IACnCH,YAAY,EAAGA,YAAc;IAC7BE,WAAW,EAAGA,WAAa;IAC3BK,SAAS,EAAGA,SAAW;IACvBG,IAAI,EAAGF,WAAW,CAAEvB,UAAU,CAAC0B,WAAW,CAAC,CAAC,CAAI;IAChDC,KAAK,EAAG3C,EAAE,CAAE,MAAO,CAAG;IACtB4C,sBAAsB,EAAG7B;EAAU,GAEjC,CAAE;IAAE8B;EAAQ,CAAC,KACdL,aAAA,CAAAM,QAAA,QACCN,aAAA,CAAC5C,SAAS,QACT4C,aAAA,CAAC3C,QAAQ;IACRkD,OAAO,EAAGA,CAAA,KAAMlB,aAAa,CAAE,SAAU,CAAG;IAC5CY,IAAI,EAAGzB,UAAU,KAAK,SAAS,IAAIf;EAAO,GAExCD,EAAE,CAAE,SAAU,CACP,CAAC,EACXwC,aAAA,CAAC3C,QAAQ;IACRkD,OAAO,EAAGA,CAAA,KAAMlB,aAAa,CAAE,QAAS,CAAG;IAC3CY,IAAI,EAAGzB,UAAU,KAAK,QAAQ,IAAIf;EAAO,GAEvCD,EAAE,CAAE,QAAS,CACN,CAAC,EACXwC,aAAA,CAAC3C,QAAQ;IACRkD,OAAO,EAAGA,CAAA,KAAMlB,aAAa,CAAE,QAAS,CAAG;IAC3CY,IAAI,EAAGzB,UAAU,KAAK,QAAQ,IAAIf;EAAO,GAEvCD,EAAE,CAAE,QAAS,CACN,CACA,CAAC,EACVkB,UAAU,IACXsB,aAAA,CAAC5C,SAAS,QACT4C,aAAA,CAAC3C,QAAQ;IACRmD,IAAI,EAAG/B,OAAS;IAChBgC,MAAM,EAAC,QAAQ;IACfR,IAAI,EAAGpC,QAAU;IACjB0C,OAAO,EAAGF;EAAS,GAEjB7C,EAAE,CAAE,WAAY,CAAC,EACnBwC,aAAA,CAAC1C,cAAc;IAACoD,EAAE,EAAC;EAAM,GAEvB;EACAlD,EAAE,CAAE,sBAAuB,CAEb,CACP,CACA,CACX,EACCmB,UAAU,IACXqB,aAAA,CAAC5C,SAAS,QACT4C,aAAA,CAAC7B,iBAAiB;IACjBuB,SAAS,EAAC,0CAA0C;IACpDiB,IAAI,EAAC,UAAU;IACfrC,mBAAmB,EAAGA,mBAAqB;IAC3CsC,WAAW,EACVZ,aAAA,CAAAM,QAAA,QACG9C,EAAE,CAAE,oBAAqB,CAAC,EAC5BwC,aAAA,CAACzC,IAAI;MAAC0C,IAAI,EAAGpC;IAAU,CAAE,CACxB,CACF;IACDgD,SAAS,EAAGR;EAAS,CACrB,CACS,CAEX,CAEU,CAAC;AAEjB"}
|
|
@@ -6,7 +6,7 @@ import { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';
|
|
|
6
6
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
7
7
|
import { __ } from '@wordpress/i18n';
|
|
8
8
|
import { EntityProvider, useEntityBlockEditor } from '@wordpress/core-data';
|
|
9
|
-
import { BlockEditorProvider, BlockContextProvider, privateApis as blockEditorPrivateApis
|
|
9
|
+
import { BlockEditorProvider, BlockContextProvider, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
10
10
|
import { store as noticesStore } from '@wordpress/notices';
|
|
11
11
|
import { privateApis as editPatternsPrivateApis } from '@wordpress/patterns';
|
|
12
12
|
import { createBlock } from '@wordpress/blocks';
|
|
@@ -19,7 +19,7 @@ import { store as editorStore } from '../../store';
|
|
|
19
19
|
import useBlockEditorSettings from './use-block-editor-settings';
|
|
20
20
|
import { unlock } from '../../lock-unlock';
|
|
21
21
|
import DisableNonPageContentBlocks from './disable-non-page-content-blocks';
|
|
22
|
-
import
|
|
22
|
+
import NavigationBlockEditingMode from './navigation-block-editing-mode';
|
|
23
23
|
const {
|
|
24
24
|
ExperimentalBlockEditorProvider
|
|
25
25
|
} = unlock(blockEditorPrivateApis);
|
|
@@ -28,56 +28,6 @@ const {
|
|
|
28
28
|
} = unlock(editPatternsPrivateApis);
|
|
29
29
|
const noop = () => {};
|
|
30
30
|
|
|
31
|
-
/**
|
|
32
|
-
* For the Navigation block editor, we need to force the block editor to contentOnly for that block.
|
|
33
|
-
*
|
|
34
|
-
* Set block editing mode to contentOnly when entering Navigation focus mode.
|
|
35
|
-
* this ensures that non-content controls on the block will be hidden and thus
|
|
36
|
-
* the user can focus on editing the Navigation Menu content only.
|
|
37
|
-
*
|
|
38
|
-
* @param {string} navigationBlockClientId ClientId.
|
|
39
|
-
*/
|
|
40
|
-
function useForceFocusModeForNavigation(navigationBlockClientId) {
|
|
41
|
-
const {
|
|
42
|
-
setBlockEditingMode,
|
|
43
|
-
unsetBlockEditingMode
|
|
44
|
-
} = useDispatch(blockEditorStore);
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
if (!navigationBlockClientId) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
setBlockEditingMode(navigationBlockClientId, 'contentOnly');
|
|
50
|
-
return () => {
|
|
51
|
-
unsetBlockEditingMode(navigationBlockClientId);
|
|
52
|
-
};
|
|
53
|
-
}, [navigationBlockClientId, unsetBlockEditingMode, setBlockEditingMode]);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Helper method to extract the post content block types from a template.
|
|
58
|
-
*
|
|
59
|
-
* @param {Array} blocks Template blocks.
|
|
60
|
-
*
|
|
61
|
-
* @return {Array} Flattened object.
|
|
62
|
-
*/
|
|
63
|
-
function extractPageContentBlockTypesFromTemplateBlocks(blocks) {
|
|
64
|
-
const result = [];
|
|
65
|
-
for (let i = 0; i < blocks.length; i++) {
|
|
66
|
-
// Since the Query Block could contain PAGE_CONTENT_BLOCK_TYPES block types,
|
|
67
|
-
// we skip it because we only want to render stand-alone page content blocks in the block list.
|
|
68
|
-
if (blocks[i].name === 'core/query') {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
if (PAGE_CONTENT_BLOCK_TYPES.includes(blocks[i].name)) {
|
|
72
|
-
result.push(createBlock(blocks[i].name));
|
|
73
|
-
}
|
|
74
|
-
if (blocks[i].innerBlocks.length) {
|
|
75
|
-
result.push(...extractPageContentBlockTypesFromTemplateBlocks(blocks[i].innerBlocks));
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return result;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
31
|
/**
|
|
82
32
|
* Depending on the post, template and template mode,
|
|
83
33
|
* returns the appropriate blocks and change handlers for the block editor provider.
|
|
@@ -95,7 +45,7 @@ function useBlockEditorProps(post, template, mode) {
|
|
|
95
45
|
const [templateBlocks, onInputTemplate, onChangeTemplate] = useEntityBlockEditor('postType', template?.type, {
|
|
96
46
|
id: template?.id
|
|
97
47
|
});
|
|
98
|
-
const
|
|
48
|
+
const maybeNavigationBlocks = useMemo(() => {
|
|
99
49
|
if (post.type === 'wp_navigation') {
|
|
100
50
|
return [createBlock('core/navigation', {
|
|
101
51
|
ref: post.id,
|
|
@@ -105,29 +55,24 @@ function useBlockEditorProps(post, template, mode) {
|
|
|
105
55
|
templateLock: false
|
|
106
56
|
})];
|
|
107
57
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
spacing: {
|
|
116
|
-
margin: {
|
|
117
|
-
top: '4em' // Mimics the post editor.
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}, postContentBlocks.length ? postContentBlocks : [createBlock('core/post-title'), createBlock('core/post-content')])];
|
|
58
|
+
}, [post.type, post.id]);
|
|
59
|
+
|
|
60
|
+
// It is important that we don't create a new instance of blocks on every change
|
|
61
|
+
// We should only create a new instance if the blocks them selves change, not a dependency of them.
|
|
62
|
+
const blocks = useMemo(() => {
|
|
63
|
+
if (maybeNavigationBlocks) {
|
|
64
|
+
return maybeNavigationBlocks;
|
|
122
65
|
}
|
|
123
66
|
if (rootLevelPost === 'template') {
|
|
124
67
|
return templateBlocks;
|
|
125
68
|
}
|
|
126
69
|
return postBlocks;
|
|
127
|
-
}, [
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
70
|
+
}, [maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks]);
|
|
71
|
+
|
|
72
|
+
// Handle fallback to postBlocks outside of the above useMemo, to ensure
|
|
73
|
+
// that constructed block templates that call `createBlock` are not generated
|
|
74
|
+
// too frequently. This ensures that clientIds are stable.
|
|
75
|
+
const disableRootLevelChanges = !!template && mode === 'template-locked' || post.type === 'wp_navigation';
|
|
131
76
|
if (disableRootLevelChanges) {
|
|
132
77
|
return [blocks, noop, noop];
|
|
133
78
|
}
|
|
@@ -181,13 +126,14 @@ export const ExperimentalEditorProvider = withRegistryProvider(({
|
|
|
181
126
|
updatePostLock,
|
|
182
127
|
setupEditor,
|
|
183
128
|
updateEditorSettings,
|
|
184
|
-
|
|
185
|
-
|
|
129
|
+
setCurrentTemplateId,
|
|
130
|
+
setEditedPost,
|
|
131
|
+
setRenderingMode
|
|
132
|
+
} = unlock(useDispatch(editorStore));
|
|
186
133
|
const {
|
|
187
134
|
createWarningNotice
|
|
188
135
|
} = useDispatch(noticesStore);
|
|
189
136
|
|
|
190
|
-
// Initialize and tear down the editor.
|
|
191
137
|
// Ideally this should be synced on each change and not just something you do once.
|
|
192
138
|
useLayoutEffect(() => {
|
|
193
139
|
// Assume that we don't need to initialize in the case of an error recovery.
|
|
@@ -205,15 +151,28 @@ export const ExperimentalEditorProvider = withRegistryProvider(({
|
|
|
205
151
|
}]
|
|
206
152
|
});
|
|
207
153
|
}
|
|
208
|
-
return () => {
|
|
209
|
-
__experimentalTearDownEditor();
|
|
210
|
-
};
|
|
211
154
|
}, []);
|
|
212
155
|
|
|
156
|
+
// Synchronizes the active post with the state
|
|
157
|
+
useEffect(() => {
|
|
158
|
+
setEditedPost(post.type, post.id);
|
|
159
|
+
}, [post.type, post.id]);
|
|
160
|
+
|
|
213
161
|
// Synchronize the editor settings as they change.
|
|
214
162
|
useEffect(() => {
|
|
215
163
|
updateEditorSettings(settings);
|
|
216
164
|
}, [settings, updateEditorSettings]);
|
|
165
|
+
|
|
166
|
+
// Synchronizes the active template with the state.
|
|
167
|
+
useEffect(() => {
|
|
168
|
+
setCurrentTemplateId(template?.id);
|
|
169
|
+
}, [template?.id, setCurrentTemplateId]);
|
|
170
|
+
|
|
171
|
+
// Sets the right rendering mode when loading the editor.
|
|
172
|
+
useEffect(() => {
|
|
173
|
+
var _settings$defaultRend;
|
|
174
|
+
setRenderingMode((_settings$defaultRend = settings.defaultRenderingMode) !== null && _settings$defaultRend !== void 0 ? _settings$defaultRend : 'post-only');
|
|
175
|
+
}, [settings.defaultRenderingMode, setRenderingMode]);
|
|
217
176
|
if (!isReady) {
|
|
218
177
|
return null;
|
|
219
178
|
}
|
|
@@ -233,7 +192,7 @@ export const ExperimentalEditorProvider = withRegistryProvider(({
|
|
|
233
192
|
selection: selection,
|
|
234
193
|
settings: blockEditorSettings,
|
|
235
194
|
useSubRegistry: false
|
|
236
|
-
}, children, createElement(PatternsMenuItems, null),
|
|
195
|
+
}, children, createElement(PatternsMenuItems, null), mode === 'template-locked' && createElement(DisableNonPageContentBlocks, null), type === 'wp_navigation' && createElement(NavigationBlockEditingMode, null)))));
|
|
237
196
|
});
|
|
238
197
|
export function EditorProvider(props) {
|
|
239
198
|
return createElement(ExperimentalEditorProvider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useLayoutEffect","useMemo","useDispatch","useSelect","__","EntityProvider","useEntityBlockEditor","BlockEditorProvider","BlockContextProvider","privateApis","blockEditorPrivateApis","store","blockEditorStore","noticesStore","editPatternsPrivateApis","createBlock","withRegistryProvider","editorStore","useBlockEditorSettings","unlock","DisableNonPageContentBlocks","PAGE_CONTENT_BLOCK_TYPES","ExperimentalBlockEditorProvider","PatternsMenuItems","noop","useForceFocusModeForNavigation","navigationBlockClientId","setBlockEditingMode","unsetBlockEditingMode","extractPageContentBlockTypesFromTemplateBlocks","blocks","result","i","length","name","includes","push","innerBlocks","useBlockEditorProps","post","template","mode","rootLevelPost","postBlocks","onInput","onChange","type","id","templateBlocks","onInputTemplate","onChangeTemplate","ref","templateLock","postContentBlocks","layout","style","spacing","margin","top","disableRootLevelChanges","clientId","ExperimentalEditorProvider","settings","recovery","initialEdits","children","BlockEditorProviderComponent","__unstableTemplate","select","getRenderingMode","shouldRenderTemplate","defaultBlockContext","postContext","postId","postType","templateSlug","slug","undefined","editorSettings","selection","isReady","getEditorSettings","getEditorSelection","__unstableIsEditorReady","blockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","__experimentalTearDownEditor","createWarningNotice","postLock","autosave","actions","label","url","editLink","createElement","kind","value","useSubRegistry","EditorProvider","props"],"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 blocks = 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\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\n\t\tif ( rootLevelPost === 'template' ) {\n\t\t\treturn templateBlocks;\n\t\t}\n\n\t\treturn postBlocks;\n\t}, [\n\t\ttemplateBlocks,\n\t\tpostBlocks,\n\t\trootLevelPost,\n\t\tpost.type,\n\t\tpost.id,\n\t\tmode,\n\t] );\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":["useEffect","useLayoutEffect","useMemo","useDispatch","useSelect","__","EntityProvider","useEntityBlockEditor","BlockEditorProvider","BlockContextProvider","privateApis","blockEditorPrivateApis","store","noticesStore","editPatternsPrivateApis","createBlock","withRegistryProvider","editorStore","useBlockEditorSettings","unlock","DisableNonPageContentBlocks","NavigationBlockEditingMode","ExperimentalBlockEditorProvider","PatternsMenuItems","noop","useBlockEditorProps","post","template","mode","rootLevelPost","postBlocks","onInput","onChange","type","id","templateBlocks","onInputTemplate","onChangeTemplate","maybeNavigationBlocks","ref","templateLock","blocks","disableRootLevelChanges","ExperimentalEditorProvider","settings","recovery","initialEdits","children","BlockEditorProviderComponent","__unstableTemplate","select","getRenderingMode","shouldRenderTemplate","defaultBlockContext","postContext","postId","postType","templateSlug","slug","undefined","editorSettings","selection","isReady","getEditorSettings","getEditorSelection","__unstableIsEditorReady","blockEditorSettings","updatePostLock","setupEditor","updateEditorSettings","setCurrentTemplateId","setEditedPost","setRenderingMode","createWarningNotice","postLock","autosave","actions","label","url","editLink","_settings$defaultRend","defaultRenderingMode","createElement","kind","value","useSubRegistry","EditorProvider","props"],"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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"}
|
|
@@ -11,13 +11,14 @@ import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
|
11
11
|
import RNReactNativeGutenbergBridge, { requestBlockTypeImpressions, setBlockTypeImpressions, subscribeParentGetHtml, subscribeParentToggleHTMLMode, subscribeUpdateHtml, subscribeSetTitle, subscribeMediaAppend, subscribeReplaceBlock, subscribeUpdateEditorSettings, subscribeUpdateCapabilities, subscribeShowNotice, subscribeShowEditorHelp } from '@wordpress/react-native-bridge';
|
|
12
12
|
import { Component } from '@wordpress/element';
|
|
13
13
|
import { count as wordCount } from '@wordpress/wordcount';
|
|
14
|
-
import { parse, serialize, getUnregisteredTypeHandlerName, createBlock } from '@wordpress/blocks';
|
|
14
|
+
import { parse, serialize, getUnregisteredTypeHandlerName, getBlockType, createBlock } from '@wordpress/blocks';
|
|
15
15
|
import { withDispatch, withSelect } from '@wordpress/data';
|
|
16
16
|
import { compose } from '@wordpress/compose';
|
|
17
17
|
import { applyFilters } from '@wordpress/hooks';
|
|
18
18
|
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
19
19
|
import { getGlobalStyles, getColorsAndGradients } from '@wordpress/components';
|
|
20
20
|
import { NEW_BLOCK_TYPES } from '@wordpress/block-library';
|
|
21
|
+
import { __ } from '@wordpress/i18n';
|
|
21
22
|
const postTypeEntities = [{
|
|
22
23
|
name: 'post',
|
|
23
24
|
baseURL: '/wp/v2/posts'
|
|
@@ -73,6 +74,7 @@ class NativeEditorProvider extends Component {
|
|
|
73
74
|
componentDidMount() {
|
|
74
75
|
const {
|
|
75
76
|
capabilities,
|
|
77
|
+
createErrorNotice,
|
|
76
78
|
locale,
|
|
77
79
|
hostAppNamespace,
|
|
78
80
|
updateEditorSettings,
|
|
@@ -101,13 +103,18 @@ class NativeEditorProvider extends Component {
|
|
|
101
103
|
});
|
|
102
104
|
this.subscriptionParentMediaAppend = subscribeMediaAppend(payload => {
|
|
103
105
|
const blockName = 'core/' + payload.mediaType;
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
106
|
+
const blockType = getBlockType(blockName);
|
|
107
|
+
if (blockType && blockType?.name) {
|
|
108
|
+
const newBlock = createBlock(blockType.name, {
|
|
109
|
+
id: payload.mediaId,
|
|
110
|
+
[payload.mediaType === 'image' ? 'url' : 'src']: payload.mediaUrl
|
|
111
|
+
});
|
|
112
|
+
const indexAfterSelected = this.props.selectedBlockIndex + 1;
|
|
113
|
+
const insertionIndex = indexAfterSelected || this.props.blockCount;
|
|
114
|
+
this.props.insertBlock(newBlock, insertionIndex);
|
|
115
|
+
} else {
|
|
116
|
+
createErrorNotice(__('File type not supported as a media file.'));
|
|
117
|
+
}
|
|
111
118
|
});
|
|
112
119
|
this.subscriptionParentUpdateEditorSettings = subscribeUpdateEditorSettings(({
|
|
113
120
|
galleryWithImageBlocks,
|
|
@@ -329,7 +336,8 @@ const ComposedNativeProvider = compose([withSelect(select => {
|
|
|
329
336
|
receiveEntityRecords
|
|
330
337
|
} = dispatch(coreStore);
|
|
331
338
|
const {
|
|
332
|
-
createSuccessNotice
|
|
339
|
+
createSuccessNotice,
|
|
340
|
+
createErrorNotice
|
|
333
341
|
} = dispatch(noticesStore);
|
|
334
342
|
return {
|
|
335
343
|
updateBlockEditorSettings: updateSettings,
|
|
@@ -337,6 +345,7 @@ const ComposedNativeProvider = compose([withSelect(select => {
|
|
|
337
345
|
addEntities,
|
|
338
346
|
insertBlock,
|
|
339
347
|
createSuccessNotice,
|
|
348
|
+
createErrorNotice,
|
|
340
349
|
editTitle(title) {
|
|
341
350
|
editPost({
|
|
342
351
|
title
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memize","SafeAreaProvider","RNReactNativeGutenbergBridge","requestBlockTypeImpressions","setBlockTypeImpressions","subscribeParentGetHtml","subscribeParentToggleHTMLMode","subscribeUpdateHtml","subscribeSetTitle","subscribeMediaAppend","subscribeReplaceBlock","subscribeUpdateEditorSettings","subscribeUpdateCapabilities","subscribeShowNotice","subscribeShowEditorHelp","Component","count","wordCount","parse","serialize","getUnregisteredTypeHandlerName","createBlock","withDispatch","withSelect","compose","applyFilters","store","blockEditorStore","getGlobalStyles","getColorsAndGradients","NEW_BLOCK_TYPES","postTypeEntities","name","baseURL","map","postTypeEntity","kind","transientEdits","blocks","selection","mergedEdits","meta","rawAttributes","EditorHelpTopics","editorStore","noticesStore","coreStore","editPostStore","EditorProvider","NativeEditorProvider","constructor","arguments","post","props","addEntities","receiveEntityRecords","type","getEditorSettings","settings","capabilities","maxSize","state","isHelpVisible","componentDidMount","locale","hostAppNamespace","updateEditorSettings","updateBlockEditorSettings","getThemeColors","subscriptionParentGetHtml","serializeToNativeAction","subscriptionParentToggleHTMLMode","toggleMode","subscriptionParentSetTitle","payload","editTitle","title","subscriptionParentUpdateHtml","updateHtmlAction","html","subscriptionParentReplaceBlock","replaceBlockAction","clientId","subscriptionParentMediaAppend","blockName","mediaType","newBlock","id","mediaId","mediaUrl","indexAfterSelected","selectedBlockIndex","insertionIndex","blockCount","insertBlock","subscriptionParentUpdateEditorSettings","galleryWithImageBlocks","editorSettings","window","wp","galleryBlockV2Enabled","subscriptionParentUpdateCapabilities","updateCapabilitiesAction","subscriptionParentShowNotice","createSuccessNotice","message","subscriptionParentShowEditorHelp","setState","storedImpressions","impressions","storedImpressionKeys","Object","keys","storedImpressionsCurrent","every","newKey","includes","componentWillUnmount","remove","rawStyles","rawFeatures","defaultEditorColors","defaultEditorGradients","componentDidUpdate","prevProps","isReady","isUnsupportedBlock","unsupportedBlockNames","filter","block","attributes","originalName","editorDidMount","mode","hasChanges","raw","content","contentInfo","characterCount","paragraphCount","provideToNative_Html","parsed","resetEditorBlocksWithoutUndoLevel","blockClientId","replaceBlock","switchMode","render","children","createElement","Fragment","isVisible","onClose","close","showSupport","supportSection","ComposedNativeProvider","select","_settings$colors","_settings$gradients","__unstableIsEditorReady","isEditorReady","getEditorBlocks","getEditedPostAttribute","getEditedPostContent","getEditorMode","getBlockIndex","getSelectedBlockClientId","getGlobalBlockCount","colors","gradients","selectedBlockClientId","dispatch","editPost","resetEditorBlocks","updateSettings","switchEditorMode","__unstableShouldCreateUndoLevel","ExperimentalEditorProvider"],"sources":["@wordpress/editor/src/components/provider/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport memize from 'memize';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\n/**\n * WordPress dependencies\n */\nimport RNReactNativeGutenbergBridge, {\n\trequestBlockTypeImpressions,\n\tsetBlockTypeImpressions,\n\tsubscribeParentGetHtml,\n\tsubscribeParentToggleHTMLMode,\n\tsubscribeUpdateHtml,\n\tsubscribeSetTitle,\n\tsubscribeMediaAppend,\n\tsubscribeReplaceBlock,\n\tsubscribeUpdateEditorSettings,\n\tsubscribeUpdateCapabilities,\n\tsubscribeShowNotice,\n\tsubscribeShowEditorHelp,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport {\n\tparse,\n\tserialize,\n\tgetUnregisteredTypeHandlerName,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { getGlobalStyles, getColorsAndGradients } from '@wordpress/components';\nimport { NEW_BLOCK_TYPES } from '@wordpress/block-library';\n\nconst postTypeEntities = [\n\t{ name: 'post', baseURL: '/wp/v2/posts' },\n\t{ name: 'page', baseURL: '/wp/v2/pages' },\n\t{ name: 'attachment', baseURL: '/wp/v2/media' },\n\t{ name: 'wp_block', baseURL: '/wp/v2/blocks' },\n].map( ( postTypeEntity ) => ( {\n\tkind: 'postType',\n\t...postTypeEntity,\n\ttransientEdits: {\n\t\tblocks: true,\n\t\tselection: true,\n\t},\n\tmergedEdits: {\n\t\tmeta: true,\n\t},\n\trawAttributes: [ 'title', 'excerpt', 'content' ],\n} ) );\nimport { EditorHelpTopics, store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport EditorProvider from './index.js';\n\nclass NativeEditorProvider extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\t// Keep a local reference to `post` to detect changes.\n\t\tthis.post = this.props.post;\n\t\tthis.props.addEntities( postTypeEntities );\n\t\tthis.props.receiveEntityRecords(\n\t\t\t'postType',\n\t\t\tthis.post.type,\n\t\t\tthis.post\n\t\t);\n\n\t\tthis.getEditorSettings = memize(\n\t\t\t( settings, capabilities ) => ( {\n\t\t\t\t...settings,\n\t\t\t\tcapabilities,\n\t\t\t} ),\n\t\t\t{\n\t\t\t\tmaxSize: 1,\n\t\t\t}\n\t\t);\n\t\tthis.state = {\n\t\t\tisHelpVisible: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst {\n\t\t\tcapabilities,\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t\tupdateEditorSettings,\n\t\t\tupdateBlockEditorSettings,\n\t\t} = this.props;\n\n\t\tupdateEditorSettings( {\n\t\t\tcapabilities,\n\t\t\t...this.getThemeColors( this.props ),\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t} );\n\n\t\tthis.subscriptionParentGetHtml = subscribeParentGetHtml( () => {\n\t\t\tthis.serializeToNativeAction();\n\t\t} );\n\n\t\tthis.subscriptionParentToggleHTMLMode = subscribeParentToggleHTMLMode(\n\t\t\t() => {\n\t\t\t\tthis.toggleMode();\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentSetTitle = subscribeSetTitle( ( payload ) => {\n\t\t\tthis.props.editTitle( payload.title );\n\t\t} );\n\n\t\tthis.subscriptionParentUpdateHtml = subscribeUpdateHtml(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateHtmlAction( payload.html );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentReplaceBlock = subscribeReplaceBlock(\n\t\t\t( payload ) => {\n\t\t\t\tthis.replaceBlockAction( payload.html, payload.clientId );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentMediaAppend = subscribeMediaAppend(\n\t\t\t( payload ) => {\n\t\t\t\tconst blockName = 'core/' + payload.mediaType;\n\t\t\t\tconst newBlock = createBlock( blockName, {\n\t\t\t\t\tid: payload.mediaId,\n\t\t\t\t\t[ payload.mediaType === 'image' ? 'url' : 'src' ]:\n\t\t\t\t\t\tpayload.mediaUrl,\n\t\t\t\t} );\n\n\t\t\t\tconst indexAfterSelected = this.props.selectedBlockIndex + 1;\n\t\t\t\tconst insertionIndex =\n\t\t\t\t\tindexAfterSelected || this.props.blockCount;\n\n\t\t\t\tthis.props.insertBlock( newBlock, insertionIndex );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentUpdateEditorSettings =\n\t\t\tsubscribeUpdateEditorSettings(\n\t\t\t\t( { galleryWithImageBlocks, ...editorSettings } ) => {\n\t\t\t\t\tif ( typeof galleryWithImageBlocks === 'boolean' ) {\n\t\t\t\t\t\twindow.wp.galleryBlockV2Enabled =\n\t\t\t\t\t\t\tgalleryWithImageBlocks;\n\t\t\t\t\t}\n\t\t\t\t\tupdateEditorSettings(\n\t\t\t\t\t\tthis.getThemeColors( editorSettings )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\tthis.subscriptionParentUpdateCapabilities = subscribeUpdateCapabilities(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateCapabilitiesAction( payload );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowNotice = subscribeShowNotice(\n\t\t\t( payload ) => {\n\t\t\t\tthis.props.createSuccessNotice( payload.message );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowEditorHelp = subscribeShowEditorHelp( () => {\n\t\t\tthis.setState( { isHelpVisible: true } );\n\t\t} );\n\n\t\t// Request current block impressions from native app.\n\t\trequestBlockTypeImpressions( ( storedImpressions ) => {\n\t\t\tconst impressions = { ...NEW_BLOCK_TYPES, ...storedImpressions };\n\n\t\t\t// Persist impressions to JavaScript store.\n\t\t\tupdateBlockEditorSettings( { impressions } );\n\n\t\t\t// Persist impressions to native store if they do not include latest\n\t\t\t// `NEW_BLOCK_TYPES` configuration.\n\t\t\tconst storedImpressionKeys = Object.keys( storedImpressions );\n\t\t\tconst storedImpressionsCurrent = Object.keys(\n\t\t\t\tNEW_BLOCK_TYPES\n\t\t\t).every( ( newKey ) => storedImpressionKeys.includes( newKey ) );\n\t\t\tif ( ! storedImpressionsCurrent ) {\n\t\t\t\tsetBlockTypeImpressions( impressions );\n\t\t\t}\n\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.subscriptionParentGetHtml ) {\n\t\t\tthis.subscriptionParentGetHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentToggleHTMLMode ) {\n\t\t\tthis.subscriptionParentToggleHTMLMode.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentSetTitle ) {\n\t\t\tthis.subscriptionParentSetTitle.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateHtml ) {\n\t\t\tthis.subscriptionParentUpdateHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentReplaceBlock ) {\n\t\t\tthis.subscriptionParentReplaceBlock.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentMediaAppend ) {\n\t\t\tthis.subscriptionParentMediaAppend.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateEditorSettings ) {\n\t\t\tthis.subscriptionParentUpdateEditorSettings.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateCapabilities ) {\n\t\t\tthis.subscriptionParentUpdateCapabilities.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowNotice ) {\n\t\t\tthis.subscriptionParentShowNotice.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowEditorHelp ) {\n\t\t\tthis.subscriptionParentShowEditorHelp.remove();\n\t\t}\n\t}\n\n\tgetThemeColors( { rawStyles, rawFeatures } ) {\n\t\tconst { defaultEditorColors, defaultEditorGradients } = this.props;\n\n\t\tif ( rawStyles && rawFeatures ) {\n\t\t\treturn getGlobalStyles( rawStyles, rawFeatures );\n\t\t}\n\n\t\treturn getColorsAndGradients(\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\trawFeatures\n\t\t);\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! prevProps.isReady && this.props.isReady ) {\n\t\t\tconst blocks = this.props.blocks;\n\t\t\tconst isUnsupportedBlock = ( { name } ) =>\n\t\t\t\tname === getUnregisteredTypeHandlerName();\n\t\t\tconst unsupportedBlockNames = blocks\n\t\t\t\t.filter( isUnsupportedBlock )\n\t\t\t\t.map( ( block ) => block.attributes.originalName );\n\t\t\tRNReactNativeGutenbergBridge.editorDidMount(\n\t\t\t\tunsupportedBlockNames\n\t\t\t);\n\t\t}\n\t}\n\n\tserializeToNativeAction() {\n\t\tconst title = this.props.title;\n\t\tlet html;\n\n\t\tif ( this.props.mode === 'text' ) {\n\t\t\t// The HTMLTextInput component does not update the store when user is doing changes\n\t\t\t// Let's request the HTML from the component's state directly.\n\t\t\thtml = applyFilters( 'native.persist-html' );\n\t\t} else {\n\t\t\thtml = serialize( this.props.blocks );\n\t\t}\n\n\t\tconst hasChanges =\n\t\t\ttitle !== this.post.title.raw || html !== this.post.content.raw;\n\n\t\t// Variable to store the content structure metrics.\n\t\tconst contentInfo = {};\n\t\tcontentInfo.characterCount = wordCount(\n\t\t\thtml,\n\t\t\t'characters_including_spaces'\n\t\t);\n\t\tcontentInfo.wordCount = wordCount( html, 'words' );\n\t\tcontentInfo.paragraphCount = this.props.paragraphCount;\n\t\tcontentInfo.blockCount = this.props.blockCount;\n\t\tRNReactNativeGutenbergBridge.provideToNative_Html(\n\t\t\thtml,\n\t\t\ttitle,\n\t\t\thasChanges,\n\t\t\tcontentInfo\n\t\t);\n\n\t\tif ( hasChanges ) {\n\t\t\tthis.post.title.raw = title;\n\t\t\tthis.post.content.raw = html;\n\t\t}\n\t}\n\n\tupdateHtmlAction( html ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.resetEditorBlocksWithoutUndoLevel( parsed );\n\t}\n\n\treplaceBlockAction( html, blockClientId ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.replaceBlock( blockClientId, parsed );\n\t}\n\n\ttoggleMode() {\n\t\tconst { mode, switchMode } = this.props;\n\t\t// Refresh html content first.\n\t\tthis.serializeToNativeAction();\n\t\tswitchMode( mode === 'visual' ? 'text' : 'visual' );\n\t}\n\n\tupdateCapabilitiesAction( capabilities ) {\n\t\tthis.props.updateEditorSettings( { capabilities } );\n\t}\n\n\trender() {\n\t\tconst { children, post, capabilities, settings, ...props } = this.props;\n\t\tconst editorSettings = this.getEditorSettings( settings, capabilities );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ this.post }\n\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<SafeAreaProvider>{ children }</SafeAreaProvider>\n\t\t\t\t</EditorProvider>\n\t\t\t\t<EditorHelpTopics\n\t\t\t\t\tisVisible={ this.state.isHelpVisible }\n\t\t\t\t\tonClose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tclose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tshowSupport={ capabilities?.supportSection === true }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nconst ComposedNativeProvider = compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\t__unstableIsEditorReady: isEditorReady,\n\t\t\tgetEditorBlocks,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostContent,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getEditorMode } = select( editPostStore );\n\n\t\tconst { getBlockIndex, getSelectedBlockClientId, getGlobalBlockCount } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst settings = getEditorSettings();\n\t\tconst defaultEditorColors = settings?.colors ?? [];\n\t\tconst defaultEditorGradients = settings?.gradients ?? [];\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tmode: getEditorMode(),\n\t\t\tisReady: isEditorReady(),\n\t\t\tblocks: getEditorBlocks(),\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tgetEditedPostContent,\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\tselectedBlockIndex: getBlockIndex( selectedBlockClientId ),\n\t\t\tblockCount: getGlobalBlockCount(),\n\t\t\tparagraphCount: getGlobalBlockCount( 'core/paragraph' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, resetEditorBlocks, updateEditorSettings } =\n\t\t\tdispatch( editorStore );\n\t\tconst { updateSettings, insertBlock, replaceBlock } =\n\t\t\tdispatch( blockEditorStore );\n\t\tconst { switchEditorMode } = dispatch( editPostStore );\n\t\tconst { addEntities, receiveEntityRecords } = dispatch( coreStore );\n\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\treturn {\n\t\t\tupdateBlockEditorSettings: updateSettings,\n\t\t\tupdateEditorSettings,\n\t\t\taddEntities,\n\t\t\tinsertBlock,\n\t\t\tcreateSuccessNotice,\n\t\t\teditTitle( title ) {\n\t\t\t\teditPost( { title } );\n\t\t\t},\n\t\t\treceiveEntityRecords,\n\t\t\tresetEditorBlocksWithoutUndoLevel( blocks ) {\n\t\t\t\tresetEditorBlocks( blocks, {\n\t\t\t\t\t__unstableShouldCreateUndoLevel: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tswitchMode( mode ) {\n\t\t\t\tswitchEditorMode( mode );\n\t\t\t},\n\t\t\treplaceBlock,\n\t\t};\n\t} ),\n] )( NativeEditorProvider );\n\nexport default ComposedNativeProvider;\nexport { ComposedNativeProvider as ExperimentalEditorProvider };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["memize","SafeAreaProvider","RNReactNativeGutenbergBridge","requestBlockTypeImpressions","setBlockTypeImpressions","subscribeParentGetHtml","subscribeParentToggleHTMLMode","subscribeUpdateHtml","subscribeSetTitle","subscribeMediaAppend","subscribeReplaceBlock","subscribeUpdateEditorSettings","subscribeUpdateCapabilities","subscribeShowNotice","subscribeShowEditorHelp","Component","count","wordCount","parse","serialize","getUnregisteredTypeHandlerName","getBlockType","createBlock","withDispatch","withSelect","compose","applyFilters","store","blockEditorStore","getGlobalStyles","getColorsAndGradients","NEW_BLOCK_TYPES","__","postTypeEntities","name","baseURL","map","postTypeEntity","kind","transientEdits","blocks","selection","mergedEdits","meta","rawAttributes","EditorHelpTopics","editorStore","noticesStore","coreStore","editPostStore","EditorProvider","NativeEditorProvider","constructor","arguments","post","props","addEntities","receiveEntityRecords","type","getEditorSettings","settings","capabilities","maxSize","state","isHelpVisible","componentDidMount","createErrorNotice","locale","hostAppNamespace","updateEditorSettings","updateBlockEditorSettings","getThemeColors","subscriptionParentGetHtml","serializeToNativeAction","subscriptionParentToggleHTMLMode","toggleMode","subscriptionParentSetTitle","payload","editTitle","title","subscriptionParentUpdateHtml","updateHtmlAction","html","subscriptionParentReplaceBlock","replaceBlockAction","clientId","subscriptionParentMediaAppend","blockName","mediaType","blockType","newBlock","id","mediaId","mediaUrl","indexAfterSelected","selectedBlockIndex","insertionIndex","blockCount","insertBlock","subscriptionParentUpdateEditorSettings","galleryWithImageBlocks","editorSettings","window","wp","galleryBlockV2Enabled","subscriptionParentUpdateCapabilities","updateCapabilitiesAction","subscriptionParentShowNotice","createSuccessNotice","message","subscriptionParentShowEditorHelp","setState","storedImpressions","impressions","storedImpressionKeys","Object","keys","storedImpressionsCurrent","every","newKey","includes","componentWillUnmount","remove","rawStyles","rawFeatures","defaultEditorColors","defaultEditorGradients","componentDidUpdate","prevProps","isReady","isUnsupportedBlock","unsupportedBlockNames","filter","block","attributes","originalName","editorDidMount","mode","hasChanges","raw","content","contentInfo","characterCount","paragraphCount","provideToNative_Html","parsed","resetEditorBlocksWithoutUndoLevel","blockClientId","replaceBlock","switchMode","render","children","createElement","Fragment","isVisible","onClose","close","showSupport","supportSection","ComposedNativeProvider","select","_settings$colors","_settings$gradients","__unstableIsEditorReady","isEditorReady","getEditorBlocks","getEditedPostAttribute","getEditedPostContent","getEditorMode","getBlockIndex","getSelectedBlockClientId","getGlobalBlockCount","colors","gradients","selectedBlockClientId","dispatch","editPost","resetEditorBlocks","updateSettings","switchEditorMode","__unstableShouldCreateUndoLevel","ExperimentalEditorProvider"],"sources":["@wordpress/editor/src/components/provider/index.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport memize from 'memize';\nimport { SafeAreaProvider } from 'react-native-safe-area-context';\n\n/**\n * WordPress dependencies\n */\nimport RNReactNativeGutenbergBridge, {\n\trequestBlockTypeImpressions,\n\tsetBlockTypeImpressions,\n\tsubscribeParentGetHtml,\n\tsubscribeParentToggleHTMLMode,\n\tsubscribeUpdateHtml,\n\tsubscribeSetTitle,\n\tsubscribeMediaAppend,\n\tsubscribeReplaceBlock,\n\tsubscribeUpdateEditorSettings,\n\tsubscribeUpdateCapabilities,\n\tsubscribeShowNotice,\n\tsubscribeShowEditorHelp,\n} from '@wordpress/react-native-bridge';\nimport { Component } from '@wordpress/element';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport {\n\tparse,\n\tserialize,\n\tgetUnregisteredTypeHandlerName,\n\tgetBlockType,\n\tcreateBlock,\n} from '@wordpress/blocks';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { getGlobalStyles, getColorsAndGradients } from '@wordpress/components';\nimport { NEW_BLOCK_TYPES } from '@wordpress/block-library';\nimport { __ } from '@wordpress/i18n';\n\nconst postTypeEntities = [\n\t{ name: 'post', baseURL: '/wp/v2/posts' },\n\t{ name: 'page', baseURL: '/wp/v2/pages' },\n\t{ name: 'attachment', baseURL: '/wp/v2/media' },\n\t{ name: 'wp_block', baseURL: '/wp/v2/blocks' },\n].map( ( postTypeEntity ) => ( {\n\tkind: 'postType',\n\t...postTypeEntity,\n\ttransientEdits: {\n\t\tblocks: true,\n\t\tselection: true,\n\t},\n\tmergedEdits: {\n\t\tmeta: true,\n\t},\n\trawAttributes: [ 'title', 'excerpt', 'content' ],\n} ) );\nimport { EditorHelpTopics, store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport EditorProvider from './index.js';\n\nclass NativeEditorProvider extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\t// Keep a local reference to `post` to detect changes.\n\t\tthis.post = this.props.post;\n\t\tthis.props.addEntities( postTypeEntities );\n\t\tthis.props.receiveEntityRecords(\n\t\t\t'postType',\n\t\t\tthis.post.type,\n\t\t\tthis.post\n\t\t);\n\n\t\tthis.getEditorSettings = memize(\n\t\t\t( settings, capabilities ) => ( {\n\t\t\t\t...settings,\n\t\t\t\tcapabilities,\n\t\t\t} ),\n\t\t\t{\n\t\t\t\tmaxSize: 1,\n\t\t\t}\n\t\t);\n\t\tthis.state = {\n\t\t\tisHelpVisible: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst {\n\t\t\tcapabilities,\n\t\t\tcreateErrorNotice,\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t\tupdateEditorSettings,\n\t\t\tupdateBlockEditorSettings,\n\t\t} = this.props;\n\n\t\tupdateEditorSettings( {\n\t\t\tcapabilities,\n\t\t\t...this.getThemeColors( this.props ),\n\t\t\tlocale,\n\t\t\thostAppNamespace,\n\t\t} );\n\n\t\tthis.subscriptionParentGetHtml = subscribeParentGetHtml( () => {\n\t\t\tthis.serializeToNativeAction();\n\t\t} );\n\n\t\tthis.subscriptionParentToggleHTMLMode = subscribeParentToggleHTMLMode(\n\t\t\t() => {\n\t\t\t\tthis.toggleMode();\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentSetTitle = subscribeSetTitle( ( payload ) => {\n\t\t\tthis.props.editTitle( payload.title );\n\t\t} );\n\n\t\tthis.subscriptionParentUpdateHtml = subscribeUpdateHtml(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateHtmlAction( payload.html );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentReplaceBlock = subscribeReplaceBlock(\n\t\t\t( payload ) => {\n\t\t\t\tthis.replaceBlockAction( payload.html, payload.clientId );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentMediaAppend = subscribeMediaAppend(\n\t\t\t( payload ) => {\n\t\t\t\tconst blockName = 'core/' + payload.mediaType;\n\t\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\t\tif ( blockType && blockType?.name ) {\n\t\t\t\t\tconst newBlock = createBlock( blockType.name, {\n\t\t\t\t\t\tid: payload.mediaId,\n\t\t\t\t\t\t[ payload.mediaType === 'image' ? 'url' : 'src' ]:\n\t\t\t\t\t\t\tpayload.mediaUrl,\n\t\t\t\t\t} );\n\n\t\t\t\t\tconst indexAfterSelected =\n\t\t\t\t\t\tthis.props.selectedBlockIndex + 1;\n\t\t\t\t\tconst insertionIndex =\n\t\t\t\t\t\tindexAfterSelected || this.props.blockCount;\n\n\t\t\t\t\tthis.props.insertBlock( newBlock, insertionIndex );\n\t\t\t\t} else {\n\t\t\t\t\tcreateErrorNotice(\n\t\t\t\t\t\t__( 'File type not supported as a media file.' )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentUpdateEditorSettings =\n\t\t\tsubscribeUpdateEditorSettings(\n\t\t\t\t( { galleryWithImageBlocks, ...editorSettings } ) => {\n\t\t\t\t\tif ( typeof galleryWithImageBlocks === 'boolean' ) {\n\t\t\t\t\t\twindow.wp.galleryBlockV2Enabled =\n\t\t\t\t\t\t\tgalleryWithImageBlocks;\n\t\t\t\t\t}\n\t\t\t\t\tupdateEditorSettings(\n\t\t\t\t\t\tthis.getThemeColors( editorSettings )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\tthis.subscriptionParentUpdateCapabilities = subscribeUpdateCapabilities(\n\t\t\t( payload ) => {\n\t\t\t\tthis.updateCapabilitiesAction( payload );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowNotice = subscribeShowNotice(\n\t\t\t( payload ) => {\n\t\t\t\tthis.props.createSuccessNotice( payload.message );\n\t\t\t}\n\t\t);\n\n\t\tthis.subscriptionParentShowEditorHelp = subscribeShowEditorHelp( () => {\n\t\t\tthis.setState( { isHelpVisible: true } );\n\t\t} );\n\n\t\t// Request current block impressions from native app.\n\t\trequestBlockTypeImpressions( ( storedImpressions ) => {\n\t\t\tconst impressions = { ...NEW_BLOCK_TYPES, ...storedImpressions };\n\n\t\t\t// Persist impressions to JavaScript store.\n\t\t\tupdateBlockEditorSettings( { impressions } );\n\n\t\t\t// Persist impressions to native store if they do not include latest\n\t\t\t// `NEW_BLOCK_TYPES` configuration.\n\t\t\tconst storedImpressionKeys = Object.keys( storedImpressions );\n\t\t\tconst storedImpressionsCurrent = Object.keys(\n\t\t\t\tNEW_BLOCK_TYPES\n\t\t\t).every( ( newKey ) => storedImpressionKeys.includes( newKey ) );\n\t\t\tif ( ! storedImpressionsCurrent ) {\n\t\t\t\tsetBlockTypeImpressions( impressions );\n\t\t\t}\n\t\t} );\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.subscriptionParentGetHtml ) {\n\t\t\tthis.subscriptionParentGetHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentToggleHTMLMode ) {\n\t\t\tthis.subscriptionParentToggleHTMLMode.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentSetTitle ) {\n\t\t\tthis.subscriptionParentSetTitle.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateHtml ) {\n\t\t\tthis.subscriptionParentUpdateHtml.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentReplaceBlock ) {\n\t\t\tthis.subscriptionParentReplaceBlock.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentMediaAppend ) {\n\t\t\tthis.subscriptionParentMediaAppend.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateEditorSettings ) {\n\t\t\tthis.subscriptionParentUpdateEditorSettings.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentUpdateCapabilities ) {\n\t\t\tthis.subscriptionParentUpdateCapabilities.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowNotice ) {\n\t\t\tthis.subscriptionParentShowNotice.remove();\n\t\t}\n\n\t\tif ( this.subscriptionParentShowEditorHelp ) {\n\t\t\tthis.subscriptionParentShowEditorHelp.remove();\n\t\t}\n\t}\n\n\tgetThemeColors( { rawStyles, rawFeatures } ) {\n\t\tconst { defaultEditorColors, defaultEditorGradients } = this.props;\n\n\t\tif ( rawStyles && rawFeatures ) {\n\t\t\treturn getGlobalStyles( rawStyles, rawFeatures );\n\t\t}\n\n\t\treturn getColorsAndGradients(\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\trawFeatures\n\t\t);\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! prevProps.isReady && this.props.isReady ) {\n\t\t\tconst blocks = this.props.blocks;\n\t\t\tconst isUnsupportedBlock = ( { name } ) =>\n\t\t\t\tname === getUnregisteredTypeHandlerName();\n\t\t\tconst unsupportedBlockNames = blocks\n\t\t\t\t.filter( isUnsupportedBlock )\n\t\t\t\t.map( ( block ) => block.attributes.originalName );\n\t\t\tRNReactNativeGutenbergBridge.editorDidMount(\n\t\t\t\tunsupportedBlockNames\n\t\t\t);\n\t\t}\n\t}\n\n\tserializeToNativeAction() {\n\t\tconst title = this.props.title;\n\t\tlet html;\n\n\t\tif ( this.props.mode === 'text' ) {\n\t\t\t// The HTMLTextInput component does not update the store when user is doing changes\n\t\t\t// Let's request the HTML from the component's state directly.\n\t\t\thtml = applyFilters( 'native.persist-html' );\n\t\t} else {\n\t\t\thtml = serialize( this.props.blocks );\n\t\t}\n\n\t\tconst hasChanges =\n\t\t\ttitle !== this.post.title.raw || html !== this.post.content.raw;\n\n\t\t// Variable to store the content structure metrics.\n\t\tconst contentInfo = {};\n\t\tcontentInfo.characterCount = wordCount(\n\t\t\thtml,\n\t\t\t'characters_including_spaces'\n\t\t);\n\t\tcontentInfo.wordCount = wordCount( html, 'words' );\n\t\tcontentInfo.paragraphCount = this.props.paragraphCount;\n\t\tcontentInfo.blockCount = this.props.blockCount;\n\t\tRNReactNativeGutenbergBridge.provideToNative_Html(\n\t\t\thtml,\n\t\t\ttitle,\n\t\t\thasChanges,\n\t\t\tcontentInfo\n\t\t);\n\n\t\tif ( hasChanges ) {\n\t\t\tthis.post.title.raw = title;\n\t\t\tthis.post.content.raw = html;\n\t\t}\n\t}\n\n\tupdateHtmlAction( html ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.resetEditorBlocksWithoutUndoLevel( parsed );\n\t}\n\n\treplaceBlockAction( html, blockClientId ) {\n\t\tconst parsed = parse( html );\n\t\tthis.props.replaceBlock( blockClientId, parsed );\n\t}\n\n\ttoggleMode() {\n\t\tconst { mode, switchMode } = this.props;\n\t\t// Refresh html content first.\n\t\tthis.serializeToNativeAction();\n\t\tswitchMode( mode === 'visual' ? 'text' : 'visual' );\n\t}\n\n\tupdateCapabilitiesAction( capabilities ) {\n\t\tthis.props.updateEditorSettings( { capabilities } );\n\t}\n\n\trender() {\n\t\tconst { children, post, capabilities, settings, ...props } = this.props;\n\t\tconst editorSettings = this.getEditorSettings( settings, capabilities );\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<EditorProvider\n\t\t\t\t\tpost={ this.post }\n\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<SafeAreaProvider>{ children }</SafeAreaProvider>\n\t\t\t\t</EditorProvider>\n\t\t\t\t<EditorHelpTopics\n\t\t\t\t\tisVisible={ this.state.isHelpVisible }\n\t\t\t\t\tonClose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tclose={ () => this.setState( { isHelpVisible: false } ) }\n\t\t\t\t\tshowSupport={ capabilities?.supportSection === true }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nconst ComposedNativeProvider = compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\t__unstableIsEditorReady: isEditorReady,\n\t\t\tgetEditorBlocks,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostContent,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getEditorMode } = select( editPostStore );\n\n\t\tconst { getBlockIndex, getSelectedBlockClientId, getGlobalBlockCount } =\n\t\t\tselect( blockEditorStore );\n\n\t\tconst settings = getEditorSettings();\n\t\tconst defaultEditorColors = settings?.colors ?? [];\n\t\tconst defaultEditorGradients = settings?.gradients ?? [];\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\treturn {\n\t\t\tmode: getEditorMode(),\n\t\t\tisReady: isEditorReady(),\n\t\t\tblocks: getEditorBlocks(),\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tgetEditedPostContent,\n\t\t\tdefaultEditorColors,\n\t\t\tdefaultEditorGradients,\n\t\t\tselectedBlockIndex: getBlockIndex( selectedBlockClientId ),\n\t\t\tblockCount: getGlobalBlockCount(),\n\t\t\tparagraphCount: getGlobalBlockCount( 'core/paragraph' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, resetEditorBlocks, updateEditorSettings } =\n\t\t\tdispatch( editorStore );\n\t\tconst { updateSettings, insertBlock, replaceBlock } =\n\t\t\tdispatch( blockEditorStore );\n\t\tconst { switchEditorMode } = dispatch( editPostStore );\n\t\tconst { addEntities, receiveEntityRecords } = dispatch( coreStore );\n\t\tconst { createSuccessNotice, createErrorNotice } =\n\t\t\tdispatch( noticesStore );\n\n\t\treturn {\n\t\t\tupdateBlockEditorSettings: updateSettings,\n\t\t\tupdateEditorSettings,\n\t\t\taddEntities,\n\t\t\tinsertBlock,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t\teditTitle( title ) {\n\t\t\t\teditPost( { title } );\n\t\t\t},\n\t\t\treceiveEntityRecords,\n\t\t\tresetEditorBlocksWithoutUndoLevel( blocks ) {\n\t\t\t\tresetEditorBlocks( blocks, {\n\t\t\t\t\t__unstableShouldCreateUndoLevel: false,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tswitchMode( mode ) {\n\t\t\t\tswitchEditorMode( mode );\n\t\t\t},\n\t\t\treplaceBlock,\n\t\t};\n\t} ),\n] )( NativeEditorProvider );\n\nexport default ComposedNativeProvider;\nexport { ComposedNativeProvider as ExperimentalEditorProvider };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useEffect } from '@wordpress/element';
|
|
5
|
+
import { useDispatch, useSelect } from '@wordpress/data';
|
|
6
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* For the Navigation block editor, we need to force the block editor to contentOnly for that block.
|
|
10
|
+
*
|
|
11
|
+
* Set block editing mode to contentOnly when entering Navigation focus mode.
|
|
12
|
+
* this ensures that non-content controls on the block will be hidden and thus
|
|
13
|
+
* the user can focus on editing the Navigation Menu content only.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
export default function NavigationBlockEditingMode() {
|
|
17
|
+
// In the navigation block editor,
|
|
18
|
+
// the navigation block is the only root block.
|
|
19
|
+
const blockClientId = useSelect(select => select(blockEditorStore).getBlockOrder()?.[0], []);
|
|
20
|
+
const {
|
|
21
|
+
setBlockEditingMode,
|
|
22
|
+
unsetBlockEditingMode
|
|
23
|
+
} = useDispatch(blockEditorStore);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (!blockClientId) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
setBlockEditingMode(blockClientId, 'contentOnly');
|
|
29
|
+
return () => {
|
|
30
|
+
unsetBlockEditingMode(blockClientId);
|
|
31
|
+
};
|
|
32
|
+
}, [blockClientId, unsetBlockEditingMode, setBlockEditingMode]);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=navigation-block-editing-mode.js.map
|