@wordpress/edit-post 7.26.0 → 7.27.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/header/index.js +2 -2
- package/build/components/header/index.js.map +1 -1
- package/build/components/layout/index.native.js +1 -3
- package/build/components/layout/index.native.js.map +1 -1
- package/build/components/meta-boxes/index.js +3 -2
- package/build/components/meta-boxes/index.js.map +1 -1
- package/build/components/preferences-modal/{options/enable-custom-fields.js → enable-custom-fields.js} +10 -2
- package/build/components/preferences-modal/enable-custom-fields.js.map +1 -0
- package/build/components/preferences-modal/{options/enable-panel.js → enable-panel.js} +11 -2
- package/build/components/preferences-modal/enable-panel.js.map +1 -0
- package/build/components/preferences-modal/{options/enable-publish-sidebar.js → enable-publish-sidebar.js} +11 -2
- package/build/components/preferences-modal/enable-publish-sidebar.js.map +1 -0
- package/build/components/preferences-modal/index.js +31 -149
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/preferences-modal/meta-boxes-section.js +11 -5
- package/build/components/preferences-modal/meta-boxes-section.js.map +1 -1
- package/build/components/sidebar/plugin-document-setting-panel/index.js +5 -2
- package/build/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
- package/build/editor.js +3 -26
- package/build/editor.js.map +1 -1
- package/build/editor.native.js +4 -28
- package/build/editor.native.js.map +1 -1
- package/build/hooks/commands/use-common-commands.js +48 -8
- package/build/hooks/commands/use-common-commands.js.map +1 -1
- package/build/index.js +2 -2
- package/build/index.js.map +1 -1
- package/build/index.native.js +1 -1
- package/build/index.native.js.map +1 -1
- package/build/store/actions.js +11 -10
- package/build/store/actions.js.map +1 -1
- package/build/store/selectors.js +24 -6
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/header/index.js +2 -2
- package/build-module/components/header/index.js.map +1 -1
- package/build-module/components/layout/index.native.js +1 -3
- package/build-module/components/layout/index.native.js.map +1 -1
- package/build-module/components/meta-boxes/index.js +3 -2
- package/build-module/components/meta-boxes/index.js.map +1 -1
- package/build-module/components/preferences-modal/{options/enable-custom-fields.js → enable-custom-fields.js} +10 -2
- package/build-module/components/preferences-modal/enable-custom-fields.js.map +1 -0
- package/build-module/components/preferences-modal/{options/enable-panel.js → enable-panel.js} +10 -2
- package/build-module/components/preferences-modal/enable-panel.js.map +1 -0
- package/build-module/components/preferences-modal/{options/enable-publish-sidebar.js → enable-publish-sidebar.js} +10 -2
- package/build-module/components/preferences-modal/enable-publish-sidebar.js.map +1 -0
- package/build-module/components/preferences-modal/index.js +31 -150
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/preferences-modal/meta-boxes-section.js +7 -2
- package/build-module/components/preferences-modal/meta-boxes-section.js.map +1 -1
- package/build-module/components/sidebar/plugin-document-setting-panel/index.js +5 -2
- package/build-module/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
- package/build-module/editor.js +3 -26
- package/build-module/editor.js.map +1 -1
- package/build-module/editor.native.js +5 -29
- package/build-module/editor.native.js.map +1 -1
- package/build-module/hooks/commands/use-common-commands.js +49 -9
- package/build-module/hooks/commands/use-common-commands.js.map +1 -1
- package/build-module/index.js +2 -2
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +1 -1
- package/build-module/index.native.js.map +1 -1
- package/build-module/store/actions.js +11 -10
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/selectors.js +24 -6
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/classic-rtl.css +1 -1
- package/build-style/classic.css +1 -1
- package/build-style/style-rtl.css +16 -182
- package/build-style/style.css +16 -182
- package/package.json +32 -32
- package/src/components/header/index.js +2 -4
- package/src/components/header/style.scss +13 -4
- package/src/components/layout/index.native.js +1 -4
- package/src/components/meta-boxes/index.js +4 -2
- package/src/components/preferences-modal/{options/enable-custom-fields.js → enable-custom-fields.js} +10 -3
- package/src/components/preferences-modal/{options/enable-panel.js → enable-panel.js} +9 -2
- package/src/components/preferences-modal/{options/enable-publish-sidebar.js → enable-publish-sidebar.js} +9 -2
- package/src/components/preferences-modal/index.js +44 -267
- package/src/components/preferences-modal/meta-boxes-section.js +6 -2
- package/src/components/preferences-modal/{options/test → test}/__snapshots__/enable-custom-fields.js.snap +4 -4
- package/src/components/preferences-modal/test/__snapshots__/meta-boxes-section.js.snap +18 -18
- package/src/components/sidebar/plugin-document-setting-panel/index.js +6 -2
- package/src/editor.js +55 -85
- package/src/editor.native.js +4 -33
- package/src/hooks/commands/use-common-commands.js +77 -7
- package/src/index.js +2 -2
- package/src/index.native.js +1 -1
- package/src/store/actions.js +14 -33
- package/src/store/selectors.js +52 -26
- package/src/store/test/actions.js +9 -9
- package/src/style.scss +0 -1
- package/build/components/block-manager/category.js +0 -105
- package/build/components/block-manager/category.js.map +0 -1
- package/build/components/block-manager/checklist.js +0 -35
- package/build/components/block-manager/checklist.js.map +0 -1
- package/build/components/block-manager/index.js +0 -127
- package/build/components/block-manager/index.js.map +0 -1
- package/build/components/preferences-modal/options/enable-custom-fields.js.map +0 -1
- package/build/components/preferences-modal/options/enable-feature.js +0 -36
- package/build/components/preferences-modal/options/enable-feature.js.map +0 -1
- package/build/components/preferences-modal/options/enable-panel.js.map +0 -1
- package/build/components/preferences-modal/options/enable-plugin-document-setting-panel.js +0 -32
- package/build/components/preferences-modal/options/enable-plugin-document-setting-panel.js.map +0 -1
- package/build/components/preferences-modal/options/enable-publish-sidebar.js.map +0 -1
- package/build/components/preferences-modal/options/index.js +0 -42
- package/build/components/preferences-modal/options/index.js.map +0 -1
- package/build-module/components/block-manager/category.js +0 -96
- package/build-module/components/block-manager/category.js.map +0 -1
- package/build-module/components/block-manager/checklist.js +0 -27
- package/build-module/components/block-manager/checklist.js.map +0 -1
- package/build-module/components/block-manager/index.js +0 -118
- package/build-module/components/block-manager/index.js.map +0 -1
- package/build-module/components/preferences-modal/options/enable-custom-fields.js.map +0 -1
- package/build-module/components/preferences-modal/options/enable-feature.js +0 -29
- package/build-module/components/preferences-modal/options/enable-feature.js.map +0 -1
- package/build-module/components/preferences-modal/options/enable-panel.js.map +0 -1
- package/build-module/components/preferences-modal/options/enable-plugin-document-setting-panel.js +0 -24
- package/build-module/components/preferences-modal/options/enable-plugin-document-setting-panel.js.map +0 -1
- package/build-module/components/preferences-modal/options/enable-publish-sidebar.js.map +0 -1
- package/build-module/components/preferences-modal/options/index.js +0 -6
- package/build-module/components/preferences-modal/options/index.js.map +0 -1
- package/src/components/block-manager/category.js +0 -94
- package/src/components/block-manager/checklist.js +0 -30
- package/src/components/block-manager/index.js +0 -158
- package/src/components/block-manager/style.scss +0 -82
- package/src/components/preferences-modal/options/enable-feature.js +0 -31
- package/src/components/preferences-modal/options/enable-plugin-document-setting-panel.js +0 -23
- package/src/components/preferences-modal/options/index.js +0 -5
- /package/src/components/preferences-modal/{options/test → test}/enable-custom-fields.js +0 -0
package/src/editor.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { store as blocksStore } from '@wordpress/blocks';
|
|
5
4
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
6
5
|
import {
|
|
7
6
|
ErrorBoundary,
|
|
@@ -38,68 +37,61 @@ function Editor( {
|
|
|
38
37
|
initialPostType
|
|
39
38
|
);
|
|
40
39
|
|
|
41
|
-
const {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
? getEditedPostTemplate()
|
|
97
|
-
: null,
|
|
98
|
-
post: postObject,
|
|
99
|
-
};
|
|
100
|
-
},
|
|
101
|
-
[ currentPost.postType, currentPost.postId ]
|
|
102
|
-
);
|
|
40
|
+
const { hasInlineToolbar, post, preferredStyleVariations, template } =
|
|
41
|
+
useSelect(
|
|
42
|
+
( select ) => {
|
|
43
|
+
const { isFeatureActive, getEditedPostTemplate } =
|
|
44
|
+
select( editPostStore );
|
|
45
|
+
const {
|
|
46
|
+
getEntityRecord,
|
|
47
|
+
getPostType,
|
|
48
|
+
getEntityRecords,
|
|
49
|
+
canUser,
|
|
50
|
+
} = select( coreStore );
|
|
51
|
+
const { getEditorSettings } = select( editorStore );
|
|
52
|
+
const isTemplate = [
|
|
53
|
+
'wp_template',
|
|
54
|
+
'wp_template_part',
|
|
55
|
+
].includes( currentPost.postType );
|
|
56
|
+
// Ideally the initializeEditor function should be called using the ID of the REST endpoint.
|
|
57
|
+
// to avoid the special case.
|
|
58
|
+
let postObject;
|
|
59
|
+
if ( isTemplate ) {
|
|
60
|
+
const posts = getEntityRecords(
|
|
61
|
+
'postType',
|
|
62
|
+
currentPost.postType,
|
|
63
|
+
{
|
|
64
|
+
wp_id: currentPost.postId,
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
postObject = posts?.[ 0 ];
|
|
68
|
+
} else {
|
|
69
|
+
postObject = getEntityRecord(
|
|
70
|
+
'postType',
|
|
71
|
+
currentPost.postType,
|
|
72
|
+
currentPost.postId
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
const supportsTemplateMode =
|
|
76
|
+
getEditorSettings().supportsTemplateMode;
|
|
77
|
+
const isViewable =
|
|
78
|
+
getPostType( currentPost.postType )?.viewable ?? false;
|
|
79
|
+
const canEditTemplate = canUser( 'create', 'templates' );
|
|
80
|
+
return {
|
|
81
|
+
hasInlineToolbar: isFeatureActive( 'inlineToolbar' ),
|
|
82
|
+
preferredStyleVariations: select( preferencesStore ).get(
|
|
83
|
+
'core/edit-post',
|
|
84
|
+
'preferredStyleVariations'
|
|
85
|
+
),
|
|
86
|
+
template:
|
|
87
|
+
supportsTemplateMode && isViewable && canEditTemplate
|
|
88
|
+
? getEditedPostTemplate()
|
|
89
|
+
: null,
|
|
90
|
+
post: postObject,
|
|
91
|
+
};
|
|
92
|
+
},
|
|
93
|
+
[ currentPost.postType, currentPost.postId ]
|
|
94
|
+
);
|
|
103
95
|
|
|
104
96
|
const { updatePreferredStyleVariations } = useDispatch( editPostStore );
|
|
105
97
|
|
|
@@ -113,33 +105,11 @@ function Editor( {
|
|
|
113
105
|
onChange: updatePreferredStyleVariations,
|
|
114
106
|
},
|
|
115
107
|
hasInlineToolbar,
|
|
116
|
-
|
|
117
|
-
// Keep a reference of the `allowedBlockTypes` from the server to handle use cases
|
|
118
|
-
// where we need to differentiate if a block is disabled by the user or some plugin.
|
|
119
|
-
defaultAllowedBlockTypes: settings.allowedBlockTypes,
|
|
120
108
|
};
|
|
121
|
-
|
|
122
|
-
// Omit hidden block types if exists and non-empty.
|
|
123
|
-
if ( hiddenBlockTypes.length > 0 ) {
|
|
124
|
-
// Defer to passed setting for `allowedBlockTypes` if provided as
|
|
125
|
-
// anything other than `true` (where `true` is equivalent to allow
|
|
126
|
-
// all block types).
|
|
127
|
-
const defaultAllowedBlockTypes =
|
|
128
|
-
true === settings.allowedBlockTypes
|
|
129
|
-
? blockTypes.map( ( { name } ) => name )
|
|
130
|
-
: settings.allowedBlockTypes || [];
|
|
131
|
-
|
|
132
|
-
result.allowedBlockTypes = defaultAllowedBlockTypes.filter(
|
|
133
|
-
( type ) => ! hiddenBlockTypes.includes( type )
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
109
|
return result;
|
|
138
110
|
}, [
|
|
139
111
|
settings,
|
|
140
112
|
hasInlineToolbar,
|
|
141
|
-
hiddenBlockTypes,
|
|
142
|
-
blockTypes,
|
|
143
113
|
preferredStyleVariations,
|
|
144
114
|
updatePreferredStyleVariations,
|
|
145
115
|
getPostLinkProps,
|
package/src/editor.native.js
CHANGED
|
@@ -10,7 +10,7 @@ import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
|
10
10
|
*/
|
|
11
11
|
import { Component } from '@wordpress/element';
|
|
12
12
|
import { EditorProvider } from '@wordpress/editor';
|
|
13
|
-
import { parse, serialize
|
|
13
|
+
import { parse, serialize } from '@wordpress/blocks';
|
|
14
14
|
import { withDispatch, withSelect } from '@wordpress/data';
|
|
15
15
|
import { compose } from '@wordpress/compose';
|
|
16
16
|
import {
|
|
@@ -47,32 +47,12 @@ class Editor extends Component {
|
|
|
47
47
|
this.setTitleRef = this.setTitleRef.bind( this );
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
getEditorSettings( settings
|
|
50
|
+
getEditorSettings( settings ) {
|
|
51
51
|
settings = {
|
|
52
52
|
...settings,
|
|
53
53
|
isRTL: I18nManager.isRTL,
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
// Omit hidden block types if exists and non-empty.
|
|
57
|
-
if ( hiddenBlockTypes.length > 0 ) {
|
|
58
|
-
if ( settings.allowedBlockTypes === undefined ) {
|
|
59
|
-
// If no specific flags for allowedBlockTypes are set, assume `true`
|
|
60
|
-
// meaning allow all block types.
|
|
61
|
-
settings.allowedBlockTypes = true;
|
|
62
|
-
}
|
|
63
|
-
// Defer to passed setting for `allowedBlockTypes` if provided as
|
|
64
|
-
// anything other than `true` (where `true` is equivalent to allow
|
|
65
|
-
// all block types).
|
|
66
|
-
const defaultAllowedBlockTypes =
|
|
67
|
-
true === settings.allowedBlockTypes
|
|
68
|
-
? blockTypes.map( ( { name } ) => name )
|
|
69
|
-
: settings.allowedBlockTypes || [];
|
|
70
|
-
|
|
71
|
-
settings.allowedBlockTypes = defaultAllowedBlockTypes.filter(
|
|
72
|
-
( type ) => ! hiddenBlockTypes.includes( type )
|
|
73
|
-
);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
56
|
return settings;
|
|
77
57
|
}
|
|
78
58
|
|
|
@@ -127,8 +107,6 @@ class Editor extends Component {
|
|
|
127
107
|
const {
|
|
128
108
|
settings,
|
|
129
109
|
initialEdits,
|
|
130
|
-
hiddenBlockTypes,
|
|
131
|
-
blockTypes,
|
|
132
110
|
post,
|
|
133
111
|
postId,
|
|
134
112
|
postType,
|
|
@@ -137,11 +115,7 @@ class Editor extends Component {
|
|
|
137
115
|
...props
|
|
138
116
|
} = this.props;
|
|
139
117
|
|
|
140
|
-
const editorSettings = this.getEditorSettings(
|
|
141
|
-
settings,
|
|
142
|
-
hiddenBlockTypes,
|
|
143
|
-
blockTypes
|
|
144
|
-
);
|
|
118
|
+
const editorSettings = this.getEditorSettings( settings );
|
|
145
119
|
|
|
146
120
|
const normalizedPost = post || {
|
|
147
121
|
id: postId,
|
|
@@ -180,13 +154,10 @@ class Editor extends Component {
|
|
|
180
154
|
|
|
181
155
|
export default compose( [
|
|
182
156
|
withSelect( ( select ) => {
|
|
183
|
-
const { getEditorMode
|
|
184
|
-
const { getBlockTypes } = select( blocksStore );
|
|
157
|
+
const { getEditorMode } = select( editPostStore );
|
|
185
158
|
|
|
186
159
|
return {
|
|
187
160
|
mode: getEditorMode(),
|
|
188
|
-
hiddenBlockTypes: getHiddenBlockTypes(),
|
|
189
|
-
blockTypes: getBlockTypes(),
|
|
190
161
|
};
|
|
191
162
|
} ),
|
|
192
163
|
withDispatch( ( dispatch ) => {
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
drawerRight,
|
|
10
10
|
blockDefault,
|
|
11
11
|
keyboard,
|
|
12
|
-
|
|
12
|
+
fullscreen,
|
|
13
13
|
listView,
|
|
14
14
|
external,
|
|
15
15
|
formatListBullets,
|
|
@@ -39,13 +39,17 @@ export default function useCommonCommands() {
|
|
|
39
39
|
editorMode,
|
|
40
40
|
activeSidebar,
|
|
41
41
|
isListViewOpen,
|
|
42
|
+
isFullscreen,
|
|
42
43
|
isPublishSidebarEnabled,
|
|
43
44
|
showBlockBreadcrumbs,
|
|
44
45
|
isDistractionFree,
|
|
46
|
+
isTopToolbar,
|
|
47
|
+
isFocusMode,
|
|
45
48
|
} = useSelect( ( select ) => {
|
|
46
49
|
const { get } = select( preferencesStore );
|
|
47
50
|
const { getEditorMode } = select( editPostStore );
|
|
48
51
|
const { isListViewOpened } = select( editorStore );
|
|
52
|
+
|
|
49
53
|
return {
|
|
50
54
|
activeSidebar: select( interfaceStore ).getActiveComplementaryArea(
|
|
51
55
|
editPostStore.name
|
|
@@ -56,6 +60,9 @@ export default function useCommonCommands() {
|
|
|
56
60
|
select( editorStore ).isPublishSidebarEnabled(),
|
|
57
61
|
showBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
|
|
58
62
|
isDistractionFree: get( 'core', 'distractionFree' ),
|
|
63
|
+
isFocusMode: get( 'core', 'focusMode' ),
|
|
64
|
+
isTopToolbar: get( 'core', 'fixedToolbar' ),
|
|
65
|
+
isFullscreen: get( 'core/edit-post', 'fullscreenMode' ),
|
|
59
66
|
};
|
|
60
67
|
}, [] );
|
|
61
68
|
const { toggle } = useDispatch( preferencesStore );
|
|
@@ -94,7 +101,9 @@ export default function useCommonCommands() {
|
|
|
94
101
|
|
|
95
102
|
useCommand( {
|
|
96
103
|
name: 'core/toggle-distraction-free',
|
|
97
|
-
label:
|
|
104
|
+
label: isDistractionFree
|
|
105
|
+
? __( 'Exit Distraction Free' )
|
|
106
|
+
: __( 'Enter Distraction Free ' ),
|
|
98
107
|
callback: ( { close } ) => {
|
|
99
108
|
toggleDistractionFree();
|
|
100
109
|
close();
|
|
@@ -103,30 +112,71 @@ export default function useCommonCommands() {
|
|
|
103
112
|
|
|
104
113
|
useCommand( {
|
|
105
114
|
name: 'core/toggle-spotlight-mode',
|
|
106
|
-
label: __( 'Toggle spotlight
|
|
115
|
+
label: __( 'Toggle spotlight' ),
|
|
107
116
|
callback: ( { close } ) => {
|
|
108
117
|
toggle( 'core', 'focusMode' );
|
|
109
118
|
close();
|
|
119
|
+
createInfoNotice(
|
|
120
|
+
isFocusMode ? __( 'Spotlight off.' ) : __( 'Spotlight on.' ),
|
|
121
|
+
{
|
|
122
|
+
id: 'core/edit-post/toggle-spotlight-mode/notice',
|
|
123
|
+
type: 'snackbar',
|
|
124
|
+
actions: [
|
|
125
|
+
{
|
|
126
|
+
label: __( 'Undo' ),
|
|
127
|
+
onClick: () => {
|
|
128
|
+
toggle( 'core', 'focusMode' );
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
}
|
|
133
|
+
);
|
|
110
134
|
},
|
|
111
135
|
} );
|
|
112
136
|
|
|
113
137
|
useCommand( {
|
|
114
138
|
name: 'core/toggle-fullscreen-mode',
|
|
115
|
-
label:
|
|
116
|
-
|
|
139
|
+
label: isFullscreen
|
|
140
|
+
? __( 'Exit fullscreen' )
|
|
141
|
+
: __( 'Enter fullscreen' ),
|
|
142
|
+
icon: fullscreen,
|
|
117
143
|
callback: ( { close } ) => {
|
|
118
144
|
toggle( 'core/edit-post', 'fullscreenMode' );
|
|
119
145
|
close();
|
|
146
|
+
createInfoNotice(
|
|
147
|
+
isFullscreen ? __( 'Fullscreen off.' ) : __( 'Fullscreen on.' ),
|
|
148
|
+
{
|
|
149
|
+
id: 'core/edit-post/toggle-fullscreen-mode/notice',
|
|
150
|
+
type: 'snackbar',
|
|
151
|
+
actions: [
|
|
152
|
+
{
|
|
153
|
+
label: __( 'Undo' ),
|
|
154
|
+
onClick: () => {
|
|
155
|
+
toggle( 'core/edit-post', 'fullscreenMode' );
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
],
|
|
159
|
+
}
|
|
160
|
+
);
|
|
120
161
|
},
|
|
121
162
|
} );
|
|
122
163
|
|
|
123
164
|
useCommand( {
|
|
124
165
|
name: 'core/toggle-list-view',
|
|
125
|
-
label:
|
|
166
|
+
label: isListViewOpen
|
|
167
|
+
? __( 'Close List View' )
|
|
168
|
+
: __( 'Open List View' ),
|
|
126
169
|
icon: listView,
|
|
127
170
|
callback: ( { close } ) => {
|
|
128
171
|
setIsListViewOpened( ! isListViewOpen );
|
|
129
172
|
close();
|
|
173
|
+
createInfoNotice(
|
|
174
|
+
isListViewOpen ? __( 'List View off.' ) : __( 'List View on.' ),
|
|
175
|
+
{
|
|
176
|
+
id: 'core/edit-post/toggle-list-view/notice',
|
|
177
|
+
type: 'snackbar',
|
|
178
|
+
}
|
|
179
|
+
);
|
|
130
180
|
},
|
|
131
181
|
} );
|
|
132
182
|
|
|
@@ -139,12 +189,32 @@ export default function useCommonCommands() {
|
|
|
139
189
|
toggleDistractionFree();
|
|
140
190
|
}
|
|
141
191
|
close();
|
|
192
|
+
createInfoNotice(
|
|
193
|
+
isTopToolbar
|
|
194
|
+
? __( 'Top toolbar off.' )
|
|
195
|
+
: __( 'Top toolbar on.' ),
|
|
196
|
+
{
|
|
197
|
+
id: 'core/edit-post/toggle-top-toolbar/notice',
|
|
198
|
+
type: 'snackbar',
|
|
199
|
+
actions: [
|
|
200
|
+
{
|
|
201
|
+
label: __( 'Undo' ),
|
|
202
|
+
onClick: () => {
|
|
203
|
+
toggle( 'core', 'fixedToolbar' );
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
}
|
|
208
|
+
);
|
|
142
209
|
},
|
|
143
210
|
} );
|
|
144
211
|
|
|
145
212
|
useCommand( {
|
|
146
213
|
name: 'core/toggle-code-editor',
|
|
147
|
-
label:
|
|
214
|
+
label:
|
|
215
|
+
editorMode === 'visual'
|
|
216
|
+
? __( 'Open code editor' )
|
|
217
|
+
: __( 'Exit code editor' ),
|
|
148
218
|
icon: code,
|
|
149
219
|
callback: ( { close } ) => {
|
|
150
220
|
switchEditorMode( editorMode === 'visual' ? 'text' : 'visual' );
|
package/src/index.js
CHANGED
|
@@ -53,9 +53,7 @@ export function initializeEditor(
|
|
|
53
53
|
const root = createRoot( target );
|
|
54
54
|
|
|
55
55
|
dispatch( preferencesStore ).setDefaults( 'core/edit-post', {
|
|
56
|
-
editorMode: 'visual',
|
|
57
56
|
fullscreenMode: true,
|
|
58
|
-
hiddenBlockTypes: [],
|
|
59
57
|
isPublishSidebarEnabled: true,
|
|
60
58
|
preferredStyleVariations: {},
|
|
61
59
|
themeStyles: true,
|
|
@@ -65,7 +63,9 @@ export function initializeEditor(
|
|
|
65
63
|
|
|
66
64
|
dispatch( preferencesStore ).setDefaults( 'core', {
|
|
67
65
|
allowRightClickOverrides: true,
|
|
66
|
+
editorMode: 'visual',
|
|
68
67
|
fixedToolbar: false,
|
|
68
|
+
hiddenBlockTypes: [],
|
|
69
69
|
inactivePanels: [],
|
|
70
70
|
openPanels: [ 'post-status' ],
|
|
71
71
|
showBlockBreadcrumbs: true,
|
package/src/index.native.js
CHANGED
|
@@ -24,7 +24,6 @@ export function initializeEditor( id, postType, postId ) {
|
|
|
24
24
|
dispatch( preferencesStore ).setDefaults( 'core/edit-post', {
|
|
25
25
|
editorMode: 'visual',
|
|
26
26
|
fullscreenMode: true,
|
|
27
|
-
hiddenBlockTypes: [],
|
|
28
27
|
inactivePanels: [],
|
|
29
28
|
isPublishSidebarEnabled: true,
|
|
30
29
|
openPanels: [ 'post-status' ],
|
|
@@ -32,6 +31,7 @@ export function initializeEditor( id, postType, postId ) {
|
|
|
32
31
|
welcomeGuide: true,
|
|
33
32
|
} );
|
|
34
33
|
dispatch( preferencesStore ).setDefaults( 'core', {
|
|
34
|
+
hiddenBlockTypes: [],
|
|
35
35
|
inactivePanels: [],
|
|
36
36
|
openPanels: [ 'post-status' ],
|
|
37
37
|
} );
|
package/src/store/actions.js
CHANGED
|
@@ -17,6 +17,7 @@ import { addFilter } from '@wordpress/hooks';
|
|
|
17
17
|
*/
|
|
18
18
|
import { getMetaBoxContainer } from '../utils/meta-boxes';
|
|
19
19
|
import { store as editPostStore } from '.';
|
|
20
|
+
import { unlock } from '../lock-unlock';
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* Returns an action object used in signalling that the user opened an editor sidebar.
|
|
@@ -194,9 +195,7 @@ export const toggleFeature =
|
|
|
194
195
|
export const switchEditorMode =
|
|
195
196
|
( mode ) =>
|
|
196
197
|
( { dispatch, registry } ) => {
|
|
197
|
-
registry
|
|
198
|
-
.dispatch( preferencesStore )
|
|
199
|
-
.set( 'core/edit-post', 'editorMode', mode );
|
|
198
|
+
registry.dispatch( preferencesStore ).set( 'core', 'editorMode', mode );
|
|
200
199
|
|
|
201
200
|
// Unselect blocks when we switch to the code editor.
|
|
202
201
|
if ( mode !== 'visual' ) {
|
|
@@ -289,21 +288,7 @@ export const updatePreferredStyleVariations =
|
|
|
289
288
|
export const showBlockTypes =
|
|
290
289
|
( blockNames ) =>
|
|
291
290
|
( { registry } ) => {
|
|
292
|
-
|
|
293
|
-
registry
|
|
294
|
-
.select( preferencesStore )
|
|
295
|
-
.get( 'core/edit-post', 'hiddenBlockTypes' ) ?? [];
|
|
296
|
-
|
|
297
|
-
const newBlockNames = existingBlockNames.filter(
|
|
298
|
-
( type ) =>
|
|
299
|
-
! (
|
|
300
|
-
Array.isArray( blockNames ) ? blockNames : [ blockNames ]
|
|
301
|
-
).includes( type )
|
|
302
|
-
);
|
|
303
|
-
|
|
304
|
-
registry
|
|
305
|
-
.dispatch( preferencesStore )
|
|
306
|
-
.set( 'core/edit-post', 'hiddenBlockTypes', newBlockNames );
|
|
291
|
+
unlock( registry.dispatch( editorStore ) ).showBlockTypes( blockNames );
|
|
307
292
|
};
|
|
308
293
|
|
|
309
294
|
/**
|
|
@@ -314,21 +299,7 @@ export const showBlockTypes =
|
|
|
314
299
|
export const hideBlockTypes =
|
|
315
300
|
( blockNames ) =>
|
|
316
301
|
( { registry } ) => {
|
|
317
|
-
|
|
318
|
-
registry
|
|
319
|
-
.select( preferencesStore )
|
|
320
|
-
.get( 'core/edit-post', 'hiddenBlockTypes' ) ?? [];
|
|
321
|
-
|
|
322
|
-
const mergedBlockNames = new Set( [
|
|
323
|
-
...existingBlockNames,
|
|
324
|
-
...( Array.isArray( blockNames ) ? blockNames : [ blockNames ] ),
|
|
325
|
-
] );
|
|
326
|
-
|
|
327
|
-
registry
|
|
328
|
-
.dispatch( preferencesStore )
|
|
329
|
-
.set( 'core/edit-post', 'hiddenBlockTypes', [
|
|
330
|
-
...mergedBlockNames,
|
|
331
|
-
] );
|
|
302
|
+
unlock( registry.dispatch( editorStore ) ).hideBlockTypes( blockNames );
|
|
332
303
|
};
|
|
333
304
|
|
|
334
305
|
/**
|
|
@@ -602,6 +573,16 @@ export const toggleDistractionFree =
|
|
|
602
573
|
{
|
|
603
574
|
id: 'core/edit-post/distraction-free-mode/notice',
|
|
604
575
|
type: 'snackbar',
|
|
576
|
+
actions: [
|
|
577
|
+
{
|
|
578
|
+
label: __( 'Undo' ),
|
|
579
|
+
onClick: () => {
|
|
580
|
+
registry
|
|
581
|
+
.dispatch( preferencesStore )
|
|
582
|
+
.toggle( 'core', 'distractionFree' );
|
|
583
|
+
},
|
|
584
|
+
},
|
|
585
|
+
],
|
|
605
586
|
}
|
|
606
587
|
);
|
|
607
588
|
} );
|
package/src/store/selectors.js
CHANGED
|
@@ -30,8 +30,7 @@ const EMPTY_OBJECT = {};
|
|
|
30
30
|
*/
|
|
31
31
|
export const getEditorMode = createRegistrySelector(
|
|
32
32
|
( select ) => () =>
|
|
33
|
-
select( preferencesStore ).get( 'core
|
|
34
|
-
'visual'
|
|
33
|
+
select( preferencesStore ).get( 'core', 'editorMode' ) ?? 'visual'
|
|
35
34
|
);
|
|
36
35
|
|
|
37
36
|
/**
|
|
@@ -165,21 +164,34 @@ export const getPreferences = createRegistrySelector( ( select ) => () => {
|
|
|
165
164
|
// These preferences now exist in the preferences store.
|
|
166
165
|
// Fetch them so that they can be merged into the post
|
|
167
166
|
// editor preferences.
|
|
168
|
-
const preferences = [
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
'core/edit-post',
|
|
175
|
-
preferenceKey
|
|
176
|
-
);
|
|
167
|
+
const preferences = [ 'preferredStyleVariations' ].reduce(
|
|
168
|
+
( accumulatedPrefs, preferenceKey ) => {
|
|
169
|
+
const value = select( preferencesStore ).get(
|
|
170
|
+
'core/edit-post',
|
|
171
|
+
preferenceKey
|
|
172
|
+
);
|
|
177
173
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
174
|
+
return {
|
|
175
|
+
...accumulatedPrefs,
|
|
176
|
+
[ preferenceKey ]: value,
|
|
177
|
+
};
|
|
178
|
+
},
|
|
179
|
+
{}
|
|
180
|
+
);
|
|
181
|
+
const corePreferences = [ 'editorMode', 'hiddenBlockTypes' ].reduce(
|
|
182
|
+
( accumulatedPrefs, preferenceKey ) => {
|
|
183
|
+
const value = select( preferencesStore ).get(
|
|
184
|
+
'core',
|
|
185
|
+
preferenceKey
|
|
186
|
+
);
|
|
187
|
+
|
|
188
|
+
return {
|
|
189
|
+
...accumulatedPrefs,
|
|
190
|
+
[ preferenceKey ]: value,
|
|
191
|
+
};
|
|
192
|
+
},
|
|
193
|
+
{}
|
|
194
|
+
);
|
|
183
195
|
|
|
184
196
|
// Panels were a preference, but the data structure changed when the state
|
|
185
197
|
// was migrated to the preferences store. They need to be converted from
|
|
@@ -194,6 +206,7 @@ export const getPreferences = createRegistrySelector( ( select ) => () => {
|
|
|
194
206
|
|
|
195
207
|
return {
|
|
196
208
|
...preferences,
|
|
209
|
+
...corePreferences,
|
|
197
210
|
panels,
|
|
198
211
|
};
|
|
199
212
|
} );
|
|
@@ -225,10 +238,8 @@ export function getPreference( state, preferenceKey, defaultValue ) {
|
|
|
225
238
|
*/
|
|
226
239
|
export const getHiddenBlockTypes = createRegistrySelector( ( select ) => () => {
|
|
227
240
|
return (
|
|
228
|
-
select( preferencesStore ).get(
|
|
229
|
-
|
|
230
|
-
'hiddenBlockTypes'
|
|
231
|
-
) ?? EMPTY_ARRAY
|
|
241
|
+
select( preferencesStore ).get( 'core', 'hiddenBlockTypes' ) ??
|
|
242
|
+
EMPTY_ARRAY
|
|
232
243
|
);
|
|
233
244
|
} );
|
|
234
245
|
|
|
@@ -583,12 +594,27 @@ export const getEditedPostTemplate = createRegistrySelector(
|
|
|
583
594
|
}
|
|
584
595
|
|
|
585
596
|
const post = select( editorStore ).getCurrentPost();
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
597
|
+
let slugToCheck;
|
|
598
|
+
// In `draft` status we might not have a slug available, so we use the `single`
|
|
599
|
+
// post type templates slug(ex page, single-post, single-product etc..).
|
|
600
|
+
// Pages do not need the `single` prefix in the slug to be prioritized
|
|
601
|
+
// through template hierarchy.
|
|
602
|
+
if ( post.slug ) {
|
|
603
|
+
slugToCheck =
|
|
604
|
+
post.type === 'page'
|
|
605
|
+
? `${ post.type }-${ post.slug }`
|
|
606
|
+
: `single-${ post.type }-${ post.slug }`;
|
|
607
|
+
} else {
|
|
608
|
+
slugToCheck =
|
|
609
|
+
post.type === 'page' ? 'page' : `single-${ post.type }`;
|
|
590
610
|
}
|
|
591
|
-
|
|
592
|
-
|
|
611
|
+
const defaultTemplateId = select( coreStore ).getDefaultTemplateId( {
|
|
612
|
+
slug: slugToCheck,
|
|
613
|
+
} );
|
|
614
|
+
return select( coreStore ).getEditedEntityRecord(
|
|
615
|
+
'postType',
|
|
616
|
+
'wp_template',
|
|
617
|
+
defaultTemplateId
|
|
618
|
+
);
|
|
593
619
|
}
|
|
594
620
|
);
|
|
@@ -154,16 +154,13 @@ describe( 'actions', () => {
|
|
|
154
154
|
|
|
155
155
|
expect(
|
|
156
156
|
registry
|
|
157
|
-
.select(
|
|
158
|
-
.
|
|
157
|
+
.select( preferencesStore )
|
|
158
|
+
.get( 'core', 'hiddenBlockTypes' )
|
|
159
159
|
).toEqual( expected );
|
|
160
160
|
|
|
161
161
|
expect(
|
|
162
162
|
registry.select( editPostStore ).getHiddenBlockTypes()
|
|
163
163
|
).toEqual( expected );
|
|
164
|
-
|
|
165
|
-
// Expect a deprecation message for `getPreference`.
|
|
166
|
-
expect( console ).toHaveWarned();
|
|
167
164
|
} );
|
|
168
165
|
} );
|
|
169
166
|
|
|
@@ -177,8 +174,8 @@ describe( 'actions', () => {
|
|
|
177
174
|
|
|
178
175
|
expect(
|
|
179
176
|
registry
|
|
180
|
-
.select(
|
|
181
|
-
.
|
|
177
|
+
.select( preferencesStore )
|
|
178
|
+
.get( 'core', 'hiddenBlockTypes' )
|
|
182
179
|
).toEqual( expectedA );
|
|
183
180
|
|
|
184
181
|
expect(
|
|
@@ -193,8 +190,8 @@ describe( 'actions', () => {
|
|
|
193
190
|
|
|
194
191
|
expect(
|
|
195
192
|
registry
|
|
196
|
-
.select(
|
|
197
|
-
.
|
|
193
|
+
.select( preferencesStore )
|
|
194
|
+
.get( 'core', 'hiddenBlockTypes' )
|
|
198
195
|
).toEqual( expectedB );
|
|
199
196
|
|
|
200
197
|
expect(
|
|
@@ -220,6 +217,9 @@ describe( 'actions', () => {
|
|
|
220
217
|
'core/paragraph': 'fancy',
|
|
221
218
|
'core/quote': 'posh',
|
|
222
219
|
} );
|
|
220
|
+
|
|
221
|
+
// Expect a deprecation message for `getPreference`.
|
|
222
|
+
expect( console ).toHaveWarned();
|
|
223
223
|
} );
|
|
224
224
|
|
|
225
225
|
it( 'removes a preferred style variation for a block when a style name is omitted', () => {
|
package/src/style.scss
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
@import "./components/header/fullscreen-mode-close/style.scss";
|
|
4
4
|
@import "./components/keyboard-shortcut-help-modal/style.scss";
|
|
5
5
|
@import "./components/layout/style.scss";
|
|
6
|
-
@import "./components/block-manager/style.scss";
|
|
7
6
|
@import "./components/meta-boxes/meta-boxes-area/style.scss";
|
|
8
7
|
@import "./components/sidebar/style.scss";
|
|
9
8
|
@import "./components/sidebar/post-format/style.scss";
|