@wordpress/edit-post 7.25.0 → 7.26.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.
Files changed (199) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/LICENSE.md +1 -1
  3. package/build/components/browser-url/index.js +3 -2
  4. package/build/components/browser-url/index.js.map +1 -1
  5. package/build/components/header/index.js +25 -25
  6. package/build/components/header/index.js.map +1 -1
  7. package/build/components/header/writing-menu/index.js +11 -8
  8. package/build/components/header/writing-menu/index.js.map +1 -1
  9. package/build/components/keyboard-shortcuts/index.js +1 -20
  10. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  11. package/build/components/layout/index.js +33 -26
  12. package/build/components/layout/index.js.map +1 -1
  13. package/build/components/layout/index.native.js +3 -1
  14. package/build/components/layout/index.native.js.map +1 -1
  15. package/build/components/meta-boxes/meta-box-visibility.js +2 -6
  16. package/build/components/meta-boxes/meta-box-visibility.js.map +1 -1
  17. package/build/components/preferences-modal/index.js +25 -8
  18. package/build/components/preferences-modal/index.js.map +1 -1
  19. package/build/components/preferences-modal/options/enable-feature.js +23 -23
  20. package/build/components/preferences-modal/options/enable-feature.js.map +1 -1
  21. package/build/components/preferences-modal/options/enable-panel.js +3 -6
  22. package/build/components/preferences-modal/options/enable-panel.js.map +1 -1
  23. package/build/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  24. package/build/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
  25. package/build/components/sidebar/plugin-sidebar/index.js +2 -10
  26. package/build/components/sidebar/plugin-sidebar/index.js.map +1 -1
  27. package/build/components/sidebar/post-status/index.js +2 -3
  28. package/build/components/sidebar/post-status/index.js.map +1 -1
  29. package/build/components/sidebar/settings-sidebar/index.js +1 -7
  30. package/build/components/sidebar/settings-sidebar/index.js.map +1 -1
  31. package/build/editor.js +19 -28
  32. package/build/editor.js.map +1 -1
  33. package/build/editor.native.js +3 -10
  34. package/build/editor.native.js.map +1 -1
  35. package/build/hooks/commands/use-common-commands.js +16 -12
  36. package/build/hooks/commands/use-common-commands.js.map +1 -1
  37. package/build/hooks/use-post-history.js +79 -0
  38. package/build/hooks/use-post-history.js.map +1 -0
  39. package/build/index.js +19 -16
  40. package/build/index.js.map +1 -1
  41. package/build/index.native.js +7 -1
  42. package/build/index.native.js.map +1 -1
  43. package/build/store/actions.js +59 -73
  44. package/build/store/actions.js.map +1 -1
  45. package/build/store/reducer.js +1 -62
  46. package/build/store/reducer.js.map +1 -1
  47. package/build/store/selectors.js +66 -38
  48. package/build/store/selectors.js.map +1 -1
  49. package/build-module/components/browser-url/index.js +3 -2
  50. package/build-module/components/browser-url/index.js.map +1 -1
  51. package/build-module/components/header/index.js +25 -25
  52. package/build-module/components/header/index.js.map +1 -1
  53. package/build-module/components/header/writing-menu/index.js +11 -8
  54. package/build-module/components/header/writing-menu/index.js.map +1 -1
  55. package/build-module/components/keyboard-shortcuts/index.js +1 -20
  56. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  57. package/build-module/components/layout/index.js +33 -25
  58. package/build-module/components/layout/index.js.map +1 -1
  59. package/build-module/components/layout/index.native.js +4 -2
  60. package/build-module/components/layout/index.native.js.map +1 -1
  61. package/build-module/components/meta-boxes/meta-box-visibility.js +2 -6
  62. package/build-module/components/meta-boxes/meta-box-visibility.js.map +1 -1
  63. package/build-module/components/preferences-modal/index.js +25 -8
  64. package/build-module/components/preferences-modal/index.js.map +1 -1
  65. package/build-module/components/preferences-modal/options/enable-feature.js +22 -23
  66. package/build-module/components/preferences-modal/options/enable-feature.js.map +1 -1
  67. package/build-module/components/preferences-modal/options/enable-panel.js +3 -7
  68. package/build-module/components/preferences-modal/options/enable-panel.js.map +1 -1
  69. package/build-module/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  70. package/build-module/components/sidebar/plugin-document-setting-panel/index.js.map +1 -1
  71. package/build-module/components/sidebar/plugin-sidebar/index.js +2 -10
  72. package/build-module/components/sidebar/plugin-sidebar/index.js.map +1 -1
  73. package/build-module/components/sidebar/post-status/index.js +3 -4
  74. package/build-module/components/sidebar/post-status/index.js.map +1 -1
  75. package/build-module/components/sidebar/settings-sidebar/index.js +2 -8
  76. package/build-module/components/sidebar/settings-sidebar/index.js.map +1 -1
  77. package/build-module/editor.js +19 -28
  78. package/build-module/editor.js.map +1 -1
  79. package/build-module/editor.native.js +3 -10
  80. package/build-module/editor.native.js.map +1 -1
  81. package/build-module/hooks/commands/use-common-commands.js +16 -12
  82. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  83. package/build-module/hooks/use-post-history.js +73 -0
  84. package/build-module/hooks/use-post-history.js.map +1 -0
  85. package/build-module/index.js +17 -11
  86. package/build-module/index.js.map +1 -1
  87. package/build-module/index.native.js +7 -1
  88. package/build-module/index.native.js.map +1 -1
  89. package/build-module/store/actions.js +55 -69
  90. package/build-module/store/actions.js.map +1 -1
  91. package/build-module/store/reducer.js +1 -60
  92. package/build-module/store/reducer.js.map +1 -1
  93. package/build-module/store/selectors.js +58 -29
  94. package/build-module/store/selectors.js.map +1 -1
  95. package/build-style/style-rtl.css +13 -284
  96. package/build-style/style.css +13 -284
  97. package/package.json +32 -32
  98. package/src/components/browser-url/index.js +4 -2
  99. package/src/components/header/index.js +24 -40
  100. package/src/components/header/style.scss +3 -3
  101. package/src/components/header/writing-menu/index.js +10 -8
  102. package/src/components/keyboard-shortcut-help-modal/test/index.js +0 -15
  103. package/src/components/keyboard-shortcuts/index.js +1 -23
  104. package/src/components/layout/index.js +18 -27
  105. package/src/components/layout/index.native.js +9 -1
  106. package/src/components/meta-boxes/meta-box-visibility.js +2 -8
  107. package/src/components/preferences-modal/index.js +27 -9
  108. package/src/components/preferences-modal/options/enable-feature.js +26 -21
  109. package/src/components/preferences-modal/options/enable-panel.js +3 -7
  110. package/src/components/preferences-modal/test/__snapshots__/meta-boxes-section.js.snap +187 -175
  111. package/src/components/sidebar/plugin-document-setting-panel/index.js +3 -3
  112. package/src/components/sidebar/plugin-sidebar/index.js +1 -9
  113. package/src/components/sidebar/post-status/index.js +3 -3
  114. package/src/components/sidebar/settings-sidebar/index.js +15 -13
  115. package/src/components/text-editor/style.scss +0 -6
  116. package/src/editor.js +34 -33
  117. package/src/editor.native.js +2 -17
  118. package/src/hooks/commands/use-common-commands.js +14 -16
  119. package/src/hooks/use-post-history.js +73 -0
  120. package/src/index.js +22 -12
  121. package/src/index.native.js +8 -1
  122. package/src/store/actions.js +48 -85
  123. package/src/store/reducer.js +0 -60
  124. package/src/store/selectors.js +74 -46
  125. package/src/store/test/actions.js +10 -103
  126. package/src/store/test/reducer.js +1 -108
  127. package/src/store/test/selectors.js +0 -50
  128. package/src/style.scss +1 -5
  129. package/src/test/editor.native.js +17 -0
  130. package/build/components/header/header-toolbar/index.js +0 -160
  131. package/build/components/header/header-toolbar/index.js.map +0 -1
  132. package/build/components/secondary-sidebar/inserter-sidebar.js +0 -73
  133. package/build/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  134. package/build/components/secondary-sidebar/list-view-outline.js +0 -112
  135. package/build/components/secondary-sidebar/list-view-outline.js.map +0 -1
  136. package/build/components/secondary-sidebar/list-view-sidebar.js +0 -148
  137. package/build/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  138. package/build/components/sidebar/discussion-panel/index.js +0 -59
  139. package/build/components/sidebar/discussion-panel/index.js.map +0 -1
  140. package/build/components/sidebar/featured-image/index.js +0 -70
  141. package/build/components/sidebar/featured-image/index.js.map +0 -1
  142. package/build/components/sidebar/last-revision/index.js +0 -21
  143. package/build/components/sidebar/last-revision/index.js.map +0 -1
  144. package/build/components/sidebar/page-attributes/index.js +0 -65
  145. package/build/components/sidebar/page-attributes/index.js.map +0 -1
  146. package/build/components/sidebar/plugin-post-excerpt/index.js +0 -72
  147. package/build/components/sidebar/plugin-post-excerpt/index.js.map +0 -1
  148. package/build/components/sidebar/post-excerpt/index.js +0 -54
  149. package/build/components/sidebar/post-excerpt/index.js.map +0 -1
  150. package/build/components/sidebar/post-taxonomies/index.js +0 -30
  151. package/build/components/sidebar/post-taxonomies/index.js.map +0 -1
  152. package/build/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -56
  153. package/build/components/sidebar/post-taxonomies/taxonomy-panel.js.map +0 -1
  154. package/build/components/view-link/index.js +0 -53
  155. package/build/components/view-link/index.js.map +0 -1
  156. package/build-module/components/header/header-toolbar/index.js +0 -152
  157. package/build-module/components/header/header-toolbar/index.js.map +0 -1
  158. package/build-module/components/secondary-sidebar/inserter-sidebar.js +0 -66
  159. package/build-module/components/secondary-sidebar/inserter-sidebar.js.map +0 -1
  160. package/build-module/components/secondary-sidebar/list-view-outline.js +0 -105
  161. package/build-module/components/secondary-sidebar/list-view-outline.js.map +0 -1
  162. package/build-module/components/secondary-sidebar/list-view-sidebar.js +0 -140
  163. package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +0 -1
  164. package/build-module/components/sidebar/discussion-panel/index.js +0 -52
  165. package/build-module/components/sidebar/discussion-panel/index.js.map +0 -1
  166. package/build-module/components/sidebar/featured-image/index.js +0 -63
  167. package/build-module/components/sidebar/featured-image/index.js.map +0 -1
  168. package/build-module/components/sidebar/last-revision/index.js +0 -13
  169. package/build-module/components/sidebar/last-revision/index.js.map +0 -1
  170. package/build-module/components/sidebar/page-attributes/index.js +0 -57
  171. package/build-module/components/sidebar/page-attributes/index.js.map +0 -1
  172. package/build-module/components/sidebar/plugin-post-excerpt/index.js +0 -64
  173. package/build-module/components/sidebar/plugin-post-excerpt/index.js.map +0 -1
  174. package/build-module/components/sidebar/post-excerpt/index.js +0 -47
  175. package/build-module/components/sidebar/post-excerpt/index.js.map +0 -1
  176. package/build-module/components/sidebar/post-taxonomies/index.js +0 -21
  177. package/build-module/components/sidebar/post-taxonomies/index.js.map +0 -1
  178. package/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -48
  179. package/build-module/components/sidebar/post-taxonomies/taxonomy-panel.js.map +0 -1
  180. package/build-module/components/view-link/index.js +0 -46
  181. package/build-module/components/view-link/index.js.map +0 -1
  182. package/src/components/header/header-toolbar/index.js +0 -186
  183. package/src/components/header/header-toolbar/style.scss +0 -116
  184. package/src/components/keyboard-shortcut-help-modal/test/__snapshots__/index.js.snap +0 -929
  185. package/src/components/secondary-sidebar/inserter-sidebar.js +0 -71
  186. package/src/components/secondary-sidebar/list-view-outline.js +0 -98
  187. package/src/components/secondary-sidebar/list-view-sidebar.js +0 -170
  188. package/src/components/secondary-sidebar/style.scss +0 -120
  189. package/src/components/sidebar/discussion-panel/index.js +0 -62
  190. package/src/components/sidebar/featured-image/index.js +0 -67
  191. package/src/components/sidebar/last-revision/index.js +0 -17
  192. package/src/components/sidebar/last-revision/style.scss +0 -10
  193. package/src/components/sidebar/page-attributes/index.js +0 -65
  194. package/src/components/sidebar/plugin-post-excerpt/index.js +0 -61
  195. package/src/components/sidebar/plugin-post-excerpt/test/index.js +0 -36
  196. package/src/components/sidebar/post-excerpt/index.js +0 -59
  197. package/src/components/sidebar/post-taxonomies/index.js +0 -30
  198. package/src/components/sidebar/post-taxonomies/taxonomy-panel.js +0 -48
  199. package/src/components/view-link/index.js +0 -48
