@wordpress/edit-post 7.35.0 → 8.0.1
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 +7 -0
- package/build/commands/use-commands.js +56 -0
- package/build/commands/use-commands.js.map +1 -0
- package/build/components/{header/fullscreen-mode-close/index.js → back-button/fullscreen-mode-close.js} +16 -14
- package/build/components/back-button/fullscreen-mode-close.js.map +1 -0
- package/build/components/back-button/index.js +59 -0
- package/build/components/back-button/index.js.map +1 -0
- package/build/components/header/header-toolbar/index.native.js +63 -62
- package/build/components/header/header-toolbar/index.native.js.map +1 -1
- package/build/components/header/index.native.js +2 -2
- package/build/components/header/index.native.js.map +1 -1
- package/build/components/init-pattern-modal/index.js +50 -43
- package/build/components/init-pattern-modal/index.js.map +1 -1
- package/build/components/layout/index.js +93 -155
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/index.native.js +28 -21
- package/build/components/layout/index.native.js.map +1 -1
- package/build/components/layout/use-padding-appender.js.map +1 -0
- package/build/components/layout/use-should-iframe.js +46 -0
- package/build/components/layout/use-should-iframe.js.map +1 -0
- package/build/components/meta-boxes/index.js +10 -9
- package/build/components/meta-boxes/index.js.map +1 -1
- package/build/components/meta-boxes/meta-boxes-area/index.js +11 -11
- package/build/components/meta-boxes/meta-boxes-area/index.js.map +1 -1
- package/build/components/more-menu/index.js +49 -0
- package/build/components/more-menu/index.js.map +1 -0
- package/build/components/{header/more-menu → more-menu}/manage-patterns-menu-item.js +5 -4
- package/build/components/more-menu/manage-patterns-menu-item.js.map +1 -0
- package/build/components/{header/more-menu → more-menu}/welcome-guide-menu-item.js +2 -2
- package/build/components/more-menu/welcome-guide-menu-item.js.map +1 -0
- package/build/components/preferences-modal/enable-custom-fields.js +24 -18
- package/build/components/preferences-modal/enable-custom-fields.js.map +1 -1
- package/build/components/preferences-modal/index.js +4 -4
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/preferences-modal/meta-boxes-section.js +13 -13
- package/build/components/preferences-modal/meta-boxes-section.js.map +1 -1
- package/build/components/visual-editor/header.native.js +11 -10
- package/build/components/visual-editor/header.native.js.map +1 -1
- package/build/components/visual-editor/index.native.js +3 -3
- package/build/components/visual-editor/index.native.js.map +1 -1
- package/build/components/welcome-guide/default.js +50 -33
- package/build/components/welcome-guide/default.js.map +1 -1
- package/build/components/welcome-guide/image.js +13 -12
- package/build/components/welcome-guide/image.js.map +1 -1
- package/build/components/welcome-guide/index.js +2 -2
- package/build/components/welcome-guide/index.js.map +1 -1
- package/build/components/welcome-guide/template.js +12 -8
- package/build/components/welcome-guide/template.js.map +1 -1
- package/build/deprecated.js +9 -9
- package/build/deprecated.js.map +1 -1
- package/build/editor.js +16 -11
- package/build/editor.js.map +1 -1
- package/build/editor.native.js +18 -12
- package/build/editor.native.js.map +1 -1
- package/build/index.js +12 -13
- package/build/index.js.map +1 -1
- package/build/index.native.js +2 -2
- package/build/index.native.js.map +1 -1
- package/build/store/selectors.js +1 -1
- package/build/store/selectors.js.map +1 -1
- package/build-module/commands/use-commands.js +49 -0
- package/build-module/commands/use-commands.js.map +1 -0
- package/build-module/components/{header/fullscreen-mode-close/index.js → back-button/fullscreen-mode-close.js} +16 -14
- package/build-module/components/back-button/fullscreen-mode-close.js.map +1 -0
- package/build-module/components/back-button/index.js +51 -0
- package/build-module/components/back-button/index.js.map +1 -0
- package/build-module/components/header/header-toolbar/index.native.js +64 -62
- package/build-module/components/header/header-toolbar/index.native.js.map +1 -1
- package/build-module/components/header/index.native.js +2 -2
- package/build-module/components/header/index.native.js.map +1 -1
- package/build-module/components/init-pattern-modal/index.js +52 -43
- package/build-module/components/init-pattern-modal/index.js.map +1 -1
- package/build-module/components/layout/index.js +98 -158
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/index.native.js +30 -21
- package/build-module/components/layout/index.native.js.map +1 -1
- package/build-module/components/layout/use-padding-appender.js.map +1 -0
- package/build-module/components/layout/use-should-iframe.js +39 -0
- package/build-module/components/layout/use-should-iframe.js.map +1 -0
- package/build-module/components/meta-boxes/index.js +12 -9
- package/build-module/components/meta-boxes/index.js.map +1 -1
- package/build-module/components/meta-boxes/meta-boxes-area/index.js +11 -9
- package/build-module/components/meta-boxes/meta-boxes-area/index.js.map +1 -1
- package/build-module/components/more-menu/index.js +43 -0
- package/build-module/components/more-menu/index.js.map +1 -0
- package/build-module/components/{header/more-menu → more-menu}/manage-patterns-menu-item.js +5 -4
- package/build-module/components/more-menu/manage-patterns-menu-item.js.map +1 -0
- package/build-module/components/{header/more-menu → more-menu}/welcome-guide-menu-item.js +2 -2
- package/build-module/components/more-menu/welcome-guide-menu-item.js.map +1 -0
- package/build-module/components/preferences-modal/enable-custom-fields.js +26 -18
- package/build-module/components/preferences-modal/enable-custom-fields.js.map +1 -1
- package/build-module/components/preferences-modal/index.js +4 -4
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/preferences-modal/meta-boxes-section.js +14 -13
- package/build-module/components/preferences-modal/meta-boxes-section.js.map +1 -1
- package/build-module/components/visual-editor/header.native.js +11 -10
- package/build-module/components/visual-editor/header.native.js.map +1 -1
- package/build-module/components/visual-editor/index.native.js +3 -3
- package/build-module/components/visual-editor/index.native.js.map +1 -1
- package/build-module/components/welcome-guide/default.js +52 -33
- package/build-module/components/welcome-guide/default.js.map +1 -1
- package/build-module/components/welcome-guide/image.js +14 -12
- package/build-module/components/welcome-guide/image.js.map +1 -1
- package/build-module/components/welcome-guide/index.js +2 -2
- package/build-module/components/welcome-guide/index.js.map +1 -1
- package/build-module/components/welcome-guide/template.js +14 -8
- package/build-module/components/welcome-guide/template.js.map +1 -1
- package/build-module/deprecated.js +9 -9
- package/build-module/deprecated.js.map +1 -1
- package/build-module/editor.js +17 -11
- package/build-module/editor.js.map +1 -1
- package/build-module/editor.native.js +18 -12
- package/build-module/editor.native.js.map +1 -1
- package/build-module/index.js +10 -7
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +2 -2
- package/build-module/index.native.js.map +1 -1
- package/build-module/store/selectors.js +1 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/style-rtl.css +27 -128
- package/build-style/style.css +27 -128
- package/package.json +32 -32
- package/src/commands/use-commands.js +48 -0
- package/src/components/{header/fullscreen-mode-close/index.js → back-button/fullscreen-mode-close.js} +1 -1
- package/src/components/back-button/index.js +41 -0
- package/src/components/{header/fullscreen-mode-close → back-button}/style.scss +16 -2
- package/src/components/{header/fullscreen-mode-close/test/index.js → back-button/test/fullscreen-mode-close.js} +1 -1
- package/src/components/init-pattern-modal/index.js +1 -4
- package/src/components/layout/index.js +88 -202
- package/src/components/layout/style.scss +9 -17
- package/src/components/layout/use-should-iframe.js +40 -0
- package/src/components/{header/more-menu → more-menu}/index.js +2 -2
- package/src/components/preferences-modal/enable-custom-fields.js +1 -0
- package/src/index.js +11 -6
- package/src/store/selectors.js +8 -5
- package/src/style.scss +2 -5
- package/src/test/__snapshots__/editor.native.js.snap +72 -0
- package/src/test/editor.native.js +77 -0
- package/build/components/header/fullscreen-mode-close/index.js.map +0 -1
- package/build/components/header/index.js +0 -69
- package/build/components/header/index.js.map +0 -1
- package/build/components/header/main-dashboard-button/index.js +0 -33
- package/build/components/header/main-dashboard-button/index.js.map +0 -1
- package/build/components/header/more-menu/index.js +0 -43
- package/build/components/header/more-menu/index.js.map +0 -1
- package/build/components/header/more-menu/manage-patterns-menu-item.js.map +0 -1
- package/build/components/header/more-menu/welcome-guide-menu-item.js.map +0 -1
- package/build/components/text-editor/index.js +0 -61
- package/build/components/text-editor/index.js.map +0 -1
- package/build/components/visual-editor/block-inspector-button.js +0 -55
- package/build/components/visual-editor/block-inspector-button.js.map +0 -1
- package/build/components/visual-editor/index.js +0 -98
- package/build/components/visual-editor/index.js.map +0 -1
- package/build/components/visual-editor/use-padding-appender.js.map +0 -1
- package/build/hooks/commands/use-common-commands.js +0 -119
- package/build/hooks/commands/use-common-commands.js.map +0 -1
- package/build/hooks/components/index.js +0 -11
- package/build/hooks/components/index.js.map +0 -1
- package/build/hooks/index.js +0 -5
- package/build/hooks/index.js.map +0 -1
- package/build/hooks/validate-multiple-use/index.js +0 -134
- package/build/hooks/validate-multiple-use/index.js.map +0 -1
- package/build-module/components/header/fullscreen-mode-close/index.js.map +0 -1
- package/build-module/components/header/index.js +0 -61
- package/build-module/components/header/index.js.map +0 -1
- package/build-module/components/header/main-dashboard-button/index.js +0 -26
- package/build-module/components/header/main-dashboard-button/index.js.map +0 -1
- package/build-module/components/header/more-menu/index.js +0 -35
- package/build-module/components/header/more-menu/index.js.map +0 -1
- package/build-module/components/header/more-menu/manage-patterns-menu-item.js.map +0 -1
- package/build-module/components/header/more-menu/welcome-guide-menu-item.js.map +0 -1
- package/build-module/components/text-editor/index.js +0 -54
- package/build-module/components/text-editor/index.js.map +0 -1
- package/build-module/components/visual-editor/block-inspector-button.js +0 -47
- package/build-module/components/visual-editor/block-inspector-button.js.map +0 -1
- package/build-module/components/visual-editor/index.js +0 -90
- package/build-module/components/visual-editor/index.js.map +0 -1
- package/build-module/components/visual-editor/use-padding-appender.js.map +0 -1
- package/build-module/hooks/commands/use-common-commands.js +0 -112
- package/build-module/hooks/commands/use-common-commands.js.map +0 -1
- package/build-module/hooks/components/index.js +0 -8
- package/build-module/hooks/components/index.js.map +0 -1
- package/build-module/hooks/index.js +0 -6
- package/build-module/hooks/index.js.map +0 -1
- package/build-module/hooks/validate-multiple-use/index.js +0 -132
- package/build-module/hooks/validate-multiple-use/index.js.map +0 -1
- package/src/components/header/index.js +0 -53
- package/src/components/header/main-dashboard-button/index.js +0 -28
- package/src/components/header/style.scss +0 -14
- package/src/components/text-editor/index.js +0 -63
- package/src/components/text-editor/style.scss +0 -71
- package/src/components/visual-editor/block-inspector-button.js +0 -59
- package/src/components/visual-editor/index.js +0 -108
- package/src/components/visual-editor/style.scss +0 -53
- package/src/hooks/commands/use-common-commands.js +0 -126
- package/src/hooks/components/index.js +0 -13
- package/src/hooks/index.js +0 -5
- package/src/hooks/validate-multiple-use/index.js +0 -163
- /package/build/components/{visual-editor → layout}/use-padding-appender.js +0 -0
- /package/build-module/components/{visual-editor → layout}/use-padding-appender.js +0 -0
- /package/src/components/{header/fullscreen-mode-close/test/__snapshots__/index.js.snap → back-button/test/__snapshots__/fullscreen-mode-close.js.snap} +0 -0
- /package/src/components/{visual-editor → layout}/use-padding-appender.js +0 -0
- /package/src/components/{header/more-menu → more-menu}/manage-patterns-menu-item.js +0 -0
- /package/src/components/{header/more-menu → more-menu}/welcome-guide-menu-item.js +0 -0
|
@@ -10,26 +10,19 @@ import {
|
|
|
10
10
|
AutosaveMonitor,
|
|
11
11
|
LocalAutosaveMonitor,
|
|
12
12
|
UnsavedChangesWarning,
|
|
13
|
-
EditorNotices,
|
|
14
13
|
EditorKeyboardShortcutsRegister,
|
|
15
|
-
EditorKeyboardShortcuts,
|
|
16
14
|
EditorSnackbars,
|
|
17
15
|
store as editorStore,
|
|
18
16
|
privateApis as editorPrivateApis,
|
|
19
17
|
} from '@wordpress/editor';
|
|
20
18
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
21
19
|
import {
|
|
22
|
-
BlockBreadcrumb,
|
|
23
|
-
BlockToolbar,
|
|
24
20
|
privateApis as blockEditorPrivateApis,
|
|
25
21
|
store as blockEditorStore,
|
|
26
22
|
} from '@wordpress/block-editor';
|
|
27
|
-
import { ScrollLock } from '@wordpress/components';
|
|
28
|
-
import { useViewportMatch } from '@wordpress/compose';
|
|
29
23
|
import { PluginArea } from '@wordpress/plugins';
|
|
30
|
-
import { __,
|
|
31
|
-
import {
|
|
32
|
-
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
24
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
25
|
+
import { useCallback, useMemo } from '@wordpress/element';
|
|
33
26
|
import { store as noticesStore } from '@wordpress/notices';
|
|
34
27
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
35
28
|
import { privateApis as commandsPrivateApis } from '@wordpress/commands';
|
|
@@ -40,55 +33,54 @@ import { addQueryArgs } from '@wordpress/url';
|
|
|
40
33
|
/**
|
|
41
34
|
* Internal dependencies
|
|
42
35
|
*/
|
|
43
|
-
import
|
|
44
|
-
import VisualEditor from '../visual-editor';
|
|
36
|
+
import BackButton from '../back-button';
|
|
45
37
|
import EditPostKeyboardShortcuts from '../keyboard-shortcuts';
|
|
46
38
|
import InitPatternModal from '../init-pattern-modal';
|
|
47
39
|
import BrowserURL from '../browser-url';
|
|
48
|
-
import Header from '../header';
|
|
49
40
|
import MetaBoxes from '../meta-boxes';
|
|
41
|
+
import PostEditorMoreMenu from '../more-menu';
|
|
50
42
|
import WelcomeGuide from '../welcome-guide';
|
|
51
43
|
import { store as editPostStore } from '../../store';
|
|
52
44
|
import { unlock } from '../../lock-unlock';
|
|
53
|
-
import
|
|
45
|
+
import useEditPostCommands from '../../commands/use-commands';
|
|
46
|
+
import { usePaddingAppender } from './use-padding-appender';
|
|
47
|
+
import { useShouldIframe } from './use-should-iframe';
|
|
54
48
|
|
|
55
49
|
const { getLayoutStyles } = unlock( blockEditorPrivateApis );
|
|
56
50
|
const { useCommands } = unlock( coreCommandsPrivateApis );
|
|
57
51
|
const { useCommandContext } = unlock( commandsPrivateApis );
|
|
58
|
-
const {
|
|
59
|
-
|
|
60
|
-
ListViewSidebar,
|
|
61
|
-
ComplementaryArea,
|
|
62
|
-
FullscreenMode,
|
|
63
|
-
SavePublishPanels,
|
|
64
|
-
InterfaceSkeleton,
|
|
65
|
-
interfaceStore,
|
|
66
|
-
Sidebar,
|
|
67
|
-
} = unlock( editorPrivateApis );
|
|
52
|
+
const { EditorInterface, FullscreenMode, Sidebar } =
|
|
53
|
+
unlock( editorPrivateApis );
|
|
68
54
|
const { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis );
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
/* translators: accessibility text for the editor settings landmark region. */
|
|
76
|
-
sidebar: __( 'Editor settings' ),
|
|
77
|
-
/* translators: accessibility text for the editor publish landmark region. */
|
|
78
|
-
actions: __( 'Editor publish' ),
|
|
79
|
-
/* translators: accessibility text for the editor footer landmark region. */
|
|
80
|
-
footer: __( 'Editor footer' ),
|
|
81
|
-
};
|
|
55
|
+
const DESIGN_POST_TYPES = [
|
|
56
|
+
'wp_template',
|
|
57
|
+
'wp_template_part',
|
|
58
|
+
'wp_block',
|
|
59
|
+
'wp_navigation',
|
|
60
|
+
];
|
|
82
61
|
|
|
83
62
|
function useEditorStyles() {
|
|
84
|
-
const {
|
|
85
|
-
|
|
63
|
+
const {
|
|
64
|
+
hasThemeStyleSupport,
|
|
65
|
+
editorSettings,
|
|
66
|
+
isZoomedOutView,
|
|
67
|
+
hasMetaBoxes,
|
|
68
|
+
renderingMode,
|
|
69
|
+
postType,
|
|
70
|
+
} = useSelect( ( select ) => {
|
|
71
|
+
const { __unstableGetEditorMode } = select( blockEditorStore );
|
|
72
|
+
const { getCurrentPostType, getRenderingMode } = select( editorStore );
|
|
73
|
+
const _postType = getCurrentPostType();
|
|
74
|
+
return {
|
|
86
75
|
hasThemeStyleSupport:
|
|
87
76
|
select( editPostStore ).isFeatureActive( 'themeStyles' ),
|
|
88
77
|
editorSettings: select( editorStore ).getEditorSettings(),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
78
|
+
isZoomedOutView: __unstableGetEditorMode() === 'zoom-out',
|
|
79
|
+
hasMetaBoxes: select( editPostStore ).hasMetaBoxes(),
|
|
80
|
+
renderingMode: getRenderingMode(),
|
|
81
|
+
postType: _postType,
|
|
82
|
+
};
|
|
83
|
+
}, [] );
|
|
92
84
|
|
|
93
85
|
// Compute the default styles.
|
|
94
86
|
return useMemo( () => {
|
|
@@ -122,110 +114,84 @@ function useEditorStyles() {
|
|
|
122
114
|
} );
|
|
123
115
|
}
|
|
124
116
|
|
|
125
|
-
|
|
117
|
+
const baseStyles = hasThemeStyles
|
|
118
|
+
? editorSettings.styles ?? []
|
|
119
|
+
: defaultEditorStyles;
|
|
120
|
+
|
|
121
|
+
// Add a constant padding for the typewriter effect. When typing at the
|
|
122
|
+
// bottom, there needs to be room to scroll up.
|
|
123
|
+
if (
|
|
124
|
+
! isZoomedOutView &&
|
|
125
|
+
! hasMetaBoxes &&
|
|
126
|
+
renderingMode === 'post-only' &&
|
|
127
|
+
! DESIGN_POST_TYPES.includes( postType )
|
|
128
|
+
) {
|
|
129
|
+
return [
|
|
130
|
+
...baseStyles,
|
|
131
|
+
{
|
|
132
|
+
css: 'body{padding-bottom: 40vh}',
|
|
133
|
+
},
|
|
134
|
+
];
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
return baseStyles;
|
|
126
138
|
}, [
|
|
127
139
|
editorSettings.defaultEditorStyles,
|
|
128
140
|
editorSettings.disableLayoutStyles,
|
|
129
141
|
editorSettings.styles,
|
|
130
142
|
hasThemeStyleSupport,
|
|
143
|
+
postType,
|
|
131
144
|
] );
|
|
132
145
|
}
|
|
133
146
|
|
|
134
147
|
function Layout( { initialPost } ) {
|
|
135
148
|
useCommands();
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
const
|
|
139
|
-
const isWideViewport = useViewportMatch( 'large' );
|
|
140
|
-
const isLargeViewport = useViewportMatch( 'medium' );
|
|
141
|
-
|
|
142
|
-
const { closeGeneralSidebar } = useDispatch( editPostStore );
|
|
149
|
+
useEditPostCommands();
|
|
150
|
+
const paddingAppenderRef = usePaddingAppender();
|
|
151
|
+
const shouldIframe = useShouldIframe();
|
|
143
152
|
const { createErrorNotice } = useDispatch( noticesStore );
|
|
144
153
|
const {
|
|
145
154
|
mode,
|
|
146
155
|
isFullscreenActive,
|
|
147
|
-
isRichEditingEnabled,
|
|
148
|
-
sidebarIsOpened,
|
|
149
156
|
hasActiveMetaboxes,
|
|
150
|
-
previousShortcut,
|
|
151
|
-
nextShortcut,
|
|
152
157
|
hasBlockSelected,
|
|
153
|
-
isInserterOpened,
|
|
154
|
-
isListViewOpened,
|
|
155
158
|
showIconLabels,
|
|
156
159
|
isDistractionFree,
|
|
157
|
-
showBlockBreadcrumbs,
|
|
158
160
|
showMetaBoxes,
|
|
159
|
-
documentLabel,
|
|
160
161
|
hasHistory,
|
|
161
|
-
hasBlockBreadcrumbs,
|
|
162
|
-
blockEditorMode,
|
|
163
162
|
isEditingTemplate,
|
|
163
|
+
isWelcomeGuideVisible,
|
|
164
164
|
} = useSelect( ( select ) => {
|
|
165
165
|
const { get } = select( preferencesStore );
|
|
166
|
-
const { getEditorSettings
|
|
167
|
-
const
|
|
168
|
-
const postTypeLabel = getPostTypeLabel();
|
|
166
|
+
const { getEditorSettings } = select( editorStore );
|
|
167
|
+
const { isFeatureActive } = select( editPostStore );
|
|
169
168
|
|
|
170
169
|
return {
|
|
171
|
-
|
|
172
|
-
select( editorStore ).getRenderingMode() === 'post-only',
|
|
173
|
-
sidebarIsOpened: !! (
|
|
174
|
-
select( interfaceStore ).getActiveComplementaryArea( 'core' ) ||
|
|
175
|
-
select( editorStore ).isPublishSidebarOpened()
|
|
176
|
-
),
|
|
170
|
+
mode: select( editorStore ).getEditorMode(),
|
|
177
171
|
isFullscreenActive:
|
|
178
172
|
select( editPostStore ).isFeatureActive( 'fullscreenMode' ),
|
|
179
|
-
isInserterOpened: select( editorStore ).isInserterOpened(),
|
|
180
|
-
isListViewOpened: select( editorStore ).isListViewOpened(),
|
|
181
|
-
mode: select( editorStore ).getEditorMode(),
|
|
182
|
-
isRichEditingEnabled: editorSettings.richEditingEnabled,
|
|
183
173
|
hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),
|
|
184
|
-
previousShortcut: select(
|
|
185
|
-
keyboardShortcutsStore
|
|
186
|
-
).getAllShortcutKeyCombinations( 'core/editor/previous-region' ),
|
|
187
|
-
nextShortcut: select(
|
|
188
|
-
keyboardShortcutsStore
|
|
189
|
-
).getAllShortcutKeyCombinations( 'core/editor/next-region' ),
|
|
190
|
-
showIconLabels: get( 'core', 'showIconLabels' ),
|
|
191
|
-
isDistractionFree: get( 'core', 'distractionFree' ),
|
|
192
|
-
showBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
|
|
193
|
-
// translators: Default label for the Document in the Block Breadcrumb.
|
|
194
|
-
documentLabel: postTypeLabel || _x( 'Document', 'noun' ),
|
|
195
174
|
hasBlockSelected:
|
|
196
175
|
!! select( blockEditorStore ).getBlockSelectionStart(),
|
|
176
|
+
showIconLabels: get( 'core', 'showIconLabels' ),
|
|
177
|
+
isDistractionFree: get( 'core', 'distractionFree' ),
|
|
178
|
+
showMetaBoxes:
|
|
179
|
+
select( editorStore ).getRenderingMode() === 'post-only',
|
|
197
180
|
hasHistory: !! getEditorSettings().onNavigateToPreviousEntityRecord,
|
|
198
|
-
hasBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
|
|
199
|
-
blockEditorMode:
|
|
200
|
-
select( blockEditorStore ).__unstableGetEditorMode(),
|
|
201
181
|
isEditingTemplate:
|
|
202
182
|
select( editorStore ).getCurrentPostType() === 'wp_template',
|
|
183
|
+
isWelcomeGuideVisible: isFeatureActive( 'welcomeGuide' ),
|
|
203
184
|
};
|
|
204
185
|
}, [] );
|
|
205
186
|
|
|
206
187
|
// Set the right context for the command palette
|
|
207
188
|
const commandContext = hasBlockSelected
|
|
208
189
|
? 'block-selection-edit'
|
|
209
|
-
: '
|
|
190
|
+
: 'entity-edit';
|
|
210
191
|
useCommandContext( commandContext );
|
|
211
192
|
|
|
212
193
|
const styles = useEditorStyles();
|
|
213
194
|
|
|
214
|
-
// Local state for save panel.
|
|
215
|
-
// Note 'truthy' callback implies an open panel.
|
|
216
|
-
const [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =
|
|
217
|
-
useState( false );
|
|
218
|
-
|
|
219
|
-
const closeEntitiesSavedStates = useCallback(
|
|
220
|
-
( arg ) => {
|
|
221
|
-
if ( typeof entitiesSavedStatesCallback === 'function' ) {
|
|
222
|
-
entitiesSavedStatesCallback( arg );
|
|
223
|
-
}
|
|
224
|
-
setEntitiesSavedStatesCallback( false );
|
|
225
|
-
},
|
|
226
|
-
[ entitiesSavedStatesCallback ]
|
|
227
|
-
);
|
|
228
|
-
|
|
229
195
|
// We need to add the show-icon-labels class to the body element so it is applied to modals.
|
|
230
196
|
if ( showIconLabels ) {
|
|
231
197
|
document.body.classList.add( 'show-icon-labels' );
|
|
@@ -234,34 +200,9 @@ function Layout( { initialPost } ) {
|
|
|
234
200
|
}
|
|
235
201
|
|
|
236
202
|
const className = clsx( 'edit-post-layout', 'is-mode-' + mode, {
|
|
237
|
-
'is-sidebar-opened': sidebarIsOpened,
|
|
238
203
|
'has-metaboxes': hasActiveMetaboxes,
|
|
239
|
-
'is-distraction-free': isDistractionFree && isWideViewport,
|
|
240
|
-
'is-entity-save-view-open': !! entitiesSavedStatesCallback,
|
|
241
|
-
'has-block-breadcrumbs':
|
|
242
|
-
hasBlockBreadcrumbs && ! isDistractionFree && isWideViewport,
|
|
243
204
|
} );
|
|
244
205
|
|
|
245
|
-
const secondarySidebarLabel = isListViewOpened
|
|
246
|
-
? __( 'Document Overview' )
|
|
247
|
-
: __( 'Block Library' );
|
|
248
|
-
|
|
249
|
-
const secondarySidebar = () => {
|
|
250
|
-
if ( mode === 'visual' && isInserterOpened ) {
|
|
251
|
-
return (
|
|
252
|
-
<InserterSidebar
|
|
253
|
-
closeGeneralSidebar={ closeGeneralSidebar }
|
|
254
|
-
isRightSidebarOpen={ sidebarIsOpened }
|
|
255
|
-
/>
|
|
256
|
-
);
|
|
257
|
-
}
|
|
258
|
-
if ( mode === 'visual' && isListViewOpened ) {
|
|
259
|
-
return <ListViewSidebar />;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
return null;
|
|
263
|
-
};
|
|
264
|
-
|
|
265
206
|
function onPluginAreaError( name ) {
|
|
266
207
|
createErrorNotice(
|
|
267
208
|
sprintf(
|
|
@@ -335,82 +276,7 @@ function Layout( { initialPost } ) {
|
|
|
335
276
|
<LocalAutosaveMonitor />
|
|
336
277
|
<EditPostKeyboardShortcuts />
|
|
337
278
|
<EditorKeyboardShortcutsRegister />
|
|
338
|
-
<EditorKeyboardShortcuts />
|
|
339
279
|
<BlockKeyboardShortcuts />
|
|
340
|
-
|
|
341
|
-
<InterfaceSkeleton
|
|
342
|
-
isDistractionFree={ isDistractionFree && isWideViewport }
|
|
343
|
-
className={ className }
|
|
344
|
-
labels={ {
|
|
345
|
-
...interfaceLabels,
|
|
346
|
-
secondarySidebar: secondarySidebarLabel,
|
|
347
|
-
} }
|
|
348
|
-
header={
|
|
349
|
-
<Header
|
|
350
|
-
setEntitiesSavedStatesCallback={
|
|
351
|
-
setEntitiesSavedStatesCallback
|
|
352
|
-
}
|
|
353
|
-
initialPost={ initialPost }
|
|
354
|
-
/>
|
|
355
|
-
}
|
|
356
|
-
editorNotices={ <EditorNotices /> }
|
|
357
|
-
secondarySidebar={ secondarySidebar() }
|
|
358
|
-
sidebar={
|
|
359
|
-
! isDistractionFree && (
|
|
360
|
-
<ComplementaryArea.Slot scope="core" />
|
|
361
|
-
)
|
|
362
|
-
}
|
|
363
|
-
notices={ <EditorSnackbars /> }
|
|
364
|
-
content={
|
|
365
|
-
<>
|
|
366
|
-
{ ! isDistractionFree && <EditorNotices /> }
|
|
367
|
-
{ ( mode === 'text' || ! isRichEditingEnabled ) && (
|
|
368
|
-
<TextEditor />
|
|
369
|
-
) }
|
|
370
|
-
{ ! isLargeViewport && <BlockToolbar hideDragHandle /> }
|
|
371
|
-
{ isRichEditingEnabled && mode === 'visual' && (
|
|
372
|
-
<VisualEditor styles={ styles } />
|
|
373
|
-
) }
|
|
374
|
-
{ ! isDistractionFree && showMetaBoxes && (
|
|
375
|
-
<div className="edit-post-layout__metaboxes">
|
|
376
|
-
<MetaBoxes location="normal" />
|
|
377
|
-
<MetaBoxes location="advanced" />
|
|
378
|
-
</div>
|
|
379
|
-
) }
|
|
380
|
-
{ isMobileViewport && sidebarIsOpened && (
|
|
381
|
-
<ScrollLock />
|
|
382
|
-
) }
|
|
383
|
-
</>
|
|
384
|
-
}
|
|
385
|
-
footer={
|
|
386
|
-
! isDistractionFree &&
|
|
387
|
-
! isMobileViewport &&
|
|
388
|
-
showBlockBreadcrumbs &&
|
|
389
|
-
isRichEditingEnabled &&
|
|
390
|
-
blockEditorMode !== 'zoom-out' &&
|
|
391
|
-
mode === 'visual' && (
|
|
392
|
-
<div className="edit-post-layout__footer">
|
|
393
|
-
<BlockBreadcrumb rootLabelText={ documentLabel } />
|
|
394
|
-
</div>
|
|
395
|
-
)
|
|
396
|
-
}
|
|
397
|
-
actions={
|
|
398
|
-
<SavePublishPanels
|
|
399
|
-
closeEntitiesSavedStates={ closeEntitiesSavedStates }
|
|
400
|
-
isEntitiesSavedStatesOpen={
|
|
401
|
-
entitiesSavedStatesCallback
|
|
402
|
-
}
|
|
403
|
-
setEntitiesSavedStatesCallback={
|
|
404
|
-
setEntitiesSavedStatesCallback
|
|
405
|
-
}
|
|
406
|
-
forceIsDirtyPublishPanel={ hasActiveMetaboxes }
|
|
407
|
-
/>
|
|
408
|
-
}
|
|
409
|
-
shortcuts={ {
|
|
410
|
-
previous: previousShortcut,
|
|
411
|
-
next: nextShortcut,
|
|
412
|
-
} }
|
|
413
|
-
/>
|
|
414
280
|
<WelcomeGuide />
|
|
415
281
|
<InitPatternModal />
|
|
416
282
|
<PluginArea onError={ onPluginAreaError } />
|
|
@@ -422,6 +288,26 @@ function Layout( { initialPost } ) {
|
|
|
422
288
|
}
|
|
423
289
|
/>
|
|
424
290
|
) }
|
|
291
|
+
<PostEditorMoreMenu />
|
|
292
|
+
<BackButton initialPost={ initialPost } />
|
|
293
|
+
<EditorSnackbars />
|
|
294
|
+
<EditorInterface
|
|
295
|
+
className={ className }
|
|
296
|
+
styles={ styles }
|
|
297
|
+
forceIsDirty={ hasActiveMetaboxes }
|
|
298
|
+
contentRef={ paddingAppenderRef }
|
|
299
|
+
disableIframe={ ! shouldIframe }
|
|
300
|
+
// We should auto-focus the canvas (title) on load.
|
|
301
|
+
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
302
|
+
autoFocus={ ! isWelcomeGuideVisible }
|
|
303
|
+
>
|
|
304
|
+
{ ! isDistractionFree && showMetaBoxes && (
|
|
305
|
+
<div className="edit-post-layout__metaboxes">
|
|
306
|
+
<MetaBoxes location="normal" />
|
|
307
|
+
<MetaBoxes location="advanced" />
|
|
308
|
+
</div>
|
|
309
|
+
) }
|
|
310
|
+
</EditorInterface>
|
|
425
311
|
</>
|
|
426
312
|
);
|
|
427
313
|
}
|
|
@@ -1,28 +1,20 @@
|
|
|
1
|
+
.editor-visual-editor {
|
|
2
|
+
flex: 1 0 auto;
|
|
3
|
+
height: auto;
|
|
4
|
+
}
|
|
5
|
+
|
|
1
6
|
.edit-post-layout__metaboxes {
|
|
2
7
|
flex-shrink: 0;
|
|
3
8
|
clear: both;
|
|
4
9
|
}
|
|
5
10
|
|
|
6
11
|
// Adjust the position of the notices
|
|
7
|
-
.
|
|
12
|
+
.components-editor-notices__snackbar {
|
|
8
13
|
position: fixed;
|
|
9
14
|
right: 0;
|
|
10
|
-
bottom:
|
|
11
|
-
padding-left:
|
|
12
|
-
padding-right:
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.is-distraction-free {
|
|
16
|
-
.components-editor-notices__snackbar {
|
|
17
|
-
bottom: 16px;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// Adjust the position of the notices when breadcrumbs are present
|
|
22
|
-
.has-block-breadcrumbs {
|
|
23
|
-
.components-editor-notices__snackbar {
|
|
24
|
-
bottom: 40px;
|
|
25
|
-
}
|
|
15
|
+
bottom: 24px;
|
|
16
|
+
padding-left: 24px;
|
|
17
|
+
padding-right: 24px;
|
|
26
18
|
}
|
|
27
19
|
|
|
28
20
|
@include editor-left(".edit-post-layout .components-editor-notices__snackbar");
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { store as editorStore } from '@wordpress/editor';
|
|
5
|
+
import { useSelect } from '@wordpress/data';
|
|
6
|
+
import { store as blocksStore } from '@wordpress/blocks';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
import { store as editPostStore } from '../../store';
|
|
12
|
+
|
|
13
|
+
const isGutenbergPlugin = globalThis.IS_GUTENBERG_PLUGIN ? true : false;
|
|
14
|
+
|
|
15
|
+
export function useShouldIframe() {
|
|
16
|
+
const {
|
|
17
|
+
isBlockBasedTheme,
|
|
18
|
+
hasV3BlocksOnly,
|
|
19
|
+
isEditingTemplate,
|
|
20
|
+
hasMetaBoxes,
|
|
21
|
+
} = useSelect( ( select ) => {
|
|
22
|
+
const { getEditorSettings, getCurrentPostType } = select( editorStore );
|
|
23
|
+
const { getBlockTypes } = select( blocksStore );
|
|
24
|
+
const editorSettings = getEditorSettings();
|
|
25
|
+
return {
|
|
26
|
+
isBlockBasedTheme: editorSettings.__unstableIsBlockBasedTheme,
|
|
27
|
+
hasV3BlocksOnly: getBlockTypes().every( ( type ) => {
|
|
28
|
+
return type.apiVersion >= 3;
|
|
29
|
+
} ),
|
|
30
|
+
isEditingTemplate: getCurrentPostType() === 'wp_template',
|
|
31
|
+
hasMetaBoxes: select( editPostStore ).hasMetaBoxes(),
|
|
32
|
+
};
|
|
33
|
+
}, [] );
|
|
34
|
+
|
|
35
|
+
return (
|
|
36
|
+
( ( hasV3BlocksOnly || ( isGutenbergPlugin && isBlockBasedTheme ) ) &&
|
|
37
|
+
! hasMetaBoxes ) ||
|
|
38
|
+
isEditingTemplate
|
|
39
|
+
);
|
|
40
|
+
}
|
|
@@ -10,10 +10,10 @@ import { displayShortcut } from '@wordpress/keycodes';
|
|
|
10
10
|
/**
|
|
11
11
|
* Internal dependencies
|
|
12
12
|
*/
|
|
13
|
-
import { unlock } from '
|
|
13
|
+
import { unlock } from '../../lock-unlock';
|
|
14
14
|
import ManagePatternsMenuItem from './manage-patterns-menu-item';
|
|
15
15
|
import WelcomeGuideMenuItem from './welcome-guide-menu-item';
|
|
16
|
-
import EditPostPreferencesModal from '
|
|
16
|
+
import EditPostPreferencesModal from '../preferences-modal';
|
|
17
17
|
|
|
18
18
|
const { ToolsMoreMenuGroup, ViewMoreMenuGroup } = unlock( editorPrivateApis );
|
|
19
19
|
|
|
@@ -42,6 +42,7 @@ export function CustomFieldsConfirmation( { willEnable } ) {
|
|
|
42
42
|
className="edit-post-preferences-modal__custom-fields-confirmation-button"
|
|
43
43
|
variant="secondary"
|
|
44
44
|
isBusy={ isReloading }
|
|
45
|
+
__experimentalIsFocusable
|
|
45
46
|
disabled={ isReloading }
|
|
46
47
|
onClick={ () => {
|
|
47
48
|
setIsReloading( true );
|
package/src/index.js
CHANGED
|
@@ -14,13 +14,19 @@ import {
|
|
|
14
14
|
registerLegacyWidgetBlock,
|
|
15
15
|
registerWidgetGroupBlock,
|
|
16
16
|
} from '@wordpress/widgets';
|
|
17
|
-
import {
|
|
17
|
+
import {
|
|
18
|
+
store as editorStore,
|
|
19
|
+
privateApis as editorPrivateApis,
|
|
20
|
+
} from '@wordpress/editor';
|
|
18
21
|
|
|
19
22
|
/**
|
|
20
23
|
* Internal dependencies
|
|
21
24
|
*/
|
|
22
|
-
import './hooks';
|
|
23
25
|
import Editor from './editor';
|
|
26
|
+
import { unlock } from './lock-unlock';
|
|
27
|
+
|
|
28
|
+
const { BackButton: __experimentalMainDashboardButton } =
|
|
29
|
+
unlock( editorPrivateApis );
|
|
24
30
|
|
|
25
31
|
/**
|
|
26
32
|
* Initializes and returns an instance of Editor.
|
|
@@ -80,7 +86,7 @@ export function initializeEditor(
|
|
|
80
86
|
registerCoreBlocks();
|
|
81
87
|
registerLegacyWidgetBlock( { inserter: false } );
|
|
82
88
|
registerWidgetGroupBlock( { inserter: false } );
|
|
83
|
-
if (
|
|
89
|
+
if ( globalThis.IS_GUTENBERG_PLUGIN ) {
|
|
84
90
|
__experimentalRegisterExperimentalCoreBlocks( {
|
|
85
91
|
enableFSEBlocks: settings.__unstableEnableFullSiteEditingBlocks,
|
|
86
92
|
} );
|
|
@@ -152,8 +158,7 @@ export function reinitializeEditor() {
|
|
|
152
158
|
} );
|
|
153
159
|
}
|
|
154
160
|
|
|
155
|
-
export { default as __experimentalFullscreenModeClose } from './components/
|
|
156
|
-
export {
|
|
157
|
-
|
|
161
|
+
export { default as __experimentalFullscreenModeClose } from './components/back-button/fullscreen-mode-close';
|
|
162
|
+
export { __experimentalMainDashboardButton };
|
|
158
163
|
export { store } from './store';
|
|
159
164
|
export * from './deprecated';
|
package/src/store/selectors.js
CHANGED
|
@@ -609,10 +609,13 @@ export const getEditedPostTemplate = createRegistrySelector(
|
|
|
609
609
|
const defaultTemplateId = select( coreStore ).getDefaultTemplateId( {
|
|
610
610
|
slug: slugToCheck,
|
|
611
611
|
} );
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
612
|
+
|
|
613
|
+
return defaultTemplateId
|
|
614
|
+
? select( coreStore ).getEditedEntityRecord(
|
|
615
|
+
'postType',
|
|
616
|
+
'wp_template',
|
|
617
|
+
defaultTemplateId
|
|
618
|
+
)
|
|
619
|
+
: null;
|
|
617
620
|
}
|
|
618
621
|
);
|
package/src/style.scss
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
@import "./components/
|
|
2
|
-
@import "./components/header/fullscreen-mode-close/style.scss";
|
|
1
|
+
@import "./components/back-button/style.scss";
|
|
3
2
|
@import "./components/layout/style.scss";
|
|
4
3
|
@import "./components/meta-boxes/meta-boxes-area/style.scss";
|
|
5
|
-
@import "./components/text-editor/style.scss";
|
|
6
|
-
@import "./components/visual-editor/style.scss";
|
|
7
4
|
@import "./components/welcome-guide/style.scss";
|
|
8
5
|
|
|
9
6
|
/**
|
|
@@ -36,7 +33,7 @@ body.js.block-editor-page {
|
|
|
36
33
|
|
|
37
34
|
// Target the editor UI excluding the visual editor contents, metaboxes and custom fields areas.
|
|
38
35
|
.editor-header,
|
|
39
|
-
.
|
|
36
|
+
.editor-text-editor,
|
|
40
37
|
.editor-sidebar,
|
|
41
38
|
.editor-post-publish-panel {
|
|
42
39
|
@include reset;
|
|
@@ -19,3 +19,75 @@ exports[`Editor appends media correctly for allowed types and skips unsupported
|
|
|
19
19
|
<figure class="wp-block-video"><video controls src="file:///local-video-4.mp4"></video></figure>
|
|
20
20
|
<!-- /wp:video -->"
|
|
21
21
|
`;
|
|
22
|
+
|
|
23
|
+
exports[`Editor on content update parses markdown into blocks 1`] = `
|
|
24
|
+
"<!-- wp:paragraph -->
|
|
25
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing<br />elit.</p>
|
|
26
|
+
<!-- /wp:paragraph -->
|
|
27
|
+
|
|
28
|
+
<!-- wp:heading -->
|
|
29
|
+
<h2 class="wp-block-heading">Overview</h2>
|
|
30
|
+
<!-- /wp:heading -->
|
|
31
|
+
|
|
32
|
+
<!-- wp:list -->
|
|
33
|
+
<ul class="wp-block-list"><!-- wp:list-item -->
|
|
34
|
+
<li>Lorem ipsum dolor sit amet</li>
|
|
35
|
+
<!-- /wp:list-item -->
|
|
36
|
+
|
|
37
|
+
<!-- wp:list-item -->
|
|
38
|
+
<li>Consectetur adipiscing<br>elit</li>
|
|
39
|
+
<!-- /wp:list-item -->
|
|
40
|
+
|
|
41
|
+
<!-- wp:list-item -->
|
|
42
|
+
<li>Integer nec odio</li>
|
|
43
|
+
<!-- /wp:list-item --></ul>
|
|
44
|
+
<!-- /wp:list -->
|
|
45
|
+
|
|
46
|
+
<!-- wp:heading -->
|
|
47
|
+
<h2 class="wp-block-heading">Details</h2>
|
|
48
|
+
<!-- /wp:heading -->
|
|
49
|
+
|
|
50
|
+
<!-- wp:list {"ordered":true} -->
|
|
51
|
+
<ol class="wp-block-list"><!-- wp:list-item -->
|
|
52
|
+
<li>Sed cursus ante dapibus diam</li>
|
|
53
|
+
<!-- /wp:list-item -->
|
|
54
|
+
|
|
55
|
+
<!-- wp:list-item -->
|
|
56
|
+
<li>Nulla quis sem at nibh elementum imperdiet</li>
|
|
57
|
+
<!-- /wp:list-item -->
|
|
58
|
+
|
|
59
|
+
<!-- wp:list-item -->
|
|
60
|
+
<li>Duis sagittis ipsum <code>## Mixed Lists</code></li>
|
|
61
|
+
<!-- /wp:list-item --></ol>
|
|
62
|
+
<!-- /wp:list -->
|
|
63
|
+
|
|
64
|
+
<!-- wp:list -->
|
|
65
|
+
<ul class="wp-block-list"><!-- wp:list-item -->
|
|
66
|
+
<li>Key Points:</li>
|
|
67
|
+
<!-- /wp:list-item --></ul>
|
|
68
|
+
<!-- /wp:list -->
|
|
69
|
+
|
|
70
|
+
<!-- wp:list {"ordered":true} -->
|
|
71
|
+
<ol class="wp-block-list"><!-- wp:list-item -->
|
|
72
|
+
<li>Lorem ipsum dolor sit amet</li>
|
|
73
|
+
<!-- /wp:list-item -->
|
|
74
|
+
|
|
75
|
+
<!-- wp:list-item -->
|
|
76
|
+
<li><br>Consectetur adipiscing elit</li>
|
|
77
|
+
<!-- /wp:list-item -->
|
|
78
|
+
|
|
79
|
+
<!-- wp:list-item -->
|
|
80
|
+
<li>Integer nec odio</li>
|
|
81
|
+
<!-- /wp:list-item --></ol>
|
|
82
|
+
<!-- /wp:list -->
|
|
83
|
+
|
|
84
|
+
<!-- wp:list -->
|
|
85
|
+
<ul class="wp-block-list"><!-- wp:list-item -->
|
|
86
|
+
<li>Additional Info:<br>-<br>Sed cursus ante dapibus diam</li>
|
|
87
|
+
<!-- /wp:list-item -->
|
|
88
|
+
|
|
89
|
+
<!-- wp:list-item -->
|
|
90
|
+
<li>Nulla quis sem at nibh elementum imperdiet</li>
|
|
91
|
+
<!-- /wp:list-item --></ul>
|
|
92
|
+
<!-- /wp:list -->"
|
|
93
|
+
`;
|