@wordpress/edit-site 5.12.10 → 5.12.12

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 (113) hide show
  1. package/build/components/global-styles/screen-revisions/index.js +8 -2
  2. package/build/components/global-styles/screen-revisions/index.js.map +1 -1
  3. package/build/components/global-styles/screen-revisions/revisions-buttons.js +10 -22
  4. package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  5. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +31 -25
  6. package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  7. package/build/components/keyboard-shortcuts/edit-mode.js +7 -5
  8. package/build/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  9. package/build/components/layout/index.js +14 -3
  10. package/build/components/layout/index.js.map +1 -1
  11. package/build/components/page-patterns/patterns-list.js +2 -1
  12. package/build/components/page-patterns/patterns-list.js.map +1 -1
  13. package/build/components/page-patterns/use-patterns.js +1 -1
  14. package/build/components/page-patterns/use-patterns.js.map +1 -1
  15. package/build/components/page-template-parts/index.js +1 -2
  16. package/build/components/page-template-parts/index.js.map +1 -1
  17. package/build/components/resizable-frame/index.js +14 -23
  18. package/build/components/resizable-frame/index.js.map +1 -1
  19. package/build/components/sidebar-edit-mode/page-panels/page-status.js +2 -7
  20. package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  21. package/build/components/sidebar-navigation-screen/index.js +15 -13
  22. package/build/components/sidebar-navigation-screen/index.js.map +1 -1
  23. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +8 -0
  24. package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  25. package/build/components/sidebar-navigation-screen-pages/index.js +2 -0
  26. package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  27. package/build/components/sidebar-navigation-screen-patterns/index.js +0 -9
  28. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  29. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
  30. package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  31. package/build/components/sidebar-navigation-screen-templates/index.js +1 -10
  32. package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  33. package/build/components/sidebar-navigation-screen-templates-browse/index.js +9 -0
  34. package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  35. package/build/components/site-hub/index.js +16 -7
  36. package/build/components/site-hub/index.js.map +1 -1
  37. package/build/hooks/commands/use-common-commands.js +78 -20
  38. package/build/hooks/commands/use-common-commands.js.map +1 -1
  39. package/build/hooks/commands/use-edit-mode-commands.js +30 -0
  40. package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
  41. package/build/store/private-actions.js +2 -1
  42. package/build/store/private-actions.js.map +1 -1
  43. package/build-module/components/global-styles/screen-revisions/index.js +9 -3
  44. package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
  45. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js +10 -22
  46. package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
  47. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +27 -21
  48. package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
  49. package/build-module/components/keyboard-shortcuts/edit-mode.js +7 -5
  50. package/build-module/components/keyboard-shortcuts/edit-mode.js.map +1 -1
  51. package/build-module/components/layout/index.js +14 -3
  52. package/build-module/components/layout/index.js.map +1 -1
  53. package/build-module/components/page-patterns/patterns-list.js +3 -2
  54. package/build-module/components/page-patterns/patterns-list.js.map +1 -1
  55. package/build-module/components/page-patterns/use-patterns.js +1 -1
  56. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  57. package/build-module/components/page-template-parts/index.js +1 -2
  58. package/build-module/components/page-template-parts/index.js.map +1 -1
  59. package/build-module/components/resizable-frame/index.js +15 -24
  60. package/build-module/components/resizable-frame/index.js.map +1 -1
  61. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +2 -7
  62. package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +1 -1
  63. package/build-module/components/sidebar-navigation-screen/index.js +13 -13
  64. package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
  65. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +7 -0
  66. package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
  67. package/build-module/components/sidebar-navigation-screen-pages/index.js +2 -0
  68. package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
  69. package/build-module/components/sidebar-navigation-screen-patterns/index.js +0 -7
  70. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  71. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +1 -1
  72. package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
  73. package/build-module/components/sidebar-navigation-screen-templates/index.js +1 -8
  74. package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
  75. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +7 -0
  76. package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
  77. package/build-module/components/site-hub/index.js +16 -7
  78. package/build-module/components/site-hub/index.js.map +1 -1
  79. package/build-module/hooks/commands/use-common-commands.js +74 -20
  80. package/build-module/hooks/commands/use-common-commands.js.map +1 -1
  81. package/build-module/hooks/commands/use-edit-mode-commands.js +29 -0
  82. package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
  83. package/build-module/store/private-actions.js +2 -1
  84. package/build-module/store/private-actions.js.map +1 -1
  85. package/build-style/style-rtl.css +12 -11
  86. package/build-style/style.css +12 -11
  87. package/package.json +20 -20
  88. package/src/components/global-styles/screen-revisions/index.js +76 -58
  89. package/src/components/global-styles/screen-revisions/revisions-buttons.js +17 -31
  90. package/src/components/global-styles/screen-revisions/test/use-global-styles-revisions.js +14 -1
  91. package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +63 -48
  92. package/src/components/keyboard-shortcuts/edit-mode.js +4 -5
  93. package/src/components/layout/index.js +22 -2
  94. package/src/components/layout/style.scss +1 -1
  95. package/src/components/page-patterns/patterns-list.js +5 -2
  96. package/src/components/page-patterns/style.scss +3 -0
  97. package/src/components/page-patterns/use-patterns.js +1 -0
  98. package/src/components/page-template-parts/index.js +0 -1
  99. package/src/components/resizable-frame/index.js +12 -28
  100. package/src/components/resizable-frame/style.scss +0 -17
  101. package/src/components/sidebar-edit-mode/page-panels/page-status.js +1 -4
  102. package/src/components/sidebar-navigation-screen/index.js +13 -15
  103. package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +27 -15
  104. package/src/components/sidebar-navigation-screen-pages/index.js +9 -4
  105. package/src/components/sidebar-navigation-screen-patterns/index.js +0 -8
  106. package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -1
  107. package/src/components/sidebar-navigation-screen-templates/index.js +1 -9
  108. package/src/components/sidebar-navigation-screen-templates-browse/index.js +10 -0
  109. package/src/components/site-hub/index.js +21 -7
  110. package/src/components/site-hub/style.scss +9 -2
  111. package/src/hooks/commands/use-common-commands.js +56 -23
  112. package/src/hooks/commands/use-edit-mode-commands.js +34 -3
  113. package/src/store/private-actions.js +5 -1
