@wordpress/edit-post 5.0.1 → 5.0.5

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.
Files changed (162) hide show
  1. package/README.md +2 -5
  2. package/build/components/header/fullscreen-mode-close/index.js +19 -3
  3. package/build/components/header/fullscreen-mode-close/index.js.map +1 -1
  4. package/build/components/header/header-toolbar/index.native.js +10 -3
  5. package/build/components/header/header-toolbar/index.native.js.map +1 -1
  6. package/build/components/header/more-menu/index.js +3 -14
  7. package/build/components/header/more-menu/index.js.map +1 -1
  8. package/build/components/header/template-title/index.js +1 -1
  9. package/build/components/header/template-title/index.js.map +1 -1
  10. package/build/components/header/writing-menu/index.js +7 -10
  11. package/build/components/header/writing-menu/index.js.map +1 -1
  12. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +1 -1
  13. package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  14. package/build/components/keyboard-shortcut-help-modal/index.js +1 -3
  15. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  16. package/build/components/keyboard-shortcuts/index.js +1 -8
  17. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  18. package/build/components/layout/index.js +3 -5
  19. package/build/components/layout/index.js.map +1 -1
  20. package/build/components/layout/index.native.js +5 -1
  21. package/build/components/layout/index.native.js.map +1 -1
  22. package/build/components/meta-boxes/index.js +37 -20
  23. package/build/components/meta-boxes/index.js.map +1 -1
  24. package/build/components/preferences-modal/index.js +56 -18
  25. package/build/components/preferences-modal/index.js.map +1 -1
  26. package/build/components/secondary-sidebar/inserter-sidebar.js +2 -1
  27. package/build/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
  28. package/build/components/secondary-sidebar/list-view-sidebar.js +1 -0
  29. package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  30. package/build/components/sidebar/plugin-sidebar/index.js +1 -1
  31. package/build/components/sidebar/plugin-sidebar/index.js.map +1 -1
  32. package/build/components/sidebar/post-link/index.js +1 -1
  33. package/build/components/sidebar/post-link/index.js.map +1 -1
  34. package/build/components/sidebar/template/actions.js +6 -1
  35. package/build/components/sidebar/template/actions.js.map +1 -1
  36. package/build/components/sidebar/template/index.js +5 -2
  37. package/build/components/sidebar/template/index.js.map +1 -1
  38. package/build/components/sidebar/template-summary/index.js +2 -1
  39. package/build/components/sidebar/template-summary/index.js.map +1 -1
  40. package/build/components/visual-editor/index.js +6 -4
  41. package/build/components/visual-editor/index.js.map +1 -1
  42. package/build/editor.js +17 -5
  43. package/build/editor.js.map +1 -1
  44. package/build/hooks/validate-multiple-use/index.js +1 -1
  45. package/build/hooks/validate-multiple-use/index.js.map +1 -1
  46. package/build/index.js +28 -12
  47. package/build/index.js.map +1 -1
  48. package/build/plugins/welcome-guide-menu-item/index.js +6 -7
  49. package/build/plugins/welcome-guide-menu-item/index.js.map +1 -1
  50. package/build/store/actions.js +68 -59
  51. package/build/store/actions.js.map +1 -1
  52. package/build/store/defaults.js +0 -9
  53. package/build/store/defaults.js.map +1 -1
  54. package/build/store/reducer.js +20 -11
  55. package/build/store/reducer.js.map +1 -1
  56. package/build/store/selectors.js +24 -10
  57. package/build/store/selectors.js.map +1 -1
  58. package/build-module/components/header/fullscreen-mode-close/index.js +19 -4
  59. package/build-module/components/header/fullscreen-mode-close/index.js.map +1 -1
  60. package/build-module/components/header/header-toolbar/index.native.js +11 -4
  61. package/build-module/components/header/header-toolbar/index.native.js.map +1 -1
  62. package/build-module/components/header/more-menu/index.js +5 -15
  63. package/build-module/components/header/more-menu/index.js.map +1 -1
  64. package/build-module/components/header/template-title/index.js +1 -1
  65. package/build-module/components/header/template-title/index.js.map +1 -1
  66. package/build-module/components/header/writing-menu/index.js +7 -8
  67. package/build-module/components/header/writing-menu/index.js.map +1 -1
  68. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +1 -1
  69. package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +1 -1
  70. package/build-module/components/keyboard-shortcut-help-modal/index.js +1 -3
  71. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  72. package/build-module/components/keyboard-shortcuts/index.js +1 -8
  73. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  74. package/build-module/components/layout/index.js +4 -6
  75. package/build-module/components/layout/index.js.map +1 -1
  76. package/build-module/components/layout/index.native.js +5 -1
  77. package/build-module/components/layout/index.native.js.map +1 -1
  78. package/build-module/components/meta-boxes/index.js +38 -20
  79. package/build-module/components/meta-boxes/index.js.map +1 -1
  80. package/build-module/components/preferences-modal/index.js +57 -20
  81. package/build-module/components/preferences-modal/index.js.map +1 -1
  82. package/build-module/components/secondary-sidebar/inserter-sidebar.js +2 -1
  83. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +1 -1
  84. package/build-module/components/secondary-sidebar/list-view-sidebar.js +1 -0
  85. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
  86. package/build-module/components/sidebar/plugin-sidebar/index.js +1 -1
  87. package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -1
  88. package/build-module/components/sidebar/post-link/index.js +1 -1
  89. package/build-module/components/sidebar/post-link/index.js.map +1 -1
  90. package/build-module/components/sidebar/template/actions.js +6 -1
  91. package/build-module/components/sidebar/template/actions.js.map +1 -1
  92. package/build-module/components/sidebar/template/index.js +5 -2
  93. package/build-module/components/sidebar/template/index.js.map +1 -1
  94. package/build-module/components/sidebar/template-summary/index.js +2 -1
  95. package/build-module/components/sidebar/template-summary/index.js.map +1 -1
  96. package/build-module/components/visual-editor/index.js +6 -4
  97. package/build-module/components/visual-editor/index.js.map +1 -1
  98. package/build-module/editor.js +17 -6
  99. package/build-module/editor.js.map +1 -1
  100. package/build-module/hooks/validate-multiple-use/index.js +1 -1
  101. package/build-module/hooks/validate-multiple-use/index.js.map +1 -1
  102. package/build-module/index.js +18 -5
  103. package/build-module/index.js.map +1 -1
  104. package/build-module/plugins/welcome-guide-menu-item/index.js +7 -8
  105. package/build-module/plugins/welcome-guide-menu-item/index.js.map +1 -1
  106. package/build-module/store/actions.js +66 -59
  107. package/build-module/store/actions.js.map +1 -1
  108. package/build-module/store/defaults.js +0 -9
  109. package/build-module/store/defaults.js.map +1 -1
  110. package/build-module/store/reducer.js +20 -11
  111. package/build-module/store/reducer.js.map +1 -1
  112. package/build-module/store/selectors.js +20 -7
  113. package/build-module/store/selectors.js.map +1 -1
  114. package/build-style/style-rtl.css +68 -69
  115. package/build-style/style.css +68 -69
  116. package/package.json +27 -27
  117. package/src/components/header/fullscreen-mode-close/index.js +37 -15
  118. package/src/components/header/fullscreen-mode-close/style.scss +2 -2
  119. package/src/components/header/header-toolbar/index.native.js +8 -2
  120. package/src/components/header/more-menu/index.js +8 -13
  121. package/src/components/header/template-title/index.js +3 -1
  122. package/src/components/header/writing-menu/index.js +7 -8
  123. package/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +15 -12
  124. package/src/components/keyboard-shortcut-help-modal/index.js +1 -3
  125. package/src/components/keyboard-shortcut-help-modal/test/__snapshots__/index.js.snap +2 -2
  126. package/src/components/keyboard-shortcuts/index.js +19 -32
  127. package/src/components/layout/index.js +4 -10
  128. package/src/components/layout/index.native.js +7 -1
  129. package/src/components/meta-boxes/index.js +35 -14
  130. package/src/components/preferences-modal/index.js +93 -30
  131. package/src/components/preferences-modal/style.scss +6 -56
  132. package/src/components/preferences-modal/test/__snapshots__/index.js.snap +334 -136
  133. package/src/components/secondary-sidebar/inserter-sidebar.js +1 -0
  134. package/src/components/secondary-sidebar/list-view-sidebar.js +1 -0
  135. package/src/components/sidebar/plugin-sidebar/index.js +1 -1
  136. package/src/components/sidebar/post-link/index.js +5 -1
  137. package/src/components/sidebar/template/actions.js +6 -1
  138. package/src/components/sidebar/template/index.js +5 -3
  139. package/src/components/sidebar/template-summary/index.js +1 -1
  140. package/src/components/sidebar/template-summary/style.scss +2 -1
  141. package/src/components/text-editor/style.scss +12 -22
  142. package/src/components/visual-editor/index.js +16 -10
  143. package/src/components/visual-editor/style.scss +4 -7
  144. package/src/components/welcome-guide/style.scss +5 -0
  145. package/src/editor.js +101 -79
  146. package/src/hooks/validate-multiple-use/index.js +1 -1
  147. package/src/index.js +18 -5
  148. package/src/plugins/welcome-guide-menu-item/index.js +7 -12
  149. package/src/store/actions.js +99 -80
  150. package/src/store/defaults.js +0 -9
  151. package/src/store/reducer.js +17 -10
  152. package/src/store/selectors.js +27 -7
  153. package/src/store/test/actions.js +0 -11
  154. package/src/store/test/reducer.js +0 -12
  155. package/src/store/test/selectors.js +0 -46
  156. package/build/components/header/feature-toggle/index.js +0 -76
  157. package/build/components/header/feature-toggle/index.js.map +0 -1
  158. package/build-module/components/header/feature-toggle/index.js +0 -60
  159. package/build-module/components/header/feature-toggle/index.js.map +0 -1
  160. package/src/components/header/feature-toggle/index.js +0 -61
  161. package/src/components/header/more-menu/test/__snapshots__/index.js.snap +0 -129
  162. package/src/components/header/more-menu/test/index.js +0 -17
