@wordpress/edit-site 6.19.0 → 6.19.2

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 (128) hide show
  1. package/build/components/add-new-template/utils.js +1 -1
  2. package/build/components/add-new-template/utils.js.map +1 -1
  3. package/build/components/app/index.js +19 -2
  4. package/build/components/app/index.js.map +1 -1
  5. package/build/components/editor/site-preview.js +9 -8
  6. package/build/components/editor/site-preview.js.map +1 -1
  7. package/build/components/editor/use-editor-title.js +3 -2
  8. package/build/components/editor/use-editor-title.js.map +1 -1
  9. package/build/components/layout/index.js +23 -15
  10. package/build/components/layout/index.js.map +1 -1
  11. package/build/components/page-patterns/header.js +1 -1
  12. package/build/components/page-patterns/header.js.map +1 -1
  13. package/build/components/page-patterns/use-patterns.js +3 -2
  14. package/build/components/page-patterns/use-patterns.js.map +1 -1
  15. package/build/components/sidebar/index.js +17 -11
  16. package/build/components/sidebar/index.js.map +1 -1
  17. package/build/components/sidebar-navigation-screen-main/index.js +1 -1
  18. package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
  19. package/build/components/sidebar-navigation-screen-patterns/index.js +1 -0
  20. package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  21. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +1 -1
  22. package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  23. package/build/components/sidebar-navigation-screen-unsupported/index.js +24 -0
  24. package/build/components/sidebar-navigation-screen-unsupported/index.js.map +1 -0
  25. package/build/components/site-editor-routes/home.js +22 -5
  26. package/build/components/site-editor-routes/home.js.map +1 -1
  27. package/build/components/site-editor-routes/navigation-item.js +21 -5
  28. package/build/components/site-editor-routes/navigation-item.js.map +1 -1
  29. package/build/components/site-editor-routes/navigation.js +21 -5
  30. package/build/components/site-editor-routes/navigation.js.map +1 -1
  31. package/build/components/site-editor-routes/page-item.js +25 -9
  32. package/build/components/site-editor-routes/page-item.js.map +1 -1
  33. package/build/components/site-editor-routes/pages.js +32 -11
  34. package/build/components/site-editor-routes/pages.js.map +1 -1
  35. package/build/components/site-editor-routes/pattern-item.js +10 -3
  36. package/build/components/site-editor-routes/pattern-item.js.map +1 -1
  37. package/build/components/site-editor-routes/patterns.js +23 -24
  38. package/build/components/site-editor-routes/patterns.js.map +1 -1
  39. package/build/components/site-editor-routes/stylebook.js +25 -11
  40. package/build/components/site-editor-routes/stylebook.js.map +1 -1
  41. package/build/components/site-editor-routes/template-item.js +21 -5
  42. package/build/components/site-editor-routes/template-item.js.map +1 -1
  43. package/build/components/site-editor-routes/templates.js +27 -6
  44. package/build/components/site-editor-routes/templates.js.map +1 -1
  45. package/build/components/site-editor-routes/utils.js +20 -0
  46. package/build/components/site-editor-routes/utils.js.map +1 -0
  47. package/build/components/site-hub/index.js +37 -15
  48. package/build/components/site-hub/index.js.map +1 -1
  49. package/build-module/components/add-new-template/utils.js +1 -1
  50. package/build-module/components/add-new-template/utils.js.map +1 -1
  51. package/build-module/components/app/index.js +20 -3
  52. package/build-module/components/app/index.js.map +1 -1
  53. package/build-module/components/editor/site-preview.js +9 -8
  54. package/build-module/components/editor/site-preview.js.map +1 -1
  55. package/build-module/components/editor/use-editor-title.js +3 -2
  56. package/build-module/components/editor/use-editor-title.js.map +1 -1
  57. package/build-module/components/layout/index.js +22 -14
  58. package/build-module/components/layout/index.js.map +1 -1
  59. package/build-module/components/page-patterns/header.js +1 -1
  60. package/build-module/components/page-patterns/header.js.map +1 -1
  61. package/build-module/components/page-patterns/use-patterns.js +3 -2
  62. package/build-module/components/page-patterns/use-patterns.js.map +1 -1
  63. package/build-module/components/sidebar/index.js +15 -10
  64. package/build-module/components/sidebar/index.js.map +1 -1
  65. package/build-module/components/sidebar-navigation-screen-main/index.js +1 -1
  66. package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
  67. package/build-module/components/sidebar-navigation-screen-patterns/index.js +1 -0
  68. package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
  69. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +1 -1
  70. package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
  71. package/build-module/components/sidebar-navigation-screen-unsupported/index.js +17 -0
  72. package/build-module/components/sidebar-navigation-screen-unsupported/index.js.map +1 -0
  73. package/build-module/components/site-editor-routes/home.js +22 -5
  74. package/build-module/components/site-editor-routes/home.js.map +1 -1
  75. package/build-module/components/site-editor-routes/navigation-item.js +21 -5
  76. package/build-module/components/site-editor-routes/navigation-item.js.map +1 -1
  77. package/build-module/components/site-editor-routes/navigation.js +21 -5
  78. package/build-module/components/site-editor-routes/navigation.js.map +1 -1
  79. package/build-module/components/site-editor-routes/page-item.js +25 -9
  80. package/build-module/components/site-editor-routes/page-item.js.map +1 -1
  81. package/build-module/components/site-editor-routes/pages.js +32 -11
  82. package/build-module/components/site-editor-routes/pages.js.map +1 -1
  83. package/build-module/components/site-editor-routes/pattern-item.js +10 -3
  84. package/build-module/components/site-editor-routes/pattern-item.js.map +1 -1
  85. package/build-module/components/site-editor-routes/patterns.js +23 -24
  86. package/build-module/components/site-editor-routes/patterns.js.map +1 -1
  87. package/build-module/components/site-editor-routes/stylebook.js +25 -11
  88. package/build-module/components/site-editor-routes/stylebook.js.map +1 -1
  89. package/build-module/components/site-editor-routes/template-item.js +21 -5
  90. package/build-module/components/site-editor-routes/template-item.js.map +1 -1
  91. package/build-module/components/site-editor-routes/templates.js +27 -6
  92. package/build-module/components/site-editor-routes/templates.js.map +1 -1
  93. package/build-module/components/site-editor-routes/utils.js +14 -0
  94. package/build-module/components/site-editor-routes/utils.js.map +1 -0
  95. package/build-module/components/site-hub/index.js +37 -15
  96. package/build-module/components/site-hub/index.js.map +1 -1
  97. package/build-style/posts-rtl.css +7 -10
  98. package/build-style/posts.css +7 -10
  99. package/build-style/style-rtl.css +7 -10
  100. package/build-style/style.css +7 -10
  101. package/package.json +42 -42
  102. package/src/components/add-new-template/utils.js +1 -2
  103. package/src/components/app/index.js +18 -3
  104. package/src/components/editor/site-preview.js +9 -14
  105. package/src/components/editor/use-editor-title.js +6 -6
  106. package/src/components/layout/index.js +36 -22
  107. package/src/components/layout/style.scss +2 -0
  108. package/src/components/page/style.scss +1 -5
  109. package/src/components/page-patterns/header.js +1 -1
  110. package/src/components/page-patterns/use-patterns.js +7 -7
  111. package/src/components/sidebar/index.js +15 -13
  112. package/src/components/sidebar-navigation-screen-main/index.js +1 -1
  113. package/src/components/sidebar-navigation-screen-patterns/index.js +1 -0
  114. package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +1 -1
  115. package/src/components/sidebar-navigation-screen-unsupported/index.js +17 -0
  116. package/src/components/site-editor-routes/home.js +27 -3
  117. package/src/components/site-editor-routes/navigation-item.js +25 -5
  118. package/src/components/site-editor-routes/navigation.js +21 -3
  119. package/src/components/site-editor-routes/page-item.js +29 -9
  120. package/src/components/site-editor-routes/pages.js +30 -10
  121. package/src/components/site-editor-routes/pattern-item.js +9 -1
  122. package/src/components/site-editor-routes/patterns.js +22 -21
  123. package/src/components/site-editor-routes/stylebook.js +25 -11
  124. package/src/components/site-editor-routes/template-item.js +25 -3
  125. package/src/components/site-editor-routes/templates.js +26 -4
  126. package/src/components/site-editor-routes/utils.js +14 -0
  127. package/src/components/site-hub/index.js +49 -16
  128. package/tsconfig.tsbuildinfo +1 -1
