Skip to content

Commit cbae2a9

Browse files
Try using grid layout in Post Template
1 parent 1652c62 commit cbae2a9

File tree

3 files changed

+28
-12
lines changed

3 files changed

+28
-12
lines changed

packages/block-library/src/post-template/edit.js

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import classnames from 'classnames';
66
/**
77
* WordPress dependencies
88
*/
9-
import { memo, useMemo, useState } from '@wordpress/element';
9+
import { memo, useMemo, useState, useEffect } from '@wordpress/element';
1010
import { useSelect } from '@wordpress/data';
1111
import { __ } from '@wordpress/i18n';
1212
import {
@@ -70,6 +70,7 @@ function PostTemplateBlockPreview( {
7070
const MemoizedPostTemplateBlockPreview = memo( PostTemplateBlockPreview );
7171

7272
export default function PostTemplateEdit( {
73+
setAttributes,
7374
clientId,
7475
context: {
7576
query: {
@@ -95,11 +96,24 @@ export default function PostTemplateEdit( {
9596
} = {},
9697
queryContext = [ { page: 1 } ],
9798
templateSlug,
98-
displayLayout: { type: layoutType = 'flex', columns = 1 } = {},
99+
displayLayout: { type: layoutType = 'grid', columns = 1 } = {},
99100
previewPostType,
100101
},
101102
__unstableLayoutClassNames,
102103
} ) {
104+
const updatedLayoutType =
105+
layoutType === 'list' || layoutType === 'default' ? 'default' : 'grid';
106+
107+
useEffect( () => {
108+
setAttributes( {
109+
layout: {
110+
type: updatedLayoutType,
111+
isResponsive: false,
112+
numberOfColumns: columns,
113+
},
114+
} );
115+
}, [ updatedLayoutType, columns, setAttributes ] );
116+
103117
const [ { page } ] = queryContext;
104118
const [ activeBlockContextId, setActiveBlockContextId ] = useState();
105119
const { posts, blocks } = useSelect(
@@ -215,12 +229,9 @@ export default function PostTemplateEdit( {
215229
} ) ),
216230
[ posts ]
217231
);
218-
const hasLayoutFlex = layoutType === 'flex' && columns > 1;
232+
219233
const blockProps = useBlockProps( {
220-
className: classnames( __unstableLayoutClassNames, {
221-
'is-flex-container': hasLayoutFlex,
222-
[ `columns-${ columns }` ]: hasLayoutFlex,
223-
} ),
234+
className: classnames( __unstableLayoutClassNames ),
224235
} );
225236

226237
if ( ! posts ) {

packages/block-library/src/query/edit/inspector-controls/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ export default function QueryInspectorControls( {
9797
const showInheritControl = isControlAllowed( allowedControls, 'inherit' );
9898
const showPostTypeControl =
9999
! inherit && isControlAllowed( allowedControls, 'postType' );
100-
const showColumnsControl = displayLayout?.type === 'flex';
100+
const showColumnsControl =
101+
displayLayout?.type === 'grid' || displayLayout?.type === 'flex';
101102
const showOrderControl =
102103
! inherit && isControlAllowed( allowedControls, 'order' );
103104
const showStickyControl =

packages/block-library/src/query/edit/query-toolbar.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,22 @@ export default function QueryToolbar( {
3434
{
3535
icon: list,
3636
title: __( 'List view' ),
37-
onClick: () => setDisplayLayout( { type: 'list' } ),
38-
isActive: displayLayout?.type === 'list',
37+
onClick: () => setDisplayLayout( { type: 'default' } ),
38+
isActive:
39+
displayLayout?.type === 'default' ||
40+
displayLayout?.type === 'list',
3941
},
4042
{
4143
icon: grid,
4244
title: __( 'Grid view' ),
4345
onClick: () =>
4446
setDisplayLayout( {
45-
type: 'flex',
47+
type: 'grid',
4648
columns: displayLayout?.columns || 3,
4749
} ),
48-
isActive: displayLayout?.type === 'flex',
50+
isActive:
51+
displayLayout?.type === 'grid' ||
52+
displayLayout?.type === 'flex',
4953
},
5054
];
5155
return (

0 commit comments

Comments
 (0)