@@ -43,16 +43,10 @@ import { __ } from '@wordpress/i18n';
43
43
  import BlockInspectorButton from './block-inspector-button';
44
44
  import { store as editPostStore } from '../../store';
45
45
 
46
- function MaybeIframe( {
47
- children,
48
- contentRef,
49
- isTemplateMode,
50
- styles,
51
- style,
52
- } ) {
46
+ function MaybeIframe( { children, contentRef, shouldIframe, styles, style } ) {
53
47
  const ref = useMouseMoveTypingReset();
54
48
 
55
- if ( ! isTemplateMode ) {
49
+ if ( ! shouldIframe ) {
56
50
  return (
57
51
  <>
58
52
  <EditorStyles styles={ styles } />
@@ -74,6 +68,7 @@ function MaybeIframe( {
74
68
  ref={ ref }
75
69
  contentRef={ contentRef }
76
70
  style={ { width: '100%', height: '100%', display: 'block' } }
71
+ name="editor-canvas"
77
72
  >
78
73
  { children }
79
74
  </Iframe>
@@ -216,7 +211,11 @@ export default function VisualEditor( { styles } ) {
216
211
  className={ previewMode }
217
212
  >
218
213
  <MaybeIframe
219
- isTemplateMode={ isTemplateMode }
214
+ shouldIframe={
215
+ isTemplateMode ||
216
+ deviceType === 'Tablet' ||
217
+ deviceType === 'Mobile'
218
+ }
220
219
  contentRef={ contentRef }
221
220
  styles={ styles }
222
221
  style={ { paddingBottom } }
@@ -233,7 +232,14 @@ export default function VisualEditor( { styles } ) {
233
232
  </div>
234
233
  ) }
235
234
  <RecursionProvider>
236
- <BlockList __experimentalLayout={ layout } />
235
+ <BlockList
236
+ className={
237
+ isTemplateMode
238
+ ? 'wp-site-blocks'
239
+ : undefined
240
+ }
241
+ __experimentalLayout={ layout }
242
+ />
237
243
  </RecursionProvider>
238
244
  </MaybeIframe>
239
245
  </motion.div>
@@ -39,17 +39,14 @@
39
39
  // We need to have two DOM elements.
40
40
  .edit-post-visual-editor__post-title-wrapper {
41
41
  .editor-post-title {
42
- // Add some top margin.
43
- margin-top: 2em;
44
-
45
42
  // Center.
46
43
  margin-left: auto;
47
44
  margin-right: auto;
48
-
49
- // Margins between the title and the first block, or appender, do not collapse.
50
- // By explicitly setting this to zero, we avoid "double margin".
51
- margin-bottom: 0;
52
45
  }
46
+
47
+ // Add extra margin at the top, to push down the Title area in the post editor.
48
+ margin-top: 4rem;
49
+ margin-bottom: var(--wp--style--block-gap);
53
50
  }
54
51
 
55
52
  .edit-post-visual-editor__exit-template-mode {
@@ -4,6 +4,11 @@
4
4
  &__image {
5
5
  background: #00a0d2;
6
6
  margin: 0 0 $grid-unit-20;
7
+ > img {
8
+ display: block;
9
+ max-width: 100%;
10
+ object-fit: cover;
11
+ }
7
12
  }
8
13
 
9
14
  &__heading {
package/src/editor.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { size, map, without, omit } from 'lodash';
4
+ import { size, map, without } from 'lodash';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -17,6 +17,7 @@ import {
17
17
  import { StrictMode, useMemo } from '@wordpress/element';
18
18
  import { KeyboardShortcuts, SlotFillProvider } from '@wordpress/components';
19
19
  import { store as coreStore } from '@wordpress/core-data';
20
+ import { ShortcutProvider } from '@wordpress/keyboard-shortcuts';
20
21
 
21
22
  /**
22
23
  * Internal dependencies
@@ -48,60 +49,64 @@ function Editor( {
48
49
  keepCaretInsideBlock,
49
50
  isTemplateMode,
50
51
  template,
51
- } = useSelect( ( select ) => {
52
- const {
53
- isFeatureActive,
54
- getPreference,
55
- __experimentalGetPreviewDeviceType,
56
- isEditingTemplate,
57
- getEditedPostTemplate,
58
- } = select( editPostStore );
59
- const { getEntityRecord, getPostType, getEntityRecords } = select(
60
- coreStore
61
- );
62
- const { getEditorSettings } = select( editorStore );
63
- const { getBlockTypes } = select( blocksStore );
64
- const isTemplate = [ 'wp_template', 'wp_template_part' ].includes(
65
- postType
66
- );
67
- // Ideally the initializeEditor function should be called using the ID of the REST endpoint.
68
- // to avoid the special case.
69
- let postObject;
70
- if ( isTemplate ) {
71
- const posts = getEntityRecords( 'postType', postType, {
72
- wp_id: postId,
73
- } );
74
- postObject = posts?.[ 0 ];
75
- } else {
76
- postObject = getEntityRecord( 'postType', postType, postId );
77
- }
78
- const supportsTemplateMode = getEditorSettings().supportsTemplateMode;
79
- const isViewable = getPostType( postType )?.viewable ?? false;
52
+ } = useSelect(
53
+ ( select ) => {
54
+ const {
55
+ isFeatureActive,
56
+ getPreference,
57
+ __experimentalGetPreviewDeviceType,
58
+ isEditingTemplate,
59
+ getEditedPostTemplate,
60
+ } = select( editPostStore );
61
+ const { getEntityRecord, getPostType, getEntityRecords } = select(
62
+ coreStore
63
+ );
64
+ const { getEditorSettings } = select( editorStore );
65
+ const { getBlockTypes } = select( blocksStore );
66
+ const isTemplate = [ 'wp_template', 'wp_template_part' ].includes(
67
+ postType
68
+ );
69
+ // Ideally the initializeEditor function should be called using the ID of the REST endpoint.
70
+ // to avoid the special case.
71
+ let postObject;
72
+ if ( isTemplate ) {
73
+ const posts = getEntityRecords( 'postType', postType, {
74
+ wp_id: postId,
75
+ } );
76
+ postObject = posts?.[ 0 ];
77
+ } else {
78
+ postObject = getEntityRecord( 'postType', postType, postId );
79
+ }
80
+ const supportsTemplateMode = getEditorSettings()
81
+ .supportsTemplateMode;
82
+ const isViewable = getPostType( postType )?.viewable ?? false;
80
83
 
81
- return {
82
- hasFixedToolbar:
83
- isFeatureActive( 'fixedToolbar' ) ||
84
- __experimentalGetPreviewDeviceType() !== 'Desktop',
85
- focusMode: isFeatureActive( 'focusMode' ),
86
- hasReducedUI: isFeatureActive( 'reducedUI' ),
87
- hasThemeStyles: isFeatureActive( 'themeStyles' ),
88
- preferredStyleVariations: getPreference(
89
- 'preferredStyleVariations'
90
- ),
91
- hiddenBlockTypes: getPreference( 'hiddenBlockTypes' ),
92
- blockTypes: getBlockTypes(),
93
- __experimentalLocalAutosaveInterval: getPreference(
94
- 'localAutosaveInterval'
95
- ),
96
- keepCaretInsideBlock: isFeatureActive( 'keepCaretInsideBlock' ),
97
- isTemplateMode: isEditingTemplate(),
98
- template:
99
- supportsTemplateMode && isViewable
100
- ? getEditedPostTemplate()
101
- : null,
102
- post: postObject,
103
- };
104
- } );
84
+ return {
85
+ hasFixedToolbar:
86
+ isFeatureActive( 'fixedToolbar' ) ||
87
+ __experimentalGetPreviewDeviceType() !== 'Desktop',
88
+ focusMode: isFeatureActive( 'focusMode' ),
89
+ hasReducedUI: isFeatureActive( 'reducedUI' ),
90
+ hasThemeStyles: isFeatureActive( 'themeStyles' ),
91
+ preferredStyleVariations: getPreference(
92
+ 'preferredStyleVariations'
93
+ ),
94
+ hiddenBlockTypes: getPreference( 'hiddenBlockTypes' ),
95
+ blockTypes: getBlockTypes(),
96
+ __experimentalLocalAutosaveInterval: getPreference(
97
+ 'localAutosaveInterval'
98
+ ),
99
+ keepCaretInsideBlock: isFeatureActive( 'keepCaretInsideBlock' ),
100
+ isTemplateMode: isEditingTemplate(),
101
+ template:
102
+ supportsTemplateMode && isViewable
103
+ ? getEditedPostTemplate()
104
+ : null,
105
+ post: postObject,
106
+ };
107
+ },
108
+ [ postType, postId ]
109
+ );
105
110
 
106
111
  const { updatePreferredStyleVariations, setIsInserterOpened } = useDispatch(
107
112
  editPostStore
@@ -109,7 +114,7 @@ function Editor( {
109
114
 
110
115
  const editorSettings = useMemo( () => {
111
116
  const result = {
112
- ...omit( settings, [ 'styles' ] ),
117
+ ...settings,
113
118
  __experimentalPreferredStyleVariations: {
114
119
  value: preferredStyleVariations,
115
120
  onChange: updatePreferredStyleVariations,
@@ -156,7 +161,22 @@ function Editor( {
156
161
  ] );
157
162
 
158
163
  const styles = useMemo( () => {
159
- return hasThemeStyles ? settings.styles : [];
164
+ const themeStyles = [];
165
+ const presetStyles = [];
166
+ settings.styles.forEach( ( style ) => {
167
+ if ( ! style.__unstableType || style.__unstableType === 'theme' ) {
168
+ themeStyles.push( style );
169
+ } else {
170
+ presetStyles.push( style );
171
+ }
172
+ } );
173
+ const defaultEditorStyles = [
174
+ ...settings.defaultEditorStyles,
175
+ ...presetStyles,
176
+ ];
177
+ return hasThemeStyles && themeStyles.length
178
+ ? settings.styles
179
+ : defaultEditorStyles;
160
180
  }, [ settings, hasThemeStyles ] );
161
181
 
162
182
  if ( ! post ) {
@@ -165,29 +185,31 @@ function Editor( {
165
185
 
166
186
  return (
167
187
  <StrictMode>
168
- <EditPostSettings.Provider value={ settings }>
169
- <SlotFillProvider>
170
- <EditorProvider
171
- settings={ editorSettings }
172
- post={ post }
173
- initialEdits={ initialEdits }
174
- useSubRegistry={ false }
175
- __unstableTemplate={
176
- isTemplateMode ? template : undefined
177
- }
178
- { ...props }
179
- >
180
- <ErrorBoundary onError={ onError }>
181
- <EditorInitialization postId={ postId } />
182
- <Layout styles={ styles } />
183
- <KeyboardShortcuts
184
- shortcuts={ preventEventDiscovery }
185
- />
186
- </ErrorBoundary>
187
- <PostLockedModal />
188
- </EditorProvider>
189
- </SlotFillProvider>
190
- </EditPostSettings.Provider>
188
+ <ShortcutProvider>
189
+ <EditPostSettings.Provider value={ settings }>
190
+ <SlotFillProvider>
191
+ <EditorProvider
192
+ settings={ editorSettings }
193
+ post={ post }
194
+ initialEdits={ initialEdits }
195
+ useSubRegistry={ false }
196
+ __unstableTemplate={
197
+ isTemplateMode ? template : undefined
198
+ }
199
+ { ...props }
200
+ >
201
+ <ErrorBoundary onError={ onError }>
202
+ <EditorInitialization postId={ postId } />
203
+ <Layout styles={ styles } />
204
+ <KeyboardShortcuts
205
+ shortcuts={ preventEventDiscovery }
206
+ />
207
+ </ErrorBoundary>
208
+ <PostLockedModal />
209
+ </EditorProvider>
210
+ </SlotFillProvider>
211
+ </EditPostSettings.Provider>
212
+ </ShortcutProvider>
191
213
  </StrictMode>
192
214
  );
193
215
  }
@@ -108,7 +108,7 @@ const withMultipleValidation = createHigherOrderComponent( ( BlockEdit ) => {
108
108
  ),
109
109
  ] }
110
110
  >
111
- <strong>{ blockType.title }: </strong>
111
+ <strong>{ blockType?.title }: </strong>
112
112
  { __( 'This block can only be used once.' ) }
113
113
  </Warning>,
114
114
  ];
package/src/index.js CHANGED
@@ -1,18 +1,20 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
+ import { store as blocksStore } from '@wordpress/blocks';
4
5
  import {
5
6
  registerCoreBlocks,
6
7
  __experimentalRegisterExperimentalCoreBlocks,
7
8
  } from '@wordpress/block-library';
8
9
  import { render, unmountComponentAtNode } from '@wordpress/element';
10
+ import { dispatch } from '@wordpress/data';
11
+ import { store as interfaceStore } from '@wordpress/interface';
9
12
 
10
13
  /**
11
14
  * Internal dependencies
12
15
  */
13
16
  import './hooks';
14
17
  import './plugins';
15
- export { store } from './store';
16
18
  import Editor from './editor';
17
19
 
18
20
  /**
@@ -61,11 +63,8 @@ export function reinitializeEditor(
61
63
  /**
62
64
  * Initializes and returns an instance of Editor.
63
65
  *
64
- * The return value of this function is not necessary if we change where we
65
- * call initializeEditor(). This is due to metaBox timing.
66
- *
67
66
  * @param {string} id Unique identifier for editor instance.
68
- * @param {Object} postType Post type of the post to edit.
67
+ * @param {string} postType Post type of the post to edit.
69
68
  * @param {Object} postId ID of the post to edit.
70
69
  * @param {?Object} settings Editor settings object.
71
70
  * @param {Object} initialEdits Programmatic edits to apply initially, to be
@@ -88,6 +87,19 @@ export function initializeEditor(
88
87
  settings,
89
88
  initialEdits
90
89
  );
90
+
91
+ dispatch( interfaceStore ).setFeatureDefaults( 'core/edit-post', {
92
+ fixedToolbar: false,
93
+ welcomeGuide: true,
94
+ mobileGalleryWarning: true,
95
+ fullscreenMode: true,
96
+ showIconLabels: false,
97
+ themeStyles: true,
98
+ showBlockBreadcrumbs: true,
99
+ welcomeGuideTemplate: true,
100
+ } );
101
+
102
+ dispatch( blocksStore ).__experimentalReapplyBlockTypeFilters();
91
103
  registerCoreBlocks();
92
104
  if ( process.env.GUTENBERG_PHASE === 2 ) {
93
105
  __experimentalRegisterExperimentalCoreBlocks( {
@@ -157,3 +169,4 @@ export { default as PluginSidebar } from './components/sidebar/plugin-sidebar';
157
169
  export { default as PluginSidebarMoreMenuItem } from './components/header/plugin-sidebar-more-menu-item';
158
170
  export { default as __experimentalFullscreenModeClose } from './components/header/fullscreen-mode-close';
159
171
  export { default as __experimentalMainDashboardButton } from './components/header/main-dashboard-button';
172
+ export { store } from './store';
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useSelect, useDispatch } from '@wordpress/data';
5
- import { MenuItem } from '@wordpress/components';
4
+ import { useSelect } from '@wordpress/data';
5
+ import { MoreMenuFeatureToggle } from '@wordpress/interface';
6
6
  import { __ } from '@wordpress/i18n';
7
7
 
8
8
  /**
@@ -15,17 +15,12 @@ export default function WelcomeGuideMenuItem() {
15
15
  ( select ) => select( editPostStore ).isEditingTemplate(),
16
16
  []
17
17
  );
18
- const { toggleFeature } = useDispatch( editPostStore );
19
18
 
20
19
  return (
21
- <MenuItem
22
- onClick={ () =>
23
- toggleFeature(
24
- isTemplateMode ? 'welcomeGuideTemplate' : 'welcomeGuide'
25
- )
26
- }
27
- >
28
- { __( 'Welcome Guide' ) }
29
- </MenuItem>
20
+ <MoreMenuFeatureToggle
21
+ scope="core/edit-post"
22
+ feature={ isTemplateMode ? 'welcomeGuideTemplate' : 'welcomeGuide' }
23
+ label={ __( 'Welcome Guide' ) }
24
+ />
30
25
  );
31
26
  }