-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Site Editor: Don't allow creating template part on the Patterns page for non-block themes #52656
Conversation
Size Change: +105 B (0%) Total Size: 1.43 MB
ℹ️ View Unchanged
|
I can't comment on the implementation, but I agree – since template parts cannot be utilised when a classic/hybrid theme is active, it should not be possible to create them. Allowing access to the Patterns section seems reasonable – patterns can be used in classic/hybrid themes. With that said, I wonder if it makes sense to add a "Patterns" item under the Appearance menu, instead of the "Template Parts" one? Template parts can then be accessed via Patterns, which would be consistent with the site editor. |
@@ -65,7 +71,7 @@ export default function AddNewPattern() { | |||
onClick: () => setShowPatternModal( true ), | |||
title: __( 'Create pattern' ), | |||
}, | |||
] } | |||
].filter( Boolean ) } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can also use conditional spread and get rid of the filter.
[
...( ! isTemplatePartsMode
? [
{
icon: symbolFilled,
onClick: () =>
setShowTemplatePartModal( true ),
title: __( 'Create template part' ),
},
]
: [] ),
{
icon: symbol,
onClick: () => setShowPatternModal( true ),
title: __( 'Create pattern' ),
},
]
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @t-hamano!
The changes look good.
We had e2e tests for the Hybrid theme but looks like there were removed recently - #51078 (comment).
Thank you all for the reviews 😊
Yes, I completely agree with you on this approach. However, there is not much time left before the release of WordPress 6.3 😅 I also believe that adding the "Patterns" item under the Apperance menu has a impact and may be difficult to backport to 6.3 in the current phase. Any future implementations I have in mind now are summarized in this comment, so if you have any good ideas, please comment. |
I would like to merge this PR to backport to the next WordPress 6.3 RC1. If you find any unintended behavior or issues, please let me know. |
…for non-block themes (#52656) * Don't allow template part to be created on the Patterns page for non-block themes * Remove unnecessary theme directory name in E2E test
I just cherry-picked this PR to the update/second-round-RC1 branch to get it included in the next release: 5fadae5 |
* trunk: (36 commits) Use `_get_block_template_file` function and set $area variable. (#52708) Change Delete page menu item to Move to trash. (#52641) Search block: Enqueue view script through block.json (#52552) Patterns: fix bug with Create Patterns menu not showing in site editor page editing (#52671) Github workflow: add a PHP backport changes action (#52096) Add layout API documentation. (#52673) Show uncategorized patterns on the Editor > Patterns page (#52633) Patterns: Remove `reusable` text from menu once rename hint has been dismissed (#52664) Update locked pattern tooltips (#52497) Rich Text/Footnotes: fix getRichTextValues for useInnerBlocksProps.save (#52682) Use posts instead of template parts for navigation color tests (#52654) Site Editor: Don't allow creating template part on the Patterns page for non-block themes (#52656) Site Editor: Fix incorrect 'useSelect' usage (#52683) Update issue gardening automation with new label (#52173) i18n: Make the tab labels of `ColorGradientSettingsDropdown` component translatable (#52669) Post Content link color should not be applied to placeholder component links (#52367) [Mobile] Update toolbar icons and colors (#52336) Avoid copying global style presets via the styles compatibility hook (#52640) Show warning on removal of Post Template block in the site editor. (#52666) Backport tools: sort PRs to be cherry picked by merged/closed date (#52667) ...
* Try restoring the site editor animation (#51956) * Try restoring the site editor animation * fix header animation * Remove accidental addition of layout prop * tidy up formatting * fix animate presence issue * Fix animation between sidebar view and distraction free edit view * Leave sidebar present and maintain canvas to sidebar animation The sidebar is necessary for routing on mobile so we have to maintain its presence in the DOM. Just hiding it isn't enough though, as it is still able to be reached with keyboard tabs and screen readers. Using the relatively new `inert` property disables the element from user interaction, so we add that when we don't want the sidebar to be shown. * Fix mobile view for pattern library On Mobile, the canvas mode wasn't being set to edit when using the pattern library. This updates it to use the showSidbar value instead, keeping it in sync with the inert setting. --------- Co-authored-by: Saxon Fletcher <saxonafletcher@gmail.com> Co-authored-by: Jerry Jones <jones.jeremydavid@gmail.com> * Change password input to type text so contents are visible. (#52622) * Iframe: Silence style compat warnings when in a BlockPreview (#52627) * Do not autofocus page title field in the Create new page modal dialog. (#52603) * Use lowercase p in "Manage Patterns" (#52617) * Remove theme patterns title (#52570) * Block editor store: also attach private APIs to old store descriptor (#52088) As a workaround, until #39632 is merged, make sure that private actions and selectors can be unlocked from the original store descriptor (the one created by `createReduxStore`) and not just the one registered in the default registry (created by `registerStore`). Without this workaround, specific setups will unexpectedly fail, such as the action tests in the `reusable-blocks` package, due to the way that those tests create their own registries in which they register stores like `block-editor`. Context: #51145 (comment) Props jsnajdr * Block removal prompt: let consumers pass their own rules (#51841) * Block removal prompt: let consumers pass their own rules Following up on #51145, this untangles `edit-site` from `block-editor` by removing the hard-coded set of rules `blockTypePromptMessages` from the generic `BlockRemovalWarningModal` component. Rules are now to be passed to that component by whichever block editor is using it. Names and comments have been updated accordingly and improved. * Site editor: Add e2e test for block removal prompt * Fix Shift+Tab to Block Toolbar (#52613) * Fix Shift+Tab to Block Toolbar * Add changelog entry * Show warning on removal of Post Template block in the site editor. (#52666) * Avoid copying global style presets via the styles compatibility hook (#52640) * i18n: Make the tab labels of `ColorGradientSettingsDropdown` component translatable (#52669) * Rich Text/Footnotes: fix getRichTextValues for useInnerBlocksProps.save (#52682) * Rich Text/Footnotes: fix getRichTextValues for useInnerBlocksProps.save * Address feedback * Patterns: Remove `reusable` text from menu once rename hint has been dismissed (#52664) * Show uncategorized patterns on the Editor > Patterns page (#52633) * Patterns: fix bug with Create Patterns menu not showing in site editor page editing (#52671) * Pass the root client id into the reusable blocks menu * Check that clientIds array is defined * Make check for array item more specific * Search block: Enqueue view script through block.json (#52552) * Search block: Enqueue view script through block.json * Remove extra space * Use `_get_block_template_file` function and set $area variable. (#52708) * Use `_get_block_template_file` function and set $area variable. * Update packages/block-library/src/template-part/index.php Co-authored-by: Felix Arntz <felixarntz@users.noreply.github.com> --------- Co-authored-by: Felix Arntz <felixarntz@users.noreply.github.com> * Site Editor: Don't allow creating template part on the Patterns page for non-block themes (#52656) * Don't allow template part to be created on the Patterns page for non-block themes * Remove unnecessary theme directory name in E2E test * Change Delete page menu item to Move to trash. (#52641) * Use relative path internally to include packages in dependencies (#52712) * Spacing Sizes: Fix zero size (#52711) * DimensionsPanel: Fix unexpected value decoding/encoding (#52661) --------- Co-authored-by: Daniel Richards <daniel.richards@automattic.com> Co-authored-by: Saxon Fletcher <saxonafletcher@gmail.com> Co-authored-by: Jerry Jones <jones.jeremydavid@gmail.com> Co-authored-by: Robert Anderson <robert@noisysocks.com> Co-authored-by: Andrea Fercia <a.fercia@gmail.com> Co-authored-by: Rich Tabor <hi@richtabor.com> Co-authored-by: James Koster <james@jameskoster.co.uk> Co-authored-by: Miguel Fonseca <150562+mcsf@users.noreply.github.com> Co-authored-by: Haz <hazdiego@gmail.com> Co-authored-by: George Mamadashvili <georgemamadashvili@gmail.com> Co-authored-by: Aki Hamano <54422211+t-hamano@users.noreply.github.com> Co-authored-by: Ella <4710635+ellatrix@users.noreply.github.com> Co-authored-by: Glen Davies <glendaviesnz@users.noreply.github.com> Co-authored-by: Carolina Nymark <myazalea@hotmail.com> Co-authored-by: Petter Walbø Johnsgård <petter@dekode.no> Co-authored-by: Jonny Harris <spacedmonkey@users.noreply.github.com> Co-authored-by: Felix Arntz <felixarntz@users.noreply.github.com> Co-authored-by: Ramon <ramonjd@users.noreply.github.com> Co-authored-by: Andrew Serong <14988353+andrewserong@users.noreply.github.com>
Part of #52150
What?
This PR fixes an issue where classic themes with
block-template-parts
support could unintentionally create a template part in the Patterns page of the Site Editor.Why?
Previously, classic themes that support block-template-parts could access the "All template parts" page in the site editor and edit only the template parts that the theme had. However, with the addition of the Patterns page, you can now return to the Patterns page when you press the Back button. As a result, there is a problem with being able to unintentionally create a template part from an action button.
To solve this problem, based on the discussion that took place in #52150, either of the following solutions would be possible:
I have adopted the second approach in this PR because I thought that ideally the site editor pattern management functionality should be exposed to the classic theme as well.
However, classic themes that do not support
block-template-parts
do not have access to the Site Editor itself. In the future, I hope to add "Patterns" menu under the Apperance menu of all classic themes, so that users can create patterns and edit the template parts that the theme has on the Patterns page of the Site Editor.How?
I use
supportsTemplatePartsMode
and hide the Create Template Parts button on the Patterns page for classic themes that supportblock-template-parts
. At the same time, I created a minimal e2e test for the hybrid theme that checks for the absence of the Create Template Part button.Testing Instructions
localhost:8889/wp-admin/
( notlocalhost:8888/wp-admin/
).