@wordpress/edit-post 7.35.0 → 8.0.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 +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 +57 -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 +92 -146
- 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 +23 -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 +49 -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 +97 -149
- 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 +25 -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 +34 -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/layout/index.js +85 -194
- 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/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,20 @@ 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
23
|
import { useViewportMatch } from '@wordpress/compose';
|
|
29
24
|
import { PluginArea } from '@wordpress/plugins';
|
|
30
|
-
import { __,
|
|
31
|
-
import {
|
|
32
|
-
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
25
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
26
|
+
import { useCallback, useMemo } from '@wordpress/element';
|
|
33
27
|
import { store as noticesStore } from '@wordpress/notices';
|
|
34
28
|
import { store as preferencesStore } from '@wordpress/preferences';
|
|
35
29
|
import { privateApis as commandsPrivateApis } from '@wordpress/commands';
|
|
@@ -40,55 +34,54 @@ import { addQueryArgs } from '@wordpress/url';
|
|
|
40
34
|
/**
|
|
41
35
|
* Internal dependencies
|
|
42
36
|
*/
|
|
43
|
-
import
|
|
44
|
-
import VisualEditor from '../visual-editor';
|
|
37
|
+
import BackButton from '../back-button';
|
|
45
38
|
import EditPostKeyboardShortcuts from '../keyboard-shortcuts';
|
|
46
39
|
import InitPatternModal from '../init-pattern-modal';
|
|
47
40
|
import BrowserURL from '../browser-url';
|
|
48
|
-
import Header from '../header';
|
|
49
41
|
import MetaBoxes from '../meta-boxes';
|
|
42
|
+
import PostEditorMoreMenu from '../more-menu';
|
|
50
43
|
import WelcomeGuide from '../welcome-guide';
|
|
51
44
|
import { store as editPostStore } from '../../store';
|
|
52
45
|
import { unlock } from '../../lock-unlock';
|
|
53
|
-
import
|
|
46
|
+
import useEditPostCommands from '../../commands/use-commands';
|
|
47
|
+
import { usePaddingAppender } from './use-padding-appender';
|
|
48
|
+
import { useShouldIframe } from './use-should-iframe';
|
|
54
49
|
|
|
55
50
|
const { getLayoutStyles } = unlock( blockEditorPrivateApis );
|
|
56
51
|
const { useCommands } = unlock( coreCommandsPrivateApis );
|
|
57
52
|
const { useCommandContext } = unlock( commandsPrivateApis );
|
|
58
|
-
const {
|
|
59
|
-
|
|
60
|
-
ListViewSidebar,
|
|
61
|
-
ComplementaryArea,
|
|
62
|
-
FullscreenMode,
|
|
63
|
-
SavePublishPanels,
|
|
64
|
-
InterfaceSkeleton,
|
|
65
|
-
interfaceStore,
|
|
66
|
-
Sidebar,
|
|
67
|
-
} = unlock( editorPrivateApis );
|
|
53
|
+
const { EditorInterface, FullscreenMode, Sidebar } =
|
|
54
|
+
unlock( editorPrivateApis );
|
|
68
55
|
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
|
-
};
|
|
56
|
+
const DESIGN_POST_TYPES = [
|
|
57
|
+
'wp_template',
|
|
58
|
+
'wp_template_part',
|
|
59
|
+
'wp_block',
|
|
60
|
+
'wp_navigation',
|
|
61
|
+
];
|
|
82
62
|
|
|
83
63
|
function useEditorStyles() {
|
|
84
|
-
const {
|
|
85
|
-
|
|
64
|
+
const {
|
|
65
|
+
hasThemeStyleSupport,
|
|
66
|
+
editorSettings,
|
|
67
|
+
isZoomedOutView,
|
|
68
|
+
hasMetaBoxes,
|
|
69
|
+
renderingMode,
|
|
70
|
+
postType,
|
|
71
|
+
} = useSelect( ( select ) => {
|
|
72
|
+
const { __unstableGetEditorMode } = select( blockEditorStore );
|
|
73
|
+
const { getCurrentPostType, getRenderingMode } = select( editorStore );
|
|
74
|
+
const _postType = getCurrentPostType();
|
|
75
|
+
return {
|
|
86
76
|
hasThemeStyleSupport:
|
|
87
77
|
select( editPostStore ).isFeatureActive( 'themeStyles' ),
|
|
88
78
|
editorSettings: select( editorStore ).getEditorSettings(),
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
79
|
+
isZoomedOutView: __unstableGetEditorMode() === 'zoom-out',
|
|
80
|
+
hasMetaBoxes: select( editPostStore ).hasMetaBoxes(),
|
|
81
|
+
renderingMode: getRenderingMode(),
|
|
82
|
+
postType: _postType,
|
|
83
|
+
};
|
|
84
|
+
}, [] );
|
|
92
85
|
|
|
93
86
|
// Compute the default styles.
|
|
94
87
|
return useMemo( () => {
|
|
@@ -122,7 +115,24 @@ function useEditorStyles() {
|
|
|
122
115
|
} );
|
|
123
116
|
}
|
|
124
117
|
|
|
125
|
-
|
|
118
|
+
const baseStyles = hasThemeStyles
|
|
119
|
+
? editorSettings.styles ?? []
|
|
120
|
+
: defaultEditorStyles;
|
|
121
|
+
|
|
122
|
+
// Add a constant padding for the typewritter effect. When typing at the
|
|
123
|
+
// bottom, there needs to be room to scroll up.
|
|
124
|
+
if (
|
|
125
|
+
! isZoomedOutView &&
|
|
126
|
+
! hasMetaBoxes &&
|
|
127
|
+
renderingMode === 'post-only' &&
|
|
128
|
+
! DESIGN_POST_TYPES.includes( postType )
|
|
129
|
+
) {
|
|
130
|
+
baseStyles.push( {
|
|
131
|
+
css: 'body{padding-bottom: 40vh}',
|
|
132
|
+
} );
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
return baseStyles;
|
|
126
136
|
}, [
|
|
127
137
|
editorSettings.defaultEditorStyles,
|
|
128
138
|
editorSettings.disableLayoutStyles,
|
|
@@ -133,99 +143,56 @@ function useEditorStyles() {
|
|
|
133
143
|
|
|
134
144
|
function Layout( { initialPost } ) {
|
|
135
145
|
useCommands();
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
const isMobileViewport = useViewportMatch( 'medium', '<' );
|
|
146
|
+
useEditPostCommands();
|
|
139
147
|
const isWideViewport = useViewportMatch( 'large' );
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
const { closeGeneralSidebar } = useDispatch( editPostStore );
|
|
148
|
+
const paddingAppenderRef = usePaddingAppender();
|
|
149
|
+
const shouldIframe = useShouldIframe();
|
|
143
150
|
const { createErrorNotice } = useDispatch( noticesStore );
|
|
144
151
|
const {
|
|
145
152
|
mode,
|
|
146
153
|
isFullscreenActive,
|
|
147
|
-
isRichEditingEnabled,
|
|
148
154
|
sidebarIsOpened,
|
|
149
155
|
hasActiveMetaboxes,
|
|
150
|
-
previousShortcut,
|
|
151
|
-
nextShortcut,
|
|
152
156
|
hasBlockSelected,
|
|
153
|
-
isInserterOpened,
|
|
154
|
-
isListViewOpened,
|
|
155
157
|
showIconLabels,
|
|
156
158
|
isDistractionFree,
|
|
157
159
|
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
|
-
|
|
185
|
-
|
|
186
|
-
).getAllShortcutKeyCombinations( 'core/editor/previous-region' ),
|
|
187
|
-
nextShortcut: select(
|
|
188
|
-
keyboardShortcutsStore
|
|
189
|
-
).getAllShortcutKeyCombinations( 'core/editor/next-region' ),
|
|
174
|
+
hasBlockSelected:
|
|
175
|
+
!! select( blockEditorStore ).getBlockSelectionStart(),
|
|
190
176
|
showIconLabels: get( 'core', 'showIconLabels' ),
|
|
191
177
|
isDistractionFree: get( 'core', 'distractionFree' ),
|
|
192
178
|
showBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
hasBlockSelected:
|
|
196
|
-
!! select( blockEditorStore ).getBlockSelectionStart(),
|
|
179
|
+
showMetaBoxes:
|
|
180
|
+
select( editorStore ).getRenderingMode() === 'post-only',
|
|
197
181
|
hasHistory: !! getEditorSettings().onNavigateToPreviousEntityRecord,
|
|
198
|
-
hasBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
|
|
199
|
-
blockEditorMode:
|
|
200
|
-
select( blockEditorStore ).__unstableGetEditorMode(),
|
|
201
182
|
isEditingTemplate:
|
|
202
183
|
select( editorStore ).getCurrentPostType() === 'wp_template',
|
|
184
|
+
isWelcomeGuideVisible: isFeatureActive( 'welcomeGuide' ),
|
|
203
185
|
};
|
|
204
186
|
}, [] );
|
|
205
187
|
|
|
206
188
|
// Set the right context for the command palette
|
|
207
189
|
const commandContext = hasBlockSelected
|
|
208
190
|
? 'block-selection-edit'
|
|
209
|
-
: '
|
|
191
|
+
: 'entity-edit';
|
|
210
192
|
useCommandContext( commandContext );
|
|
211
193
|
|
|
212
194
|
const styles = useEditorStyles();
|
|
213
195
|
|
|
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
196
|
// We need to add the show-icon-labels class to the body element so it is applied to modals.
|
|
230
197
|
if ( showIconLabels ) {
|
|
231
198
|
document.body.classList.add( 'show-icon-labels' );
|
|
@@ -237,31 +204,10 @@ function Layout( { initialPost } ) {
|
|
|
237
204
|
'is-sidebar-opened': sidebarIsOpened,
|
|
238
205
|
'has-metaboxes': hasActiveMetaboxes,
|
|
239
206
|
'is-distraction-free': isDistractionFree && isWideViewport,
|
|
240
|
-
'is-entity-save-view-open': !! entitiesSavedStatesCallback,
|
|
241
207
|
'has-block-breadcrumbs':
|
|
242
|
-
|
|
208
|
+
showBlockBreadcrumbs && ! isDistractionFree && isWideViewport,
|
|
243
209
|
} );
|
|
244
210
|
|
|
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
211
|
function onPluginAreaError( name ) {
|
|
266
212
|
createErrorNotice(
|
|
267
213
|
sprintf(
|
|
@@ -335,82 +281,7 @@ function Layout( { initialPost } ) {
|
|
|
335
281
|
<LocalAutosaveMonitor />
|
|
336
282
|
<EditPostKeyboardShortcuts />
|
|
337
283
|
<EditorKeyboardShortcutsRegister />
|
|
338
|
-
<EditorKeyboardShortcuts />
|
|
339
284
|
<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
285
|
<WelcomeGuide />
|
|
415
286
|
<InitPatternModal />
|
|
416
287
|
<PluginArea onError={ onPluginAreaError } />
|
|
@@ -422,6 +293,26 @@ function Layout( { initialPost } ) {
|
|
|
422
293
|
}
|
|
423
294
|
/>
|
|
424
295
|
) }
|
|
296
|
+
<PostEditorMoreMenu />
|
|
297
|
+
<BackButton initialPost={ initialPost } />
|
|
298
|
+
<EditorSnackbars />
|
|
299
|
+
<EditorInterface
|
|
300
|
+
className={ className }
|
|
301
|
+
styles={ styles }
|
|
302
|
+
forceIsDirty={ hasActiveMetaboxes }
|
|
303
|
+
contentRef={ paddingAppenderRef }
|
|
304
|
+
disableIframe={ ! shouldIframe }
|
|
305
|
+
// We should auto-focus the canvas (title) on load.
|
|
306
|
+
// eslint-disable-next-line jsx-a11y/no-autofocus
|
|
307
|
+
autoFocus={ ! isWelcomeGuideVisible }
|
|
308
|
+
>
|
|
309
|
+
{ ! isDistractionFree && showMetaBoxes && (
|
|
310
|
+
<div className="edit-post-layout__metaboxes">
|
|
311
|
+
<MetaBoxes location="normal" />
|
|
312
|
+
<MetaBoxes location="advanced" />
|
|
313
|
+
</div>
|
|
314
|
+
) }
|
|
315
|
+
</EditorInterface>
|
|
425
316
|
</>
|
|
426
317
|
);
|
|
427
318
|
}
|
|
@@ -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
|
|
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
|
+
`;
|