@@ -7,7 +7,6 @@ import {
7
7
  } from '@wordpress/components';
8
8
  import { __ } from '@wordpress/i18n';
9
9
  import { useEntityRecords } from '@wordpress/core-data';
10
- import { useSelect } from '@wordpress/data';
11
10
  import { decodeEntities } from '@wordpress/html-entities';
12
11
  import { useViewportMatch } from '@wordpress/compose';
13
12
 
@@ -18,7 +17,6 @@ import SidebarNavigationScreen from '../sidebar-navigation-screen';
18
17
  import { useLink } from '../routes/link';
19
18
  import SidebarNavigationItem from '../sidebar-navigation-item';
20
19
  import AddNewTemplate from '../add-new-template';
21
- import { store as editSiteStore } from '../../store';
22
20
  import SidebarButton from '../sidebar-button';
23
21
 
24
22
  const TemplateItem = ( { postType, postId, ...props } ) => {
@@ -31,11 +29,6 @@ const TemplateItem = ( { postType, postId, ...props } ) => {
31
29
 
32
30
  export default function SidebarNavigationScreenTemplates() {
33
31
  const isMobileViewport = useViewportMatch( 'medium', '<' );
34
- const isTemplatePartsMode = useSelect( ( select ) => {
35
- const settings = select( editSiteStore ).getSettings();
36
-
37
- return !! settings.supportsTemplatePartsMode;
38
- }, [] );
39
32
 
40
33
  const { records: templates, isResolving: isLoading } = useEntityRecords(
41
34
  'postType',
@@ -51,10 +44,9 @@ export default function SidebarNavigationScreenTemplates() {
51
44
  );
52
45
 
53
46
  const browseAllLink = useLink( { path: '/wp_template/all' } );
54
- const canCreate = ! isMobileViewport && ! isTemplatePartsMode;
47
+ const canCreate = ! isMobileViewport;
55
48
  return (
56
49
  <SidebarNavigationScreen
57
- isRoot={ isTemplatePartsMode }
58
50
  title={ __( 'Templates' ) }
59
51
  description={ __(
60
52
  'Express the layout of your site with templates'
@@ -2,12 +2,14 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
+ import { useSelect } from '@wordpress/data';
5
6
  import { __experimentalUseNavigator as useNavigator } from '@wordpress/components';
6
7
 
7
8
  /**
8
9
  * Internal dependencies
9
10
  */
10
11
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
12
+ import { store as editSiteStore } from '../../store';
11
13
 
12
14
  const config = {
13
15
  wp_template: {
@@ -29,8 +31,16 @@ export default function SidebarNavigationScreenTemplatesBrowse() {
29
31
  const {
30
32
  params: { postType },
31
33
  } = useNavigator();
34
+
35
+ const isTemplatePartsMode = useSelect( ( select ) => {
36
+ const settings = select( editSiteStore ).getSettings();
37
+
38
+ return !! settings.supportsTemplatePartsMode;
39
+ }, [] );
40
+
32
41
  return (
33
42
  <SidebarNavigationScreen
43
+ isRoot={ isTemplatePartsMode }
34
44
  title={ config[ postType ].title }
35
45
  description={ config[ postType ].description }
36
46
  backPath={ config[ postType ].backPath }
@@ -31,7 +31,7 @@ import { unlock } from '../../lock-unlock';
31
31
 
32
32
  const HUB_ANIMATION_DURATION = 0.3;
33
33
 
34
- const SiteHub = forwardRef( ( props, ref ) => {
34
+ const SiteHub = forwardRef( ( { isTransparent, ...restProps }, ref ) => {
35
35
  const { canvasMode, dashboardLink, homeUrl } = useSelect( ( select ) => {
36
36
  const { getCanvasMode, getSettings } = unlock(
37
37
  select( editSiteStore )
@@ -85,8 +85,11 @@ const SiteHub = forwardRef( ( props, ref ) => {
85
85
  return (
86
86
  <motion.div
87
87
  ref={ ref }
88
- { ...props }
89
- className={ classnames( 'edit-site-site-hub', props.className ) }
88
+ { ...restProps }
89
+ className={ classnames(
90
+ 'edit-site-site-hub',
91
+ restProps.className
92
+ ) }
90
93
  initial={ false }
91
94
  transition={ {
92
95
  type: 'tween',
@@ -105,7 +108,12 @@ const SiteHub = forwardRef( ( props, ref ) => {
105
108
  spacing="0"
106
109
  >
107
110
  <motion.div
108
- className="edit-site-site-hub__view-mode-toggle-container"
111
+ className={ classnames(
112
+ 'edit-site-site-hub__view-mode-toggle-container',
113
+ {
114
+ 'has-transparent-background': isTransparent,
115
+ }
116
+ ) }
109
117
  layout
110
118
  transition={ {
111
119
  type: 'tween',
@@ -149,7 +157,10 @@ const SiteHub = forwardRef( ( props, ref ) => {
149
157
  exit={ {
150
158
  opacity: 0,
151
159
  } }
152
- className="edit-site-site-hub__site-title"
160
+ className={ classnames(
161
+ 'edit-site-site-hub__site-title',
162
+ { 'is-transparent': isTransparent }
163
+ ) }
153
164
  transition={ {
154
165
  type: 'tween',
155
166
  duration: disableMotion ? 0 : 0.2,
@@ -164,7 +175,7 @@ const SiteHub = forwardRef( ( props, ref ) => {
164
175
  <Button
165
176
  href={ homeUrl }
166
177
  target="_blank"
167
- label={ __( 'View site' ) }
178
+ label={ __( 'View site (opens in a new tab)' ) }
168
179
  aria-label={ __(
169
180
  'View site (opens in a new tab)'
170
181
  ) }
@@ -175,7 +186,10 @@ const SiteHub = forwardRef( ( props, ref ) => {
175
186
  </HStack>
176
187
  { canvasMode === 'view' && (
177
188
  <Button
178
- className="edit-site-site-hub_toggle-command-center"
189
+ className={ classnames(
190
+ 'edit-site-site-hub_toggle-command-center',
191
+ { 'is-transparent': isTransparent }
192
+ ) }
179
193
  icon={ search }
180
194
  onClick={ () => openCommandCenter() }
181
195
  label={ __( 'Open command palette' ) }
@@ -11,17 +11,20 @@
11
11
  .edit-site-site-hub__site-title,
12
12
  .edit-site-site-hub_toggle-command-center {
13
13
  transition: opacity ease 0.1s;
14
+
15
+ &.is-transparent {
16
+ opacity: 0 !important;
17
+ }
14
18
  }
15
19
 
16
20
  .edit-site-site-hub__site-view-link {
17
21
  flex-grow: 0;
22
+ margin-right: var(--wp-admin-border-width-focus);
18
23
  @include break-mobile() {
19
24
  opacity: 0;
20
25
  transition: opacity 0.2s ease-in-out;
21
26
  }
22
27
  &:focus {
23
- outline: none;
24
- box-shadow: none;
25
28
  opacity: 1;
26
29
  }
27
30
  svg {
@@ -44,6 +47,10 @@
44
47
  width: $header-height;
45
48
  flex-shrink: 0;
46
49
  background: $gray-900;
50
+
51
+ &.has-transparent-background {
52
+ background: transparent;
53
+ }
47
54
  }
48
55
 
49
56
  .edit-site-site-hub__text-content {
@@ -11,15 +11,17 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
11
11
  import { store as preferencesStore } from '@wordpress/preferences';
12
12
  import { store as coreStore } from '@wordpress/core-data';
13
13
  import { store as noticesStore } from '@wordpress/notices';
14
+ import { useViewportMatch } from '@wordpress/compose';
14
15
 
15
16
  /**
16
17
  * Internal dependencies
17
18
  */
18
19
  import { unlock } from '../../lock-unlock';
19
20
  import { store as editSiteStore } from '../../store';
21
+ import getIsListPage from '../../utils/get-is-list-page';
20
22
 
21
23
  const { useGlobalStylesReset } = unlock( blockEditorPrivateApis );
22
- const { useHistory } = unlock( routerPrivateApis );
24
+ const { useHistory, useLocation } = unlock( routerPrivateApis );
23
25
 
24
26
  function useGlobalStylesResetCommands() {
25
27
  const [ canReset, onReset ] = useGlobalStylesReset();
@@ -48,9 +50,12 @@ function useGlobalStylesResetCommands() {
48
50
  }
49
51
 
50
52
  function useGlobalStylesOpenCssCommands() {
51
- const { openGeneralSidebar, setEditorCanvasContainerView } = unlock(
52
- useDispatch( editSiteStore )
53
- );
53
+ const { openGeneralSidebar, setEditorCanvasContainerView, setCanvasMode } =
54
+ unlock( useDispatch( editSiteStore ) );
55
+ const { params } = useLocation();
56
+ const isMobileViewport = useViewportMatch( 'medium', '<' );
57
+ const isListPage = getIsListPage( params, isMobileViewport );
58
+ const isEditorPage = ! isListPage;
54
59
  const history = useHistory();
55
60
  const { canEditCSS } = useSelect( ( select ) => {
56
61
  const { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =
@@ -66,6 +71,7 @@ function useGlobalStylesOpenCssCommands() {
66
71
  !! globalStyles?._links?.[ 'wp:action-edit-css' ] ?? false,
67
72
  };
68
73
  }, [] );
74
+ const { getCanvasMode } = unlock( useSelect( editSiteStore ) );
69
75
 
70
76
  const commands = useMemo( () => {
71
77
  if ( ! canEditCSS ) {
@@ -79,10 +85,15 @@ function useGlobalStylesOpenCssCommands() {
79
85
  icon: styles,
80
86
  callback: ( { close } ) => {
81
87
  close();
82
- history.push( {
83
- path: '/wp_global_styles',
84
- canvas: 'edit',
85
- } );
88
+ if ( ! isEditorPage ) {
89
+ history.push( {
90
+ path: '/wp_global_styles',
91
+ canvas: 'edit',
92
+ } );
93
+ }
94
+ if ( isEditorPage && getCanvasMode() !== 'edit' ) {
95
+ setCanvasMode( 'edit' );
96
+ }
86
97
  openGeneralSidebar( 'edit-site/global-styles' );
87
98
  setEditorCanvasContainerView( 'global-styles-css' );
88
99
  },
@@ -93,6 +104,9 @@ function useGlobalStylesOpenCssCommands() {
93
104
  openGeneralSidebar,
94
105
  setEditorCanvasContainerView,
95
106
  canEditCSS,
107
+ isEditorPage,
108
+ getCanvasMode,
109
+ setCanvasMode,
96
110
  ] );
97
111
  return {
98
112
  isLoading: false,
@@ -101,9 +115,13 @@ function useGlobalStylesOpenCssCommands() {
101
115
  }
102
116
 
103
117
  export function useCommonCommands() {
104
- const { openGeneralSidebar, setEditorCanvasContainerView } = unlock(
105
- useDispatch( editSiteStore )
106
- );
118
+ const { openGeneralSidebar, setEditorCanvasContainerView, setCanvasMode } =
119
+ unlock( useDispatch( editSiteStore ) );
120
+ const { params } = useLocation();
121
+ const isMobileViewport = useViewportMatch( 'medium', '<' );
122
+ const isListPage = getIsListPage( params, isMobileViewport );
123
+ const isEditorPage = ! isListPage;
124
+ const { getCanvasMode } = unlock( useSelect( editSiteStore ) );
107
125
  const { set } = useDispatch( preferencesStore );
108
126
  const { createInfoNotice } = useDispatch( noticesStore );
109
127
  const history = useHistory();
@@ -127,10 +145,15 @@ export function useCommonCommands() {
127
145
  icon: backup,
128
146
  callback: ( { close } ) => {
129
147
  close();
130
- history.push( {
131
- path: '/wp_global_styles',
132
- canvas: 'edit',
133
- } );
148
+ if ( ! isEditorPage ) {
149
+ history.push( {
150
+ path: '/wp_global_styles',
151
+ canvas: 'edit',
152
+ } );
153
+ }
154
+ if ( isEditorPage && getCanvasMode() !== 'edit' ) {
155
+ setCanvasMode( 'edit' );
156
+ }
134
157
  openGeneralSidebar( 'edit-site/global-styles' );
135
158
  setEditorCanvasContainerView( 'global-styles-revisions' );
136
159
  },
@@ -141,10 +164,15 @@ export function useCommonCommands() {
141
164
  label: __( 'Open styles' ),
142
165
  callback: ( { close } ) => {
143
166
  close();
144
- history.push( {
145
- path: '/wp_global_styles',
146
- canvas: 'edit',
147
- } );
167
+ if ( ! isEditorPage ) {
168
+ history.push( {
169
+ path: '/wp_global_styles',
170
+ canvas: 'edit',
171
+ } );
172
+ }
173
+ if ( isEditorPage && getCanvasMode() !== 'edit' ) {
174
+ setCanvasMode( 'edit' );
175
+ }
148
176
  if ( isDistractionFree ) {
149
177
  set( editSiteStore.name, 'distractionFree', false );
150
178
  createInfoNotice( __( 'Distraction free mode turned off.' ), {
@@ -161,10 +189,15 @@ export function useCommonCommands() {
161
189
  label: __( 'Learn about styles' ),
162
190
  callback: ( { close } ) => {
163
191
  close();
164
- history.push( {
165
- path: '/wp_global_styles',
166
- canvas: 'edit',
167
- } );
192
+ if ( ! isEditorPage ) {
193
+ history.push( {
194
+ path: '/wp_global_styles',
195
+ canvas: 'edit',
196
+ } );
197
+ }
198
+ if ( isEditorPage && getCanvasMode() !== 'edit' ) {
199
+ setCanvasMode( 'edit' );
200
+ }
168
201
  openGeneralSidebar( 'edit-site/global-styles' );
169
202
  set( 'core/edit-site', 'welcomeGuideStyles', true );
170
203
  // sometimes there's a focus loss that happens after some time
@@ -19,6 +19,7 @@ import { useCommandLoader } from '@wordpress/commands';
19
19
  import { privateApis as routerPrivateApis } from '@wordpress/router';
20
20
  import { store as preferencesStore } from '@wordpress/preferences';
21
21
  import { store as interfaceStore } from '@wordpress/interface';
22
+ import { store as noticesStore } from '@wordpress/notices';
22
23
 
23
24
  /**
24
25
  * Internal dependencies
@@ -137,8 +138,13 @@ function useManipulateDocumentCommands() {
137
138
  }
138
139
 
139
140
  function useEditUICommands() {
140
- const { openGeneralSidebar, closeGeneralSidebar, switchEditorMode } =
141
- useDispatch( editSiteStore );
141
+ const {
142
+ openGeneralSidebar,
143
+ closeGeneralSidebar,
144
+ setIsInserterOpened,
145
+ setIsListViewOpened,
146
+ switchEditorMode,
147
+ } = useDispatch( editSiteStore );
142
148
  const { canvasMode, editorMode, activeSidebar } = useSelect(
143
149
  ( select ) => ( {
144
150
  canvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),
@@ -150,7 +156,9 @@ function useEditUICommands() {
150
156
  []
151
157
  );
152
158
  const { openModal } = useDispatch( interfaceStore );
153
- const { toggle } = useDispatch( preferencesStore );
159
+ const { get: getPreference } = useSelect( preferencesStore );
160
+ const { set: setPreference, toggle } = useDispatch( preferencesStore );
161
+ const { createInfoNotice } = useDispatch( noticesStore );
154
162
 
155
163
  if ( canvasMode !== 'edit' ) {
156
164
  return { isLoading: false, commands: [] };
@@ -196,6 +204,29 @@ function useEditUICommands() {
196
204
  },
197
205
  } );
198
206
 
207
+ commands.push( {
208
+ name: 'core/toggle-distraction-free',
209
+ label: __( 'Toggle distraction free' ),
210
+ icon: cog,
211
+ callback: ( { close } ) => {
212
+ setPreference( 'core/edit-site', 'fixedToolbar', false );
213
+ setIsInserterOpened( false );
214
+ setIsListViewOpened( false );
215
+ closeGeneralSidebar();
216
+ toggle( 'core/edit-site', 'distractionFree' );
217
+ createInfoNotice(
218
+ getPreference( 'core/edit-site', 'distractionFree' )
219
+ ? __( 'Distraction free mode turned on.' )
220
+ : __( 'Distraction free mode turned off.' ),
221
+ {
222
+ id: 'core/edit-site/distraction-free-mode/notice',
223
+ type: 'snackbar',
224
+ }
225
+ );
226
+ close();
227
+ },
228
+ } );
229
+
199
230
  commands.push( {
200
231
  name: 'core/toggle-top-toolbar',
201
232
  label: __( 'Toggle top toolbar' ),
@@ -18,11 +18,15 @@ export const setCanvasMode =
18
18
  mode,
19
19
  } );
20
20
  // Check if the block list view should be open by default.
21
+ // If `distractionFree` mode is enabled, the block list view should not be open.
21
22
  if (
22
23
  mode === 'edit' &&
23
24
  registry
24
25
  .select( preferencesStore )
25
- .get( 'core/edit-site', 'showListViewByDefault' )
26
+ .get( 'core/edit-site', 'showListViewByDefault' ) &&
27
+ ! registry
28
+ .select( preferencesStore )
29
+ .get( 'core/edit-site', 'distractionFree' )
26
30
  ) {
27
31
  dispatch.setIsListViewOpened( true );
28
32
  }