@wordpress/edit-site 5.19.1 → 5.19.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/add-new-pattern/index.js +5 -9
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/global-styles/font-families.js +2 -1
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-library-modal/collection-font-details.js +3 -1
- package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +26 -30
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +31 -11
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/index.js +10 -3
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +27 -7
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/local-fonts.js +35 -8
- package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/upload-fonts.js +26 -0
- package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -1
- package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js +71 -0
- package/build/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/index.js +3 -0
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +1 -1
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/page-patterns/grid.js +0 -1
- package/build/components/page-patterns/grid.js.map +1 -1
- package/build/components/page-patterns/patterns-list.js +1 -1
- package/build/components/page-patterns/patterns-list.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +5 -1
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-template-parts/index.js +12 -1
- package/build/components/page-template-parts/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +2 -2
- package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
- package/build/components/sidebar-edit-mode/template-panel/template-areas.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js +14 -2
- package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-template/home-template-details.js +13 -18
- package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/index.js +16 -4
- package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +5 -9
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +3 -2
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/collection-font-details.js +3 -1
- package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +26 -30
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +32 -12
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/index.js +10 -3
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +28 -8
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/local-fonts.js +38 -11
- package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js +17 -0
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -1
- package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js +63 -0
- package/build-module/components/global-styles/font-library-modal/utils/get-notice-from-response.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/index.js +3 -0
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +1 -1
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/page-patterns/grid.js +0 -1
- package/build-module/components/page-patterns/grid.js.map +1 -1
- package/build-module/components/page-patterns/patterns-list.js +1 -1
- package/build-module/components/page-patterns/patterns-list.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +5 -1
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-template-parts/index.js +12 -1
- package/build-module/components/page-template-parts/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +3 -3
- package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/template-areas.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.js +14 -2
- package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +14 -19
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +16 -4
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build-style/style-rtl.css +16 -2
- package/build-style/style.css +16 -2
- package/package.json +40 -40
- package/src/components/add-new-pattern/index.js +5 -8
- package/src/components/global-styles/font-families.js +5 -1
- package/src/components/global-styles/font-library-modal/collection-font-details.js +1 -1
- package/src/components/global-styles/font-library-modal/context.js +36 -38
- package/src/components/global-styles/font-library-modal/font-collection.js +41 -12
- package/src/components/global-styles/font-library-modal/index.js +16 -6
- package/src/components/global-styles/font-library-modal/installed-fonts.js +36 -6
- package/src/components/global-styles/font-library-modal/local-fonts.js +65 -23
- package/src/components/global-styles/font-library-modal/style.scss +18 -1
- package/src/components/global-styles/font-library-modal/upload-fonts.js +20 -0
- package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +4 -3
- package/src/components/global-styles/font-library-modal/utils/get-notice-from-response.js +62 -0
- package/src/components/global-styles/font-library-modal/utils/index.js +4 -0
- package/src/components/global-styles/screen-typography.js +4 -3
- package/src/components/page-patterns/grid.js +1 -1
- package/src/components/page-patterns/patterns-list.js +1 -1
- package/src/components/page-patterns/use-patterns.js +7 -3
- package/src/components/page-template-parts/index.js +14 -1
- package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +1 -1
- package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +18 -16
- package/src/components/sidebar-edit-mode/template-panel/template-areas.js +1 -1
- package/src/components/sidebar-navigation-screen/style.scss +0 -1
- package/src/components/sidebar-navigation-screen-patterns/index.js +25 -4
- package/src/components/sidebar-navigation-screen-template/home-template-details.js +27 -35
- package/src/components/sidebar-navigation-screen-templates-browse/index.js +12 -4
|
@@ -92,11 +92,24 @@
|
|
|
92
92
|
align-items: center;
|
|
93
93
|
display: flex;
|
|
94
94
|
justify-content: center;
|
|
95
|
-
height:
|
|
95
|
+
height: 250px;
|
|
96
96
|
width: 100%;
|
|
97
97
|
background-color: #f0f0f0;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
.font-library-modal__local-fonts {
|
|
101
|
+
margin: 0 auto;
|
|
102
|
+
width: 80%;
|
|
103
|
+
|
|
104
|
+
.font-library-modal__upload-area__text {
|
|
105
|
+
color: #6e6e6e;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.font-library-modal__upload-area__notice {
|
|
109
|
+
margin: 0;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
100
113
|
.font-library-modal__font-name {
|
|
101
114
|
font-weight: bold;
|
|
102
115
|
}
|
|
@@ -137,3 +150,7 @@
|
|
|
137
150
|
max-width: 350px;
|
|
138
151
|
}
|
|
139
152
|
}
|
|
153
|
+
|
|
154
|
+
.font-library-modal__font-collection__notice {
|
|
155
|
+
margin: 0;
|
|
156
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __experimentalSpacer as Spacer } from '@wordpress/components';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import LocalFonts from './local-fonts';
|
|
10
|
+
|
|
11
|
+
function UploadFonts() {
|
|
12
|
+
return (
|
|
13
|
+
<>
|
|
14
|
+
<Spacer margin={ 8 } />
|
|
15
|
+
<LocalFonts />
|
|
16
|
+
</>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export default UploadFonts;
|
|
@@ -15,7 +15,8 @@ export function getFontsOutline( fonts ) {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export function isFontFontFaceInOutline( slug, face, outline ) {
|
|
18
|
-
|
|
19
|
-
outline[ slug ]
|
|
20
|
-
|
|
18
|
+
if ( ! face ) {
|
|
19
|
+
return !! outline[ slug ];
|
|
20
|
+
}
|
|
21
|
+
return !! outline[ slug ]?.[ `${ face.fontStyle }-${ face.fontWeight }` ];
|
|
21
22
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
|
|
6
|
+
export function getNoticeFromInstallResponse( response ) {
|
|
7
|
+
const { errors = [], successes = [] } = response;
|
|
8
|
+
// Everything failed.
|
|
9
|
+
if ( errors.length && ! successes.length ) {
|
|
10
|
+
return {
|
|
11
|
+
type: 'error',
|
|
12
|
+
message: __( 'Error installing the fonts.' ),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Eveerything succeeded.
|
|
17
|
+
if ( ! errors.length && successes.length ) {
|
|
18
|
+
return {
|
|
19
|
+
type: 'success',
|
|
20
|
+
message: __( 'Fonts were installed successfully.' ),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Some succeeded, some failed.
|
|
25
|
+
if ( errors.length && successes.length ) {
|
|
26
|
+
return {
|
|
27
|
+
type: 'warning',
|
|
28
|
+
message: __(
|
|
29
|
+
'Some fonts were installed successfully and some failed.'
|
|
30
|
+
),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function getNoticeFromUninstallResponse( response ) {
|
|
36
|
+
const { errors = [], successes = [] } = response;
|
|
37
|
+
// Everything failed.
|
|
38
|
+
if ( errors.length && ! successes.length ) {
|
|
39
|
+
return {
|
|
40
|
+
type: 'error',
|
|
41
|
+
message: __( 'Error uninstalling the fonts.' ),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Everything succeeded.
|
|
46
|
+
if ( ! errors.length && successes.length ) {
|
|
47
|
+
return {
|
|
48
|
+
type: 'success',
|
|
49
|
+
message: __( 'Fonts were uninstalled successfully.' ),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Some succeeded, some failed.
|
|
54
|
+
if ( errors.length && successes.length ) {
|
|
55
|
+
return {
|
|
56
|
+
type: 'warning',
|
|
57
|
+
message: __(
|
|
58
|
+
'Some fonts were uninstalled successfully and some failed.'
|
|
59
|
+
),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -109,6 +109,10 @@ export async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
export function getDisplaySrcFromFontFace( input, urlPrefix ) {
|
|
112
|
+
if ( ! input ) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
|
|
112
116
|
let src;
|
|
113
117
|
if ( Array.isArray( input ) ) {
|
|
114
118
|
src = input[ 0 ];
|
|
@@ -22,9 +22,10 @@ function ScreenTypography() {
|
|
|
22
22
|
/>
|
|
23
23
|
<div className="edit-site-global-styles-screen-typography">
|
|
24
24
|
<VStack spacing={ 6 }>
|
|
25
|
-
{
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
{ FontFamilies &&
|
|
26
|
+
! window.__experimentalDisableFontLibrary && (
|
|
27
|
+
<FontFamilies />
|
|
28
|
+
) }
|
|
28
29
|
<TypographyElements />
|
|
29
30
|
</VStack>
|
|
30
31
|
</div>
|
|
@@ -9,7 +9,7 @@ export default function Grid( { categoryId, items, ...props } ) {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
return (
|
|
12
|
-
<ul
|
|
12
|
+
<ul className="edit-site-patterns__grid" { ...props }>
|
|
13
13
|
{ items.map( ( item ) => (
|
|
14
14
|
<GridItem
|
|
15
15
|
key={ item.name }
|
|
@@ -35,7 +35,7 @@ const { useLocation, useHistory } = unlock( routerPrivateApis );
|
|
|
35
35
|
const SYNC_FILTERS = {
|
|
36
36
|
all: __( 'All' ),
|
|
37
37
|
[ PATTERN_SYNC_TYPES.full ]: __( 'Synced' ),
|
|
38
|
-
[ PATTERN_SYNC_TYPES.unsynced ]: __( '
|
|
38
|
+
[ PATTERN_SYNC_TYPES.unsynced ]: __( 'Not synced' ),
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
const SYNC_DESCRIPTIONS = {
|
|
@@ -155,9 +155,13 @@ const selectPatterns = createSelector(
|
|
|
155
155
|
];
|
|
156
156
|
|
|
157
157
|
if ( syncStatus ) {
|
|
158
|
-
patterns
|
|
159
|
-
|
|
160
|
-
)
|
|
158
|
+
// User patterns can have their sync statuses checked directly
|
|
159
|
+
// Non-user patterns are all unsynced for the time being.
|
|
160
|
+
patterns = patterns.filter( ( pattern ) => {
|
|
161
|
+
return pattern.id
|
|
162
|
+
? pattern.syncStatus === syncStatus
|
|
163
|
+
: syncStatus === PATTERN_SYNC_TYPES.unsynced;
|
|
164
|
+
} );
|
|
161
165
|
}
|
|
162
166
|
|
|
163
167
|
if ( categoryId ) {
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
import { __ } from '@wordpress/i18n';
|
|
10
10
|
import { useEntityRecords } from '@wordpress/core-data';
|
|
11
11
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
12
|
+
import { privateApis as routerPrivateApis } from '@wordpress/router';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Internal dependencies
|
|
@@ -20,8 +21,15 @@ import AddedBy from '../list/added-by';
|
|
|
20
21
|
import TemplateActions from '../template-actions';
|
|
21
22
|
import AddNewTemplatePart from './add-new-template-part';
|
|
22
23
|
import { TEMPLATE_PART_POST_TYPE } from '../../utils/constants';
|
|
24
|
+
import { unlock } from '../../lock-unlock';
|
|
25
|
+
|
|
26
|
+
const { useLocation } = unlock( routerPrivateApis );
|
|
23
27
|
|
|
24
28
|
export default function PageTemplateParts() {
|
|
29
|
+
const {
|
|
30
|
+
params: { didAccessPatternsPage },
|
|
31
|
+
} = useLocation();
|
|
32
|
+
|
|
25
33
|
const { records: templateParts } = useEntityRecords(
|
|
26
34
|
'postType',
|
|
27
35
|
TEMPLATE_PART_POST_TYPE,
|
|
@@ -40,8 +48,13 @@ export default function PageTemplateParts() {
|
|
|
40
48
|
params={ {
|
|
41
49
|
postId: templatePart.id,
|
|
42
50
|
postType: templatePart.type,
|
|
51
|
+
didAccessPatternsPage: !! didAccessPatternsPage
|
|
52
|
+
? 1
|
|
53
|
+
: undefined,
|
|
54
|
+
} }
|
|
55
|
+
state={ {
|
|
56
|
+
backPath: '/wp_template_part/all',
|
|
43
57
|
} }
|
|
44
|
-
state={ { backPath: '/wp_template_part/all' } }
|
|
45
58
|
>
|
|
46
59
|
{ decodeEntities(
|
|
47
60
|
templatePart.title?.rendered ||
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
5
5
|
import { useEffect, useMemo, useState } from '@wordpress/element';
|
|
6
|
-
import { FormTokenField, PanelRow } from '@wordpress/components';
|
|
6
|
+
import { FormTokenField, FlexBlock, PanelRow } from '@wordpress/components';
|
|
7
7
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
8
8
|
import { store as coreStore } from '@wordpress/core-data';
|
|
9
9
|
import { useDebounce } from '@wordpress/compose';
|
|
@@ -257,21 +257,23 @@ export default function PatternCategories( { post } ) {
|
|
|
257
257
|
|
|
258
258
|
return (
|
|
259
259
|
<PanelRow initialOpen={ true } title={ __( 'Categories' ) }>
|
|
260
|
-
<
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
260
|
+
<FlexBlock>
|
|
261
|
+
<FormTokenField
|
|
262
|
+
__next40pxDefaultSize
|
|
263
|
+
value={ values }
|
|
264
|
+
suggestions={ suggestions }
|
|
265
|
+
onChange={ onChange }
|
|
266
|
+
onInputChange={ debouncedSearch }
|
|
267
|
+
maxSuggestions={ MAX_TERMS_SUGGESTIONS }
|
|
268
|
+
label={ __( 'Pattern categories' ) }
|
|
269
|
+
messages={ {
|
|
270
|
+
added: termAddedLabel,
|
|
271
|
+
removed: termRemovedLabel,
|
|
272
|
+
remove: removeTermLabel,
|
|
273
|
+
} }
|
|
274
|
+
tokenizeOnBlur
|
|
275
|
+
/>
|
|
276
|
+
</FlexBlock>
|
|
275
277
|
</PanelRow>
|
|
276
278
|
);
|
|
277
279
|
}
|
|
@@ -73,7 +73,7 @@ export default function TemplateAreas() {
|
|
|
73
73
|
|
|
74
74
|
<ul className="edit-site-template-card__template-areas-list">
|
|
75
75
|
{ templateParts.map( ( { templatePart, block } ) => (
|
|
76
|
-
<li key={
|
|
76
|
+
<li key={ block.clientId }>
|
|
77
77
|
<TemplateAreaItem
|
|
78
78
|
area={ templatePart.area }
|
|
79
79
|
clientId={ block.clientId }
|
|
@@ -10,6 +10,8 @@ import { useViewportMatch } from '@wordpress/compose';
|
|
|
10
10
|
import { getTemplatePartIcon } from '@wordpress/editor';
|
|
11
11
|
import { __ } from '@wordpress/i18n';
|
|
12
12
|
import { getQueryArgs } from '@wordpress/url';
|
|
13
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
14
|
+
import { useSelect } from '@wordpress/data';
|
|
13
15
|
import { file } from '@wordpress/icons';
|
|
14
16
|
|
|
15
17
|
/**
|
|
@@ -27,6 +29,7 @@ import {
|
|
|
27
29
|
import { useLink } from '../routes/link';
|
|
28
30
|
import usePatternCategories from './use-pattern-categories';
|
|
29
31
|
import useTemplatePartAreas from './use-template-part-areas';
|
|
32
|
+
import { store as editSiteStore } from '../../store';
|
|
30
33
|
|
|
31
34
|
function TemplatePartGroup( { areas, currentArea, currentType } ) {
|
|
32
35
|
return (
|
|
@@ -93,8 +96,23 @@ export default function SidebarNavigationScreenPatterns() {
|
|
|
93
96
|
const { templatePartAreas, hasTemplateParts, isLoading } =
|
|
94
97
|
useTemplatePartAreas();
|
|
95
98
|
const { patternCategories, hasPatterns } = usePatternCategories();
|
|
99
|
+
const isBlockBasedTheme = useSelect(
|
|
100
|
+
( select ) => select( coreStore ).getCurrentTheme()?.is_block_theme,
|
|
101
|
+
[]
|
|
102
|
+
);
|
|
103
|
+
const isTemplatePartsMode = useSelect( ( select ) => {
|
|
104
|
+
const settings = select( editSiteStore ).getSettings();
|
|
105
|
+
return !! settings.supportsTemplatePartsMode;
|
|
106
|
+
}, [] );
|
|
107
|
+
|
|
108
|
+
const templatePartsLink = useLink( {
|
|
109
|
+
path: '/wp_template_part/all',
|
|
110
|
+
// If a classic theme that supports template parts accessed
|
|
111
|
+
// the Patterns page directly, preserve that state in the URL.
|
|
112
|
+
didAccessPatternsPage:
|
|
113
|
+
! isBlockBasedTheme && isTemplatePartsMode ? 1 : undefined,
|
|
114
|
+
} );
|
|
96
115
|
|
|
97
|
-
const templatePartsLink = useLink( { path: '/wp_template_part/all' } );
|
|
98
116
|
const footer = ! isMobileViewport ? (
|
|
99
117
|
<ItemGroup>
|
|
100
118
|
<SidebarNavigationItem
|
|
@@ -104,14 +122,17 @@ export default function SidebarNavigationScreenPatterns() {
|
|
|
104
122
|
>
|
|
105
123
|
{ __( 'Manage all of my patterns' ) }
|
|
106
124
|
</SidebarNavigationItem>
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
125
|
+
{ ( isBlockBasedTheme || isTemplatePartsMode ) && (
|
|
126
|
+
<SidebarNavigationItem withChevron { ...templatePartsLink }>
|
|
127
|
+
{ __( 'Manage all template parts' ) }
|
|
128
|
+
</SidebarNavigationItem>
|
|
129
|
+
) }
|
|
110
130
|
</ItemGroup>
|
|
111
131
|
) : undefined;
|
|
112
132
|
|
|
113
133
|
return (
|
|
114
134
|
<SidebarNavigationScreen
|
|
135
|
+
isRoot={ ! isBlockBasedTheme }
|
|
115
136
|
title={ __( 'Patterns' ) }
|
|
116
137
|
description={ __(
|
|
117
138
|
'Manage what patterns are available when editing the site.'
|
|
@@ -7,7 +7,6 @@ import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
7
7
|
import { store as coreStore } from '@wordpress/core-data';
|
|
8
8
|
import {
|
|
9
9
|
CheckboxControl,
|
|
10
|
-
__experimentalUseNavigator as useNavigator,
|
|
11
10
|
__experimentalInputControl as InputControl,
|
|
12
11
|
__experimentalNumberControl as NumberControl,
|
|
13
12
|
__experimentalTruncate as Truncate,
|
|
@@ -62,10 +61,6 @@ function TemplateAreaButton( { postId, icon, title } ) {
|
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
export default function HomeTemplateDetails() {
|
|
65
|
-
const navigator = useNavigator();
|
|
66
|
-
const {
|
|
67
|
-
params: { postType, postId },
|
|
68
|
-
} = navigator;
|
|
69
64
|
const { editEntityRecord } = useDispatch( coreStore );
|
|
70
65
|
|
|
71
66
|
const {
|
|
@@ -75,34 +70,30 @@ export default function HomeTemplateDetails() {
|
|
|
75
70
|
postsPageTitle,
|
|
76
71
|
postsPageId,
|
|
77
72
|
currentTemplateParts,
|
|
78
|
-
} = useSelect(
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
)
|
|
92
|
-
: EMPTY_OBJECT;
|
|
73
|
+
} = useSelect( ( select ) => {
|
|
74
|
+
const { getEntityRecord } = select( coreStore );
|
|
75
|
+
const { getSettings, getCurrentTemplateTemplateParts } = unlock(
|
|
76
|
+
select( editSiteStore )
|
|
77
|
+
);
|
|
78
|
+
const siteSettings = getEntityRecord( 'root', 'site' );
|
|
79
|
+
const _postsPageRecord = siteSettings?.page_for_posts
|
|
80
|
+
? getEntityRecord(
|
|
81
|
+
'postType',
|
|
82
|
+
'page',
|
|
83
|
+
siteSettings?.page_for_posts
|
|
84
|
+
)
|
|
85
|
+
: EMPTY_OBJECT;
|
|
93
86
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
[ postType, postId ]
|
|
105
|
-
);
|
|
87
|
+
return {
|
|
88
|
+
allowCommentsOnNewPosts:
|
|
89
|
+
siteSettings?.default_comment_status === 'open',
|
|
90
|
+
postsPageTitle: _postsPageRecord?.title?.rendered,
|
|
91
|
+
postsPageId: _postsPageRecord?.id,
|
|
92
|
+
postsPerPage: siteSettings?.posts_per_page,
|
|
93
|
+
templatePartAreas: getSettings()?.defaultTemplatePartAreas,
|
|
94
|
+
currentTemplateParts: getCurrentTemplateTemplateParts(),
|
|
95
|
+
};
|
|
96
|
+
}, [] );
|
|
106
97
|
|
|
107
98
|
const [ commentsOnNewPostsValue, setCommentsOnNewPostsValue ] =
|
|
108
99
|
useState( '' );
|
|
@@ -126,11 +117,12 @@ export default function HomeTemplateDetails() {
|
|
|
126
117
|
*/
|
|
127
118
|
const templateAreas = useMemo( () => {
|
|
128
119
|
return currentTemplateParts.length && templatePartAreas
|
|
129
|
-
? currentTemplateParts.map( ( { templatePart } ) => ( {
|
|
120
|
+
? currentTemplateParts.map( ( { templatePart, block } ) => ( {
|
|
130
121
|
...templatePartAreas?.find(
|
|
131
122
|
( { area } ) => area === templatePart?.area
|
|
132
123
|
),
|
|
133
124
|
...templatePart,
|
|
125
|
+
clientId: block.clientId,
|
|
134
126
|
} ) )
|
|
135
127
|
: [];
|
|
136
128
|
}, [ currentTemplateParts, templatePartAreas ] );
|
|
@@ -214,9 +206,9 @@ export default function HomeTemplateDetails() {
|
|
|
214
206
|
>
|
|
215
207
|
<ItemGroup>
|
|
216
208
|
{ templateAreas.map(
|
|
217
|
-
( { label, icon, theme, slug, title } ) => (
|
|
209
|
+
( { clientId, label, icon, theme, slug, title } ) => (
|
|
218
210
|
<SidebarNavigationScreenDetailsPanelRow
|
|
219
|
-
key={
|
|
211
|
+
key={ clientId }
|
|
220
212
|
>
|
|
221
213
|
<TemplateAreaButton
|
|
222
214
|
postId={ `${ theme }//${ slug }` }
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
5
|
import { useSelect } from '@wordpress/data';
|
|
6
6
|
import { __experimentalUseNavigator as useNavigator } from '@wordpress/components';
|
|
7
|
+
import { privateApis as routerPrivateApis } from '@wordpress/router';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Internal dependencies
|
|
@@ -14,6 +15,7 @@ import {
|
|
|
14
15
|
TEMPLATE_POST_TYPE,
|
|
15
16
|
TEMPLATE_PART_POST_TYPE,
|
|
16
17
|
} from '../../utils/constants';
|
|
18
|
+
import { unlock } from '../../lock-unlock';
|
|
17
19
|
|
|
18
20
|
const config = {
|
|
19
21
|
[ TEMPLATE_POST_TYPE ]: {
|
|
@@ -31,20 +33,26 @@ const config = {
|
|
|
31
33
|
},
|
|
32
34
|
};
|
|
33
35
|
|
|
36
|
+
const { useLocation } = unlock( routerPrivateApis );
|
|
37
|
+
|
|
34
38
|
export default function SidebarNavigationScreenTemplatesBrowse() {
|
|
35
39
|
const {
|
|
36
40
|
params: { postType },
|
|
37
41
|
} = useNavigator();
|
|
42
|
+
const {
|
|
43
|
+
params: { didAccessPatternsPage },
|
|
44
|
+
} = useLocation();
|
|
38
45
|
|
|
39
46
|
const isTemplatePartsMode = useSelect( ( select ) => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
return !! settings.supportsTemplatePartsMode;
|
|
47
|
+
return !! select( editSiteStore ).getSettings()
|
|
48
|
+
.supportsTemplatePartsMode;
|
|
43
49
|
}, [] );
|
|
44
50
|
|
|
45
51
|
return (
|
|
46
52
|
<SidebarNavigationScreen
|
|
47
|
-
|
|
53
|
+
// If a classic theme that supports template parts has never
|
|
54
|
+
// accessed the Patterns page, return to the dashboard.
|
|
55
|
+
isRoot={ isTemplatePartsMode && ! didAccessPatternsPage }
|
|
48
56
|
title={ config[ postType ].title }
|
|
49
57
|
description={ config[ postType ].description }
|
|
50
58
|
backPath={ config[ postType ].backPath }
|