@@ -10,6 +10,7 @@ import {
10
10
  PreferenceToggleMenuItem,
11
11
  store as preferencesStore,
12
12
  } from '@wordpress/preferences';
13
+ import { store as editorStore } from '@wordpress/editor';
13
14
 
14
15
  /**
15
16
  * Internal dependencies
@@ -19,13 +20,14 @@ import { store as postEditorStore } from '../../../store';
19
20
  function WritingMenu() {
20
21
  const registry = useRegistry();
21
22
 
22
- const { setIsInserterOpened, setIsListViewOpened, closeGeneralSidebar } =
23
- useDispatch( postEditorStore );
23
+ const { closeGeneralSidebar } = useDispatch( postEditorStore );
24
24
  const { set: setPreference } = useDispatch( preferencesStore );
25
+ const { setIsInserterOpened, setIsListViewOpened } =
26
+ useDispatch( editorStore );
25
27
 
26
28
  const toggleDistractionFree = () => {
27
29
  registry.batch( () => {
28
- setPreference( 'core/edit-post', 'fixedToolbar', true );
30
+ setPreference( 'core', 'fixedToolbar', true );
29
31
  setIsInserterOpened( false );
30
32
  setIsListViewOpened( false );
31
33
  closeGeneralSidebar();
@@ -33,7 +35,7 @@ function WritingMenu() {
33
35
  };
34
36
 
35
37
  const turnOffDistractionFree = () => {
36
- setPreference( 'core/edit-post', 'distractionFree', false );
38
+ setPreference( 'core', 'distractionFree', false );
37
39
  };
38
40
 
39
41
  const isLargeViewport = useViewportMatch( 'medium' );
@@ -44,7 +46,7 @@ function WritingMenu() {
44
46
  return (
45
47
  <MenuGroup label={ _x( 'View', 'noun' ) }>
46
48
  <PreferenceToggleMenuItem
47
- scope="core/edit-post"
49
+ scope="core"
48
50
  name="fixedToolbar"
49
51
  onToggle={ turnOffDistractionFree }
50
52
  label={ __( 'Top toolbar' ) }
@@ -55,7 +57,7 @@ function WritingMenu() {
55
57
  messageDeactivated={ __( 'Top toolbar deactivated' ) }
56
58
  />
57
59
  <PreferenceToggleMenuItem
58
- scope="core/edit-post"
60
+ scope="core"
59
61
  name="distractionFree"
60
62
  onToggle={ toggleDistractionFree }
61
63
  label={ __( 'Distraction free' ) }
@@ -65,7 +67,7 @@ function WritingMenu() {
65
67
  shortcut={ displayShortcut.primaryShift( '\\' ) }
66
68
  />
67
69
  <PreferenceToggleMenuItem
68
- scope="core/edit-post"
70
+ scope="core"
69
71
  name="focusMode"
70
72
  label={ __( 'Spotlight mode' ) }
71
73
  info={ __( 'Focus on one block at a time' ) }
@@ -76,7 +78,7 @@ function WritingMenu() {
76
78
  scope="core/edit-post"
77
79
  name="fullscreenMode"
78
80
  label={ __( 'Fullscreen mode' ) }
79
- info={ __( 'Show and hide admin UI' ) }
81
+ info={ __( 'Show and hide the admin user interface' ) }
80
82
  messageActivated={ __( 'Fullscreen mode activated' ) }
81
83
  messageDeactivated={ __( 'Fullscreen mode deactivated' ) }
82
84
  shortcut={ displayShortcut.secondary( 'f' ) }
@@ -16,21 +16,6 @@ import { KeyboardShortcutHelpModal } from '../index';
16
16
  const noop = () => {};
17
17
 
18
18
  describe( 'KeyboardShortcutHelpModal', () => {
19
- it( 'should match snapshot when the modal is active', () => {
20
- render(
21
- <>
22
- <EditorKeyboardShortcutsRegister />
23
- <KeyboardShortcutHelpModal isModalActive toggleModal={ noop } />
24
- </>
25
- );
26
-
27
- expect(
28
- screen.getByRole( 'dialog', {
29
- name: 'Keyboard shortcuts',
30
- } )
31
- ).toMatchSnapshot();
32
- } );
33
-
34
19
  it( 'should not render the modal when inactive', () => {
35
20
  render(
36
21
  <>
@@ -18,24 +18,20 @@ import { createBlock } from '@wordpress/blocks';
18
18
  import { store as editPostStore } from '../../store';
19
19
 
20
20
  function KeyboardShortcuts() {
21
- const { getEditorMode, isEditorSidebarOpened, isListViewOpened } =
22
- useSelect( editPostStore );
21
+ const { getEditorMode, isEditorSidebarOpened } = useSelect( editPostStore );
23
22
  const isModeToggleDisabled = useSelect( ( select ) => {
24
23
  const { richEditingEnabled, codeEditingEnabled } =
25
24
  select( editorStore ).getEditorSettings();
26
25
  return ! richEditingEnabled || ! codeEditingEnabled;
27
26
  }, [] );
28
-
29
27
  const {
30
28
  switchEditorMode,
31
29
  openGeneralSidebar,
32
30
  closeGeneralSidebar,
33
31
  toggleFeature,
34
- setIsListViewOpened,
35
32
  toggleDistractionFree,
36
33
  } = useDispatch( editPostStore );
37
34
  const { registerShortcut } = useDispatch( keyboardShortcutsStore );
38
-
39
35
  const { replaceBlocks } = useDispatch( blockEditorStore );
40
36
  const {
41
37
  getBlockName,
@@ -103,16 +99,6 @@ function KeyboardShortcuts() {
103
99
  },
104
100
  } );
105
101
 
106
- registerShortcut( {
107
- name: 'core/edit-post/toggle-list-view',
108
- category: 'global',
109
- description: __( 'Open the block list view.' ),
110
- keyCombination: {
111
- modifier: 'access',
112
- character: 'o',
113
- },
114
- } );
115
-
116
102
  registerShortcut( {
117
103
  name: 'core/edit-post/toggle-sidebar',
118
104
  category: 'global',
@@ -227,14 +213,6 @@ function KeyboardShortcuts() {
227
213
  }
228
214
  } );
229
215
 
230
- // Only opens the list view. Other functionality for this shortcut happens in the rendered sidebar.
231
- useShortcut( 'core/edit-post/toggle-list-view', ( event ) => {
232
- if ( ! isListViewOpened() ) {
233
- event.preventDefault();
234
- setIsListViewOpened( true );
235
- }
236
- } );
237
-
238
216
  useShortcut( 'core/edit-post/transform-heading-to-paragraph', ( event ) =>
239
217
  handleTextLevelShortcut( event, 0 )
240
218
  );
@@ -16,6 +16,7 @@ import {
16
16
  EditorSnackbars,
17
17
  PostSyncStatusModal,
18
18
  store as editorStore,
19
+ privateApis as editorPrivateApis,
19
20
  } from '@wordpress/editor';
20
21
  import { useSelect, useDispatch } from '@wordpress/data';
21
22
  import {
@@ -38,13 +39,10 @@ import {
38
39
  import { useState, useEffect, useCallback, useMemo } from '@wordpress/element';
39
40
  import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
40
41
  import { store as noticesStore } from '@wordpress/notices';
41
-
42
+ import { store as preferencesStore } from '@wordpress/preferences';
42
43
  import { privateApis as commandsPrivateApis } from '@wordpress/commands';
43
44
  import { privateApis as coreCommandsPrivateApis } from '@wordpress/core-commands';
44
45
 
45
- const { useCommands } = unlock( coreCommandsPrivateApis );
46
- const { useCommandContext } = unlock( commandsPrivateApis );
47
-
48
46
  /**
49
47
  * Internal dependencies
50
48
  */