@@ -44,7 +44,7 @@ import { unlock } from '../../lock-unlock';
44
44
  import SaveKeyboardShortcut from '../save-keyboard-shortcut';
45
45
  import { useIsSiteEditorLoading } from './hooks';
46
46
  import useMovingAnimation from './animation';
47
- import SidebarContent from '../sidebar';
47
+ import { SidebarContent, SidebarNavigationProvider } from '../sidebar';
48
48
  import SaveHub from '../save-hub';
49
49
  import SavePanel from '../save-panel';
50
50
 
@@ -141,16 +141,18 @@ function Layout() {
141
141
  isResizableFrameOversized
142
142
  }
143
143
  />
144
- <SidebarContent
145
- shouldAnimate={
146
- routeKey !== 'styles'
147
- }
148
- routeKey={ routeKey }
149
- >
150
- <ErrorBoundary>
151
- { areas.sidebar }
152
- </ErrorBoundary>
153
- </SidebarContent>
144
+ <SidebarNavigationProvider>
145
+ <SidebarContent
146
+ shouldAnimate={
147
+ routeKey !== 'styles'
148
+ }
149
+ routeKey={ routeKey }
150
+ >
151
+ <ErrorBoundary>
152
+ { areas.sidebar }
153
+ </ErrorBoundary>
154
+ </SidebarContent>
155
+ </SidebarNavigationProvider>
154
156
  <SaveHub />