@@ -55,8 +53,6 @@ import KeyboardShortcutHelpModal from '../keyboard-shortcut-help-modal';
55
53
  import EditPostPreferencesModal from '../preferences-modal';
56
54
  import BrowserURL from '../browser-url';
57
55
  import Header from '../header';
58
- import InserterSidebar from '../secondary-sidebar/inserter-sidebar';
59
- import ListViewSidebar from '../secondary-sidebar/list-view-sidebar';
60
56
  import SettingsSidebar from '../sidebar/settings-sidebar';
61
57
  import MetaBoxes from '../meta-boxes';
62
58
  import WelcomeGuide from '../welcome-guide';
@@ -67,6 +63,9 @@ import { unlock } from '../../lock-unlock';
67
63
  import useCommonCommands from '../../hooks/commands/use-common-commands';
68
64
 
69
65
  const { getLayoutStyles } = unlock( blockEditorPrivateApis );
66
+ const { useCommands } = unlock( coreCommandsPrivateApis );
67
+ const { useCommandContext } = unlock( commandsPrivateApis );
68
+ const { InserterSidebar, ListViewSidebar } = unlock( editorPrivateApis );
70
69
 
71
70
  const interfaceLabels = {
72
71
  /* translators: accessibility text for the editor top bar landmark region. */
@@ -142,9 +141,10 @@ function Layout() {
142
141
  const isWideViewport = useViewportMatch( 'large' );
143
142
  const isLargeViewport = useViewportMatch( 'medium' );
144
143
 
145
- const { openGeneralSidebar, closeGeneralSidebar, setIsInserterOpened } =
144
+ const { openGeneralSidebar, closeGeneralSidebar } =
146
145
  useDispatch( editPostStore );
147
146
  const { createErrorNotice } = useDispatch( noticesStore );
147
+ const { setIsInserterOpened } = useDispatch( editorStore );
148
148
  const {
149
149
  mode,
150
150
  isFullscreenActive,
@@ -161,7 +161,9 @@ function Layout() {
161
161
  showBlockBreadcrumbs,
162
162
  showMetaBoxes,
163
163
  documentLabel,
164
+ hasHistory,
164
165
  } = useSelect( ( select ) => {
166
+ const { get } = select( preferencesStore );
165
167
  const { getEditorSettings, getPostTypeLabel } = select( editorStore );
166
168
  const editorSettings = getEditorSettings();
167
169
  const postTypeLabel = getPostTypeLabel();
@@ -176,8 +178,8 @@ function Layout() {
176
178
  ),
177
179
  isFullscreenActive:
178
180
  select( editPostStore ).isFeatureActive( 'fullscreenMode' ),
179
- isInserterOpened: select( editPostStore ).isInserterOpened(),
180
- isListViewOpened: select( editPostStore ).isListViewOpened(),
181
+ isInserterOpened: select( editorStore ).isInserterOpened(),
182
+ isListViewOpened: select( editorStore ).isListViewOpened(),
181
183
  mode: select( editPostStore ).getEditorMode(),
182
184
  isRichEditingEnabled: editorSettings.richEditingEnabled,
183
185
  hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),
@@ -187,17 +189,14 @@ function Layout() {
187
189
  nextShortcut: select(
188
190
  keyboardShortcutsStore
189
191
  ).getAllShortcutKeyCombinations( 'core/edit-post/next-region' ),
190
- showIconLabels:
191
- select( editPostStore ).isFeatureActive( 'showIconLabels' ),
192
- isDistractionFree:
193
- select( editPostStore ).isFeatureActive( 'distractionFree' ),
194
- showBlockBreadcrumbs: select( editPostStore ).isFeatureActive(
195
- 'showBlockBreadcrumbs'
196
- ),
192
+ showIconLabels: get( 'core', 'showIconLabels' ),
193
+ isDistractionFree: get( 'core', 'distractionFree' ),
194
+ showBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ),
197
195
  // translators: Default label for the Document in the Block Breadcrumb.
198
196
  documentLabel: postTypeLabel || _x( 'Document', 'noun' ),
199
197
  hasBlockSelected:
200
- select( blockEditorStore ).getBlockSelectionStart(),
198
+ !! select( blockEditorStore ).getBlockSelectionStart(),
199
+ hasHistory: !! getEditorSettings().goBack,
201
200
  };
202
201
  }, [] );
203
202
 
@@ -231,9 +230,6 @@ function Layout() {
231
230
  const [ entitiesSavedStatesCallback, setEntitiesSavedStatesCallback ] =
232
231
  useState( false );
233
232
 
234
- const [ listViewToggleElement, setListViewToggleElement ] =
235
- useState( null );
236
-
237
233
  const closeEntitiesSavedStates = useCallback(
238
234
  ( arg ) => {
239
235
  if ( typeof entitiesSavedStatesCallback === 'function' ) {
@@ -267,11 +263,7 @@ function Layout() {
267
263
  return <InserterSidebar />;
268
264
  }
269
265
  if ( mode === 'visual' && isListViewOpened ) {
270
- return (
271
- <ListViewSidebar
272
- listViewToggleElement={ listViewToggleElement }
273
- />
274
- );
266
+ return <ListViewSidebar />;
275
267
  }
276
268
 
277
269
  return null;
@@ -292,7 +284,7 @@ function Layout() {
292
284
  return (
293
285
  <>
294
286
  <FullscreenMode isActive={ isFullscreenActive } />
295
- <BrowserURL />
287
+ <BrowserURL hasHistory={ hasHistory } />
296
288
  <UnsavedChangesWarning />
297
289
  <AutosaveMonitor />
298
290
  <LocalAutosaveMonitor />
@@ -312,7 +304,6 @@ function Layout() {
312
304
  setEntitiesSavedStatesCallback={
313
305
  setEntitiesSavedStatesCallback
314
306
  }
315
- setListViewToggleElement={ setListViewToggleElement }
316
307
  />
317
308
  }
318
309
  editorNotices={ <EditorNotices /> }
@@ -22,7 +22,11 @@ import {
22
22
  Tooltip,
23
23
  __unstableAutocompletionItemsSlot as AutocompletionItemsSlot,
24
24
  } from '@wordpress/components';
25
- import { AutosaveMonitor, store as editorStore } from '@wordpress/editor';
25
+ import {
26
+ AutosaveMonitor,
27
+ OfflineStatus,
28
+ store as editorStore,
29
+ } from '@wordpress/editor';
26
30
  import { sendNativeEditorDidLayout } from '@wordpress/react-native-bridge';
27
31
 
28
32
  /**
@@ -148,6 +152,10 @@ class Layout extends Component {
148
152
  onLayout={ this.onRootViewLayout }
149
153
  >
150
154
  <AutosaveMonitor disableIntervalChecks />
155
+ {
156
+ // eslint-disable-next-line no-undef
157
+ __DEV__ && <OfflineStatus />
158
+ }
151
159
  <View style={ editorStyles }>
152
160
  { isHtmlView ? this.renderHTML() : this.renderVisual() }
153
161
  { ! isHtmlView && Platform.OS === 'android' && (
@@ -3,11 +3,7 @@
3
3
  */
4
4
  import { Component } from '@wordpress/element';
5
5
  import { withSelect } from '@wordpress/data';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
- import { store as editPostStore } from '../../store';
6
+ import { store as editorStore } from '@wordpress/editor';
11
7
 
12
8
  class MetaBoxVisibility extends Component {
13
9
  componentDidMount() {
@@ -41,7 +37,5 @@ class MetaBoxVisibility extends Component {
41
37
  }
42
38
 
43
39
  export default withSelect( ( select, { id } ) => ( {
44
- isVisible: select( editPostStore ).isEditorPanelEnabled(
45
- `meta-box-${ id }`
46
- ),
40
+ isVisible: select( editorStore ).isEditorPanelEnabled( `meta-box-${ id }` ),
47
41
  } ) )( MetaBoxVisibility );
@@ -44,14 +44,14 @@ export default function EditPostPreferencesModal() {
44
44
  const [ isModalActive, showBlockBreadcrumbsOption ] = useSelect(
45
45
  ( select ) => {
46
46
  const { getEditorSettings } = select( editorStore );
47
- const { getEditorMode, isFeatureActive } = select( editPostStore );
47
+ const { getEditorMode } = select( editPostStore );
48
+ const { get } = select( preferencesStore );
48
49
  const modalActive = select( interfaceStore ).isModalActive(
49
50
  PREFERENCES_MODAL_NAME
50
51
  );
51
52
  const mode = getEditorMode();
52
53
  const isRichEditingEnabled = getEditorSettings().richEditingEnabled;
53
- const isDistractionFreeEnabled =
54
- isFeatureActive( 'distractionFree' );
54
+ const isDistractionFreeEnabled = get( 'core', 'distractionFree' );
55
55
  return [
56
56
  modalActive,
57
57
  ! isDistractionFreeEnabled &&
@@ -64,20 +64,20 @@ export default function EditPostPreferencesModal() {
64
64
  [ isLargeViewport ]
65
65
  );
66
66
 
67
- const { closeGeneralSidebar, setIsListViewOpened, setIsInserterOpened } =
68
- useDispatch( editPostStore );
69
-
67
+ const { closeGeneralSidebar } = useDispatch( editPostStore );
68
+ const { setIsListViewOpened, setIsInserterOpened } =
69
+ useDispatch( editorStore );
70
70
  const { set: setPreference } = useDispatch( preferencesStore );
71
71
 
72
72
  const toggleDistractionFree = () => {
73
- setPreference( 'core/edit-post', 'fixedToolbar', true );
73
+ setPreference( 'core', 'fixedToolbar', true );
74
74
  setIsInserterOpened( false );
75
75
  setIsListViewOpened( false );
76
76
  closeGeneralSidebar();
77
77
  };
78
78
 
79
79
  const turnOffDistractionFree = () => {
80
- setPreference( 'core/edit-post', 'distractionFree', false );
80
+ setPreference( 'core', 'distractionFree', false );
81
81
  };
82
82
 
83
83
  const sections = useMemo(
@@ -95,12 +95,13 @@ export default function EditPostPreferencesModal() {
95
95
  help={ __(
96
96
  'Review settings, such as visibility and tags.'
97
97
  ) }
98
- label={ __( 'Enable pre-publish flow' ) }
98
+ label={ __( 'Enable pre-publish checks' ) }
99
99
  />
100
100
  </PreferencesModalSection>
101
101
  ) }
102
102
  <PreferencesModalSection title={ __( 'Interface' ) }>
103
103
  <EnableFeature
104
+ scope="core"
104
105
  featureName="showListViewByDefault"
105
106
  help={ __(
106
107
  'Opens the block list view sidebar by default.'
@@ -109,6 +110,7 @@ export default function EditPostPreferencesModal() {
109
110
  />
110
111
  { showBlockBreadcrumbsOption && (
111
112
  <EnableFeature
113
+ scope="core"
112
114
  featureName="showBlockBreadcrumbs"
113
115
  help={ __(
114
116
  'Display the block hierarchy trail at the bottom of the editor.'
@@ -116,6 +118,16 @@ export default function EditPostPreferencesModal() {
116
118
  label={ __( 'Show block breadcrumbs' ) }
117
119
  />
118
120
  ) }
121
+ <EnableFeature
122
+ scope="core"
123
+ featureName="allowRightClickOverrides"
124
+ help={ __(
125
+ 'Allows contextual list view menus via right-click, overriding browser defaults.'
126
+ ) }
127
+ label={ __(
128
+ 'Allow right-click contextual menus'
129
+ ) }
130
+ />
119
131
  </PreferencesModalSection>
120
132
  <PreferencesModalSection
121
133
  title={ __( 'Document settings' ) }
@@ -174,6 +186,7 @@ export default function EditPostPreferencesModal() {
174
186
  ) }
175
187
  >
176
188
  <EnableFeature
189
+ scope="core"
177
190
  featureName="fixedToolbar"
178
191
  onToggle={ turnOffDistractionFree }
179
192
  help={ __(
@@ -182,6 +195,7 @@ export default function EditPostPreferencesModal() {
182
195
  label={ __( 'Top toolbar' ) }
183
196
  />
184
197
  <EnableFeature
198
+ scope="core"
185
199
  featureName="distractionFree"
186
200
  onToggle={ toggleDistractionFree }
187
201
  help={ __(
@@ -190,6 +204,7 @@ export default function EditPostPreferencesModal() {
190
204
  label={ __( 'Distraction free' ) }
191
205
  />
192
206
  <EnableFeature
207
+ scope="core"
193
208
  featureName="focusMode"
194
209
  help={ __(
195
210
  'Highlights the current block and fades other content.'
@@ -218,6 +233,7 @@ export default function EditPostPreferencesModal() {
218
233
  ) }
219
234
  >
220
235
  <EnableFeature
236
+ scope="core"
221
237
  featureName="keepCaretInsideBlock"
222
238
  help={ __(
223
239
  'Keeps the text cursor within the block boundaries, aiding users with screen readers by preventing unintentional cursor movement outside the block.'
@@ -229,6 +245,7 @@ export default function EditPostPreferencesModal() {
229
245
  </PreferencesModalSection>
230
246
  <PreferencesModalSection title={ __( 'Interface' ) }>
231
247
  <EnableFeature
248
+ scope="core"
232
249
  featureName="showIconLabels"
233
250
  label={ __( 'Show button text labels' ) }
234
251
  help={ __(
@@ -246,6 +263,7 @@ export default function EditPostPreferencesModal() {
246
263
  <>
247
264
  <PreferencesModalSection title={ __( 'Inserter' ) }>
248
265
  <EnableFeature
266
+ scope="core"
249
267
  featureName="mostUsedBlocks"
250
268
  help={ __(
251
269
  'Adds a category with the most frequently used blocks in the inserter.'
@@ -1,26 +1,31 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { compose } from '@wordpress/compose';
5
- import { withSelect, withDispatch } from '@wordpress/data';
4
+ import { useSelect, useDispatch } from '@wordpress/data';
6
5
  import { ___unstablePreferencesModalBaseOption as BaseOption } from '@wordpress/interface';
6
+ import { store as preferencesStore } from '@wordpress/preferences';
7
7
 
8
- /**
9
- * Internal dependencies
10
- */
11
- import { store as editPostStore } from '../../../store';
12
-
13
- export default compose(
14
- withSelect( ( select, { featureName } ) => {
15
- const { isFeatureActive } = select( editPostStore );
16
- return {
17
- isChecked: isFeatureActive( featureName ),
18
- };
19
- } ),
20
- withDispatch( ( dispatch, { featureName, onToggle = () => {} } ) => ( {
21
- onChange: () => {
22
- onToggle();
23
- dispatch( editPostStore ).toggleFeature( featureName );
24
- },
25
- } ) )
26
- )( BaseOption );
8
+ export default function EnableFeature( props ) {
9
+ const {
10
+ scope = 'core/edit-post',
11
+ featureName,
12
+ onToggle = () => {},
13
+ ...remainingProps
14
+ } = props;
15
+ const isChecked = useSelect(
16
+ ( select ) => !! select( preferencesStore ).get( scope, featureName ),
17
+ [ scope, featureName ]
18
+ );
19
+ const { toggle } = useDispatch( preferencesStore );
20
+ const onChange = () => {
21
+ onToggle();
22
+ toggle( scope, featureName );
23
+ };
24
+ return (
25
+ <BaseOption
26
+ onChange={ onChange }
27
+ isChecked={ isChecked }
28
+ { ...remainingProps }
29
+ />
30
+ );
31
+ }
@@ -4,16 +4,12 @@
4
4
  import { compose, ifCondition } from '@wordpress/compose';
5
5
  import { withSelect, withDispatch } from '@wordpress/data';
6
6
  import { ___unstablePreferencesModalBaseOption as BaseOption } from '@wordpress/interface';
7
-
8
- /**
9
- * Internal dependencies
10
- */
11
- import { store as editPostStore } from '../../../store';
7
+ import { store as editorStore } from '@wordpress/editor';
12
8
 
13
9
  export default compose(
14
10
  withSelect( ( select, { panelName } ) => {
15
11
  const { isEditorPanelEnabled, isEditorPanelRemoved } =
16
- select( editPostStore );
12
+ select( editorStore );
17
13
  return {
18
14
  isRemoved: isEditorPanelRemoved( panelName ),
19
15
  isChecked: isEditorPanelEnabled( panelName ),
@@ -22,6 +18,6 @@ export default compose(
22
18
  ifCondition( ( { isRemoved } ) => ! isRemoved ),
23
19
  withDispatch( ( dispatch, { panelName } ) => ( {
24
20
  onChange: () =>
25
- dispatch( editPostStore ).toggleEditorPanelEnabled( panelName ),
21
+ dispatch( editorStore ).toggleEditorPanelEnabled( panelName ),
26
22
  } ) )
27
23
  )( BaseOption );