155
157
  <SavePanel />
156
158
  </motion.div>
@@ -163,17 +165,29 @@ function Layout() {
163
165
 
164
166
  { isMobileViewport && areas.mobile && (
165
167
  <div className="edit-site-layout__mobile">
166
- { canvas !== 'edit' && (
167
- <SidebarContent routeKey={ routeKey }>
168
- <SiteHubMobile
169
- ref={ toggleRef }
170
- isTransparent={
171
- isResizableFrameOversized
172
- }
173
- />
174
- </SidebarContent>
175
- ) }
176
- <ErrorBoundary>{ areas.mobile }</ErrorBoundary>
168
+ <SidebarNavigationProvider>
169
+ { canvas !== 'edit' ? (
170
+ <>
171
+ <SiteHubMobile
172
+ ref={ toggleRef }
173
+ isTransparent={
174
+ isResizableFrameOversized
175
+ }
176
+ />
177
+ <SidebarContent routeKey={ routeKey }>
178
+ <ErrorBoundary>
179
+ { areas.mobile }
180
+ </ErrorBoundary>
181
+ </SidebarContent>
182
+ <SaveHub />
183
+ <SavePanel />
184
+ </>
185
+ ) : (
186
+ <ErrorBoundary>
187
+ { areas.mobile }
188
+ </ErrorBoundary>
189
+ ) }
190
+ </SidebarNavigationProvider>
177
191
  </div>
178
192
  ) }
179
193
 
@@ -56,6 +56,8 @@
56
56
  position: relative;
57
57
  width: 100%;
58
58
  z-index: z-index(".edit-site-layout__canvas-container");
59
+ display: flex;
60
+ flex-direction: column;
59
61
 
60
62
  /*
61
63
  * The SiteHubMobile component is displayed
@@ -1,17 +1,13 @@
1
1
  .edit-site-page {
2
2
  color: $gray-800;
3
3
  background: $white;
4
- height: calc(100% - #{$header-height});
4
+ height: 100%;
5
5
  /* stylelint-disable-next-line property-no-unknown -- '@container' not globally permitted */
6
6
  container: edit-site-page / inline-size;
7
7
 
8
8
  @media not (prefers-reduced-motion) {
9
9
  transition: width ease-out 0.2s;
10
10
  }
11
-
12
- @include break-medium() {
13
- height: 100%;
14
- }
15
11
  }
16
12
 
17
13
  .edit-site-page-header {
@@ -32,7 +32,7 @@ export default function PatternsHeader( {
32
32
  const { patternCategories } = usePatternCategories();
33
33
  const templatePartAreas = useSelect(
34
34
  ( select ) =>
35
- select( coreStore ).getEntityRecord( 'root', '__unstableBase' )
35
+ select( coreStore ).getCurrentTheme()
36
36
  ?.default_template_part_areas || [],
37
37
  []
38
38
  );
@@ -25,8 +25,11 @@ const EMPTY_PATTERN_LIST = [];
25
25
 
26
26
  const selectTemplateParts = createSelector(
27
27
  ( select, categoryId, search = '' ) => {
28
- const { getEntityRecords, isResolving: isResolvingSelector } =
29
- select( coreStore );
28
+ const {
29
+ getEntityRecords,
30
+ getCurrentTheme,
31
+ isResolving: isResolvingSelector,
32
+ } = select( coreStore );
30
33
 
31
34
  const query = { per_page: -1 };
32
35
  const templateParts =
@@ -36,9 +39,7 @@ const selectTemplateParts = createSelector(
36
39
  // In the case where a custom template part area has been removed we need
37
40
  // the current list of areas to cross check against so orphaned template
38
41
  // parts can be treated as uncategorized.
39
- const knownAreas =
40
- select( coreStore ).getEntityRecord( 'root', '__unstableBase' )
41
- ?.default_template_part_areas || [];
42
+ const knownAreas = getCurrentTheme()?.default_template_part_areas || [];
42
43
 
43
44
  const templatePartAreas = knownAreas.map( ( area ) => area.area );
44
45
 
@@ -79,8 +80,7 @@ const selectTemplateParts = createSelector(
79
80
  TEMPLATE_PART_POST_TYPE,
80
81
  { per_page: -1 },
81
82
  ] ),
82
- select( coreStore ).getEntityRecord( 'root', '__unstableBase' )
83
- ?.default_template_part_areas,
83
+ select( coreStore ).getCurrentTheme()?.default_template_part_areas,
84
84
  ]
85
85
  );
86
86
 
@@ -87,23 +87,25 @@ function SidebarContentWrapper( { children, shouldAnimate } ) {
87
87
  );
88
88
  }
89
89
 
90
- export default function SidebarContent( {
91
- routeKey,
92
- shouldAnimate,
93
- children,
94
- } ) {
90
+ export function SidebarNavigationProvider( { children } ) {
95
91
  const [ navState ] = useState( createNavState );
96
92
 
97
93
  return (
98
94
  <SidebarNavigationContext.Provider value={ navState }>
99
- <div className="edit-site-sidebar__content">
100
- <SidebarContentWrapper
101
- shouldAnimate={ shouldAnimate }
102
- key={ routeKey }
103
- >
104
- { children }
105
- </SidebarContentWrapper>
106
- </div>
95
+ { children }
107
96
  </SidebarNavigationContext.Provider>
108
97
  );
109
98
  }
99
+
100
+ export function SidebarContent( { routeKey, shouldAnimate, children } ) {
101
+ return (
102
+ <div className="edit-site-sidebar__content">
103
+ <SidebarContentWrapper
104
+ shouldAnimate={ shouldAnimate }
105
+ key={ routeKey }
106
+ >
107
+ { children }
108
+ </SidebarContentWrapper>
109
+ </div>
110
+ );
111
+ }
@@ -100,7 +100,7 @@ export default function SidebarNavigationScreenMain( { customDescription } ) {
100
100
  );
101
101
  } else {
102
102
  description = __(
103
- 'Explore block styles and patterns to refine your site'
103
+ 'Explore block styles and patterns to refine your site.'
104
104
  );
105
105
  }
106
106
 
@@ -120,6 +120,7 @@ export default function SidebarNavigationScreenPatterns( { backPath } ) {
120
120
  description={ __(
121
121
  'Manage what patterns are available when editing the site.'
122
122
  ) }
123
+ isRoot={ ! backPath }
123
124
  backPath={ backPath }
124
125
  content={
125
126
  <>
@@ -17,7 +17,7 @@ const useTemplatePartsGroupedByArea = ( items ) => {
17
17
 
18
18
  const templatePartAreas = useSelect(
19
19
  ( select ) =>
20
- select( coreStore ).getEntityRecord( 'root', '__unstableBase' )
20
+ select( coreStore ).getCurrentTheme()
21
21
  ?.default_template_part_areas || [],
22
22
  []
23
23
  );
@@ -0,0 +1,17 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { Notice, __experimentalSpacer as Spacer } from '@wordpress/components';
6
+
7
+ export default function SidebarNavigationScreenUnsupported() {
8
+ return (
9
+ <Spacer padding={ 3 }>
10
+ <Notice status="warning" isDismissible={ false }>
11
+ { __(
12
+ 'The theme you are currently using does not support this screen.'
13
+ ) }
14
+ </Notice>
15
+ </Spacer>
16
+ );
17
+ }
@@ -2,14 +2,38 @@
2
2
  * Internal dependencies
3
3
  */
4
4
  import SidebarNavigationScreenMain from '../sidebar-navigation-screen-main';
5
+ import SidebarNavigationScreenUnsupported from '../sidebar-navigation-screen-unsupported';
5
6
  import Editor from '../editor';
7
+ import { isClassicThemeWithStyleBookSupport } from './utils';
6
8
 
7
9
  export const homeRoute = {
8
10
  name: 'home',
9
11
  path: '/',
10
12
  areas: {
11
- sidebar: <SidebarNavigationScreenMain />,
12
- preview: <Editor isHomeRoute />,
13
- mobile: <SidebarNavigationScreenMain />,
13
+ sidebar( { siteData } ) {
14
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
15
+ return isBlockTheme ||
16
+ isClassicThemeWithStyleBookSupport( siteData ) ? (
17
+ <SidebarNavigationScreenMain />
18
+ ) : (
19
+ <SidebarNavigationScreenUnsupported />
20
+ );
21
+ },
22
+ preview( { siteData } ) {
23
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
24
+ return isBlockTheme ||
25
+ isClassicThemeWithStyleBookSupport( siteData ) ? (
26
+ <Editor isHomeRoute />
27
+ ) : undefined;
28
+ },
29
+ mobile( { siteData } ) {
30
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
31
+ return isBlockTheme ||
32
+ isClassicThemeWithStyleBookSupport( siteData ) ? (
33
+ <SidebarNavigationScreenMain />
34
+ ) : (
35
+ <SidebarNavigationScreenUnsupported />
36
+ );
37
+ },
14
38
  },
15
39
  };
@@ -8,6 +8,7 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
8
8
  */
9
9
  import Editor from '../editor';
10
10
  import SidebarNavigationScreenNavigationMenu from '../sidebar-navigation-screen-navigation-menu';
11
+ import SidebarNavigationScreenUnsupported from '../sidebar-navigation-screen-unsupported';
11
12
  import { unlock } from '../../lock-unlock';
12
13
 
13
14
  const { useLocation } = unlock( routerPrivateApis );
@@ -27,10 +28,29 @@ export const navigationItemRoute = {
27
28
  name: 'navigation-item',
28
29
  path: '/wp_navigation/:postId',
29
30
  areas: {
30
- sidebar: (
31
- <SidebarNavigationScreenNavigationMenu backPath="/navigation" />
32
- ),
33
- preview: <Editor />,
34
- mobile: <MobileNavigationItemView />,
31
+ sidebar( { siteData } ) {
32
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
33
+ return isBlockTheme ? (
34
+ <SidebarNavigationScreenNavigationMenu backPath="/navigation" />
35
+ ) : (
36
+ <SidebarNavigationScreenUnsupported />
37
+ );
38
+ },
39
+ preview( { siteData } ) {
40
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
41
+ return isBlockTheme ? (
42
+ <Editor />
43
+ ) : (
44
+ <SidebarNavigationScreenUnsupported />
45
+ );
46
+ },
47
+ mobile( { siteData } ) {
48
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
49
+ return isBlockTheme ? (
50
+ <MobileNavigationItemView />
51
+ ) : (
52
+ <SidebarNavigationScreenUnsupported />
53
+ );
54
+ },
35
55
  },
36
56
  };
@@ -8,6 +8,7 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
8
8
  */
9
9
  import Editor from '../editor';
10
10
  import SidebarNavigationScreenNavigationMenus from '../sidebar-navigation-screen-navigation-menus';
11
+ import SidebarNavigationScreenUnsupported from '../sidebar-navigation-screen-unsupported';
11
12
  import { unlock } from '../../lock-unlock';
12
13
 
13
14
  const { useLocation } = unlock( routerPrivateApis );
@@ -27,8 +28,25 @@ export const navigationRoute = {
27
28
  name: 'navigation',
28
29
  path: '/navigation',
29
30
  areas: {
30
- sidebar: <SidebarNavigationScreenNavigationMenus backPath="/" />,
31
- preview: <Editor />,
32
- mobile: <MobileNavigationView />,
31
+ sidebar( { siteData } ) {
32
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
33
+ return isBlockTheme ? (
34
+ <SidebarNavigationScreenNavigationMenus backPath="/" />
35
+ ) : (
36
+ <SidebarNavigationScreenUnsupported />
37
+ );
38
+ },
39
+ preview( { siteData } ) {
40
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
41
+ return isBlockTheme ? <Editor /> : undefined;
42
+ },
43
+ mobile( { siteData } ) {
44
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
45
+ return isBlockTheme ? (
46
+ <MobileNavigationView />
47
+ ) : (
48
+ <SidebarNavigationScreenUnsupported />
49
+ );
50
+ },
33
51
  },
34
52
  };
@@ -9,19 +9,39 @@ import { __ } from '@wordpress/i18n';
9
9
  import Editor from '../editor';
10
10
  import DataViewsSidebarContent from '../sidebar-dataviews';
11
11
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
12
+ import SidebarNavigationScreenUnsupported from '../sidebar-navigation-screen-unsupported';
12
13
 
13
14
  export const pageItemRoute = {
14
15
  name: 'page-item',
15
16
  path: '/page/:postId',
16
17
  areas: {
17
- sidebar: (
18
- <SidebarNavigationScreen
19
- title={ __( 'Pages' ) }
20
- backPath="/"
21
- content={ <DataViewsSidebarContent postType="page" /> }
22
- />
23
- ),
24
- mobile: <Editor />,
25
- preview: <Editor />,
18
+ sidebar( { siteData } ) {
19
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
20
+ return isBlockTheme ? (
21
+ <SidebarNavigationScreen
22
+ title={ __( 'Pages' ) }
23
+ backPath="/"
24
+ content={ <DataViewsSidebarContent postType="page" /> }
25
+ />
26
+ ) : (
27
+ <SidebarNavigationScreenUnsupported />
28
+ );
29
+ },
30
+ mobile( { siteData } ) {
31
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
32
+ return isBlockTheme ? (
33
+ <Editor />
34
+ ) : (
35
+ <SidebarNavigationScreenUnsupported />
36
+ );
37
+ },
38
+ preview( { siteData } ) {
39
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
40
+ return isBlockTheme ? (
41
+ <Editor />
42
+ ) : (
43
+ <SidebarNavigationScreenUnsupported />
44
+ );
45
+ },
26
46
  },
27
47
  };
@@ -9,6 +9,7 @@ import { __ } from '@wordpress/i18n';
9
9
  */
10
10
  import Editor from '../editor';
11
11
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
12
+ import SidebarNavigationScreenUnsupported from '../sidebar-navigation-screen-unsupported';
12
13
  import DataViewsSidebarContent from '../sidebar-dataviews';
13
14
  import PostList from '../post-list';
14
15
  import { unlock } from '../../lock-unlock';
@@ -27,21 +28,40 @@ export const pagesRoute = {
27
28
  name: 'pages',
28
29
  path: '/page',
29
30
  areas: {
30
- sidebar: (
31
- <SidebarNavigationScreen
32
- title={ __( 'Pages' ) }
33
- backPath="/"
34
- content={ <DataViewsSidebarContent postType="page" /> }
35
- />
36
- ),
37
- content: <PostList postType="page" />,
38
- preview( { query } ) {
31
+ sidebar( { siteData } ) {
32
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
33
+ return isBlockTheme ? (
34
+ <SidebarNavigationScreen
35
+ title={ __( 'Pages' ) }
36
+ backPath="/"
37
+ content={ <DataViewsSidebarContent postType="page" /> }
38
+ />
39
+ ) : (
40
+ <SidebarNavigationScreenUnsupported />
41
+ );
42
+ },
43
+ content( { siteData } ) {
44
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
45
+ return isBlockTheme ? <PostList postType="page" /> : undefined;
46
+ },
47
+ preview( { query, siteData } ) {
48
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
49
+ if ( ! isBlockTheme ) {
50
+ return undefined;
51
+ }
39
52
  const isListView =
40
53
  ( query.layout === 'list' || ! query.layout ) &&
41
54
  query.isCustom !== 'true';
42
55
  return isListView ? <Editor /> : undefined;
43
56
  },
44
- mobile: <MobilePagesView />,
57
+ mobile( { siteData } ) {
58
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
59
+ return isBlockTheme ? (
60
+ <MobilePagesView />
61
+ ) : (
62
+ <SidebarNavigationScreenUnsupported />
63
+ );
64
+ },
45
65
  edit( { query } ) {
46
66
  const hasQuickEdit =
47
67
  ( query.layout ?? 'list' ) !== 'list' && !! query.quickEdit;
@@ -3,12 +3,20 @@
3
3
  */
4
4
  import Editor from '../editor';
5
5
  import SidebarNavigationScreenPatterns from '../sidebar-navigation-screen-patterns';
6
+ import { isClassicThemeWithStyleBookSupport } from './utils';
6
7
 
7
8
  export const patternItemRoute = {
8
9
  name: 'pattern-item',
9
10
  path: '/wp_block/:postId',
10
11
  areas: {
11
- sidebar: <SidebarNavigationScreenPatterns backPath="/" />,
12
+ sidebar( { siteData } ) {
13
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
14
+ const backPath =
15
+ isBlockTheme || isClassicThemeWithStyleBookSupport( siteData )
16
+ ? '/'
17
+ : undefined;
18
+ return <SidebarNavigationScreenPatterns backPath={ backPath } />;
19
+ },
12
20
  mobile: <Editor />,
13
21
  preview: <Editor />,
14
22
  },
@@ -1,34 +1,35 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { privateApis as routerPrivateApis } from '@wordpress/router';
5
-
6
1
  /**
7
2
  * Internal dependencies
8
3
  */
9
4
  import SidebarNavigationScreenPatterns from '../sidebar-navigation-screen-patterns';
10
5
  import PagePatterns from '../page-patterns';
11
- import { unlock } from '../../lock-unlock';
12
-
13
- const { useLocation } = unlock( routerPrivateApis );
14
-
15
- function MobilePatternsView() {
16
- const { query = {} } = useLocation();
17
- const { categoryId } = query;
18
-
19
- return !! categoryId ? (
20
- <PagePatterns />
21
- ) : (
22
- <SidebarNavigationScreenPatterns backPath="/" />
23
- );
24
- }
6
+ import { isClassicThemeWithStyleBookSupport } from './utils';
25
7
 
26
8
  export const patternsRoute = {
27
9
  name: 'patterns',
28
10
  path: '/pattern',
29
11
  areas: {
30
- sidebar: <SidebarNavigationScreenPatterns backPath="/" />,
12
+ sidebar( { siteData } ) {
13
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
14
+ const backPath =
15
+ isBlockTheme || isClassicThemeWithStyleBookSupport( siteData )
16
+ ? '/'
17
+ : undefined;
18
+ return <SidebarNavigationScreenPatterns backPath={ backPath } />;
19
+ },
31
20
  content: <PagePatterns />,
32
- mobile: <MobilePatternsView />,
21
+ mobile( { siteData, query } ) {
22
+ const { categoryId } = query;
23
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
24
+ const backPath =
25
+ isBlockTheme || isClassicThemeWithStyleBookSupport( siteData )
26
+ ? '/'
27
+ : undefined;
28
+ return !! categoryId ? (
29
+ <PagePatterns />
30
+ ) : (
31
+ <SidebarNavigationScreenPatterns backPath={ backPath } />
32
+ );
33
+ },
33
34
  },
34
35
  };
@@ -7,22 +7,36 @@ import { __ } from '@wordpress/i18n';
7
7
  * Internal dependencies
8
8
  */
9
9
  import SidebarNavigationScreen from '../sidebar-navigation-screen';
10
+ import SidebarNavigationScreenUnsupported from '../sidebar-navigation-screen-unsupported';
10
11
  import { StyleBookPreview } from '../style-book';
12
+ import { isClassicThemeWithStyleBookSupport } from './utils';
11
13
 
12
14
  export const stylebookRoute = {
13
15
  name: 'stylebook',
14
16
  path: '/stylebook',
15
17
  areas: {
16
- sidebar: (
17
- <SidebarNavigationScreen
18
- title={ __( 'Styles' ) }
19
- backPath="/"
20
- description={ __(
21
- `Preview your website's visual identity: colors, typography, and blocks.`
22
- ) }
23
- />
24
- ),
25
- preview: <StyleBookPreview isStatic />,
26
- mobile: <StyleBookPreview isStatic />,
18
+ sidebar( { siteData } ) {
19
+ return isClassicThemeWithStyleBookSupport( siteData ) ? (
20
+ <SidebarNavigationScreen
21
+ title={ __( 'Styles' ) }
22
+ backPath="/"
23
+ description={ __(
24
+ `Preview your website's visual identity: colors, typography, and blocks.`
25
+ ) }
26
+ />
27
+ ) : (
28
+ <SidebarNavigationScreenUnsupported />
29
+ );
30
+ },
31
+ preview( { siteData } ) {
32
+ return isClassicThemeWithStyleBookSupport( siteData ) ? (
33
+ <StyleBookPreview isStatic />
34
+ ) : undefined;
35
+ },
36
+ mobile( { siteData } ) {
37
+ return isClassicThemeWithStyleBookSupport( siteData ) ? (
38
+ <StyleBookPreview isStatic />
39
+ ) : undefined;
40
+ },
27
41
  },
28
42
  };
@@ -3,13 +3,35 @@
3
3
  */
4
4
  import Editor from '../editor';
5
5
  import SidebarNavigationScreenTemplatesBrowse from '../sidebar-navigation-screen-templates-browse';
6
+ import SidebarNavigationScreenUnsupported from '../sidebar-navigation-screen-unsupported';
6
7
 
7
8
  export const templateItemRoute = {
8
9
  name: 'template-item',
9
10
  path: '/wp_template/*postId',
10
11
  areas: {
11
- sidebar: <SidebarNavigationScreenTemplatesBrowse backPath="/" />,
12
- mobile: <Editor />,
13
- preview: <Editor />,
12
+ sidebar( { siteData } ) {
13
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
14
+ return isBlockTheme ? (
15
+ <SidebarNavigationScreenTemplatesBrowse backPath="/" />
16
+ ) : (
17
+ <SidebarNavigationScreenUnsupported />
18
+ );
19
+ },
20
+ mobile( { siteData } ) {
21
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
22
+ return isBlockTheme ? (
23
+ <Editor />
24
+ ) : (
25
+ <SidebarNavigationScreenUnsupported />
26
+ );
27
+ },
28
+ preview( { siteData } ) {
29
+ const isBlockTheme = siteData.currentTheme?.is_block_theme;
30
+ return isBlockTheme ? (
31
+ <Editor />
32
+ ) : (
33
+ <SidebarNavigationScreenUnsupported />
34
+ );
35
+ },
14
36
  },
15
37
  };