Skip to content
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 sidebar: consolidate rename component and use TemplateActions component for patterns single view #54271

Closed
wants to merge 13 commits into from

Conversation

ramonjd
Copy link
Member

@ramonjd ramonjd commented Sep 8, 2023

What's happening here?

This PR:

  • unifies the export/duplicate/rename/delete actions dropdown into a single actions component
  • renames 'Template Actions' to 'Pattern actions' in anticipation of the great unification.
2023-12-04.16.02.37.mp4

This PR builds on the work in:

TODO

  • Write some e2e tests

Why?

#54173 added rename/delete actions to Template parts. Why should patterns miss out?

How?

  • Rejigging <TemplateActions /> (now renamed to <PatternActions />) to handle Pattern post types
  • Consolidating template and pattern rename functionality into one <RenameMenuItem /> component
  • Consolidating template and pattern duplicate functionality into one <DuplicateMenuItem /> component

Note: I haven't looked at the new dataview yet. It might require some refactoring if it exits experimental:
Screenshot 2023-12-04 at 4 22 50 pm

Testing

  1. Create a custom pattern in the Site Editor
  2. From the sidebar, navigate to Patterns > My Patterns > Your new custom pattern. Click on your pattern's title so that the single pattern view appears in the side bar.
  3. Ensure that the rename, duplicate, clear, export and delete functionality works
  4. Do the same for patterns on the main patterns page, /wp-admin/site-editor.php?path=%2Fpatterns
  5. Test out custom templates and template parts to ensure there are no regressions
  6. Check that single pattern renaming et.al from the command center still works as per Patterns: Add rename command #55188
  7. Check that the actions work on "Manage all" pages for template and template parts, e.g., /wp-admin/site-editor.php?path=%2Fwp_template%2Fall and /wp-admin/site-editor.php?path=%2Fwp_template_part%2Fall

@ramonjd ramonjd self-assigned this Sep 8, 2023
@ramonjd ramonjd added [Type] Enhancement A suggestion for improvement. [Status] In Progress Tracking issues with work in progress [Type] Experimental Experimental feature or API. [Feature] Site Editor Related to the overarching Site Editor (formerly "full site editing") labels Sep 8, 2023
@ramonjd ramonjd changed the title [Experiment] Use Actions component for patterns single view in site editor side bar Sep 8, 2023
@github-actions
Copy link

github-actions bot commented Sep 8, 2023

Size Change: +133 B (0%)

Total Size: 1.71 MB

Filename Size Change
build/edit-site/index.min.js 194 kB +133 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 964 B
build/annotations/index.min.js 2.71 kB
build/api-fetch/index.min.js 2.29 kB
build/autop/index.min.js 2.11 kB
build/blob/index.min.js 590 B
build/block-directory/index.min.js 7.25 kB
build/block-directory/style-rtl.css 1.04 kB
build/block-directory/style.css 1.04 kB
build/block-editor/content-rtl.css 4.31 kB
build/block-editor/content.css 4.31 kB
build/block-editor/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
build/block-editor/index.min.js 246 kB
build/block-editor/style-rtl.css 15.3 kB
build/block-editor/style.css 15.3 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 138 B
build/block-library/blocks/audio/theme.css 138 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/block/editor-rtl.css 305 B
build/block-library/blocks/block/editor.css 305 B
build/block-library/blocks/button/editor-rtl.css 419 B
build/block-library/blocks/button/editor.css 417 B
build/block-library/blocks/button/style-rtl.css 633 B
build/block-library/blocks/button/style.css 632 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 B
build/block-library/blocks/categories/editor-rtl.css 113 B
build/block-library/blocks/categories/editor.css 112 B
build/block-library/blocks/categories/style-rtl.css 124 B
build/block-library/blocks/categories/style.css 124 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 421 B
build/block-library/blocks/columns/style.css 421 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 647 B
build/block-library/blocks/cover/editor.css 650 B
build/block-library/blocks/cover/style-rtl.css 1.7 kB
build/block-library/blocks/cover/style.css 1.69 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 98 B
build/block-library/blocks/details/style.css 98 B
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 138 B
build/block-library/blocks/embed/theme.css 138 B
build/block-library/blocks/file/editor-rtl.css 316 B
build/block-library/blocks/file/editor.css 316 B
build/block-library/blocks/file/style-rtl.css 280 B
build/block-library/blocks/file/style.css 281 B
build/block-library/blocks/file/view.min.js 322 B
build/block-library/blocks/footnotes/style-rtl.css 201 B
build/block-library/blocks/footnotes/style.css 199 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 228 B
build/block-library/blocks/form-input/style-rtl.css 343 B
build/block-library/blocks/form-input/style.css 343 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 343 B
build/block-library/blocks/form-submission-notification/editor.css 342 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 452 B
build/block-library/blocks/freeform/editor-rtl.css 2.61 kB
build/block-library/blocks/freeform/editor.css 2.61 kB
build/block-library/blocks/gallery/editor-rtl.css 957 B
build/block-library/blocks/gallery/editor.css 962 B
build/block-library/blocks/gallery/style-rtl.css 1.75 kB
build/block-library/blocks/gallery/style.css 1.75 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 654 B
build/block-library/blocks/group/editor.css 654 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 189 B
build/block-library/blocks/heading/style.css 189 B
build/block-library/blocks/html/editor-rtl.css 340 B
build/block-library/blocks/html/editor.css 341 B
build/block-library/blocks/image/editor-rtl.css 834 B
build/block-library/blocks/image/editor.css 833 B
build/block-library/blocks/image/style-rtl.css 1.61 kB
build/block-library/blocks/image/style.css 1.6 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 2.02 kB
build/block-library/blocks/latest-comments/style-rtl.css 357 B
build/block-library/blocks/latest-comments/style.css 357 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 505 B
build/block-library/blocks/media-text/style.css 503 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 671 B
build/block-library/blocks/navigation-link/editor.css 672 B
build/block-library/blocks/navigation-link/style-rtl.css 103 B
build/block-library/blocks/navigation-link/style.css 103 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation/editor-rtl.css 2.26 kB
build/block-library/blocks/navigation/editor.css 2.26 kB
build/block-library/blocks/navigation/style-rtl.css 2.27 kB
build/block-library/blocks/navigation/style.css 2.26 kB
build/block-library/blocks/navigation/view.min.js 1.04 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 401 B
build/block-library/blocks/page-list/editor.css 401 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 235 B
build/block-library/blocks/paragraph/editor.css 235 B
build/block-library/blocks/paragraph/style-rtl.css 335 B
build/block-library/blocks/paragraph/style.css 335 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 508 B
build/block-library/blocks/post-comments-form/style.css 508 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 141 B
build/block-library/blocks/post-excerpt/style.css 141 B
build/block-library/blocks/post-featured-image/editor-rtl.css 666 B
build/block-library/blocks/post-featured-image/editor.css 662 B
build/block-library/blocks/post-featured-image/style-rtl.css 345 B
build/block-library/blocks/post-featured-image/style.css 345 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 409 B
build/block-library/blocks/post-template/style.css 408 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 69 B
build/block-library/blocks/post-time-to-read/style.css 69 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 335 B
build/block-library/blocks/pullquote/style.css 335 B
build/block-library/blocks/pullquote/theme-rtl.css 168 B
build/block-library/blocks/pullquote/theme.css 168 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/query/editor-rtl.css 486 B
build/block-library/blocks/query/editor.css 486 B
build/block-library/blocks/query/style-rtl.css 312 B
build/block-library/blocks/query/style.css 308 B
build/block-library/blocks/query/view.min.js 647 B
build/block-library/blocks/quote/style-rtl.css 237 B
build/block-library/blocks/quote/style.css 237 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 140 B
build/block-library/blocks/read-more/style.css 140 B
build/block-library/blocks/rss/editor-rtl.css 149 B
build/block-library/blocks/rss/editor.css 149 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 184 B
build/block-library/blocks/search/editor.css 184 B
build/block-library/blocks/search/style-rtl.css 613 B
build/block-library/blocks/search/style.css 613 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/search/view.min.js 475 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 234 B
build/block-library/blocks/separator/style.css 234 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 B
build/block-library/blocks/shortcode/editor-rtl.css 329 B
build/block-library/blocks/shortcode/editor.css 329 B
build/block-library/blocks/site-logo/editor-rtl.css 760 B
build/block-library/blocks/site-logo/editor.css 760 B
build/block-library/blocks/site-logo/style-rtl.css 204 B
build/block-library/blocks/site-logo/style.css 204 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 B
build/block-library/blocks/social-links/editor-rtl.css 682 B
build/block-library/blocks/social-links/editor.css 681 B
build/block-library/blocks/social-links/style-rtl.css 1.49 kB
build/block-library/blocks/social-links/style.css 1.49 kB
build/block-library/blocks/spacer/editor-rtl.css 359 B
build/block-library/blocks/spacer/editor.css 359 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 399 B
build/block-library/blocks/table/editor.css 399 B
build/block-library/blocks/table/style-rtl.css 646 B
build/block-library/blocks/table/style.css 645 B
build/block-library/blocks/table/theme-rtl.css 157 B
build/block-library/blocks/table/theme.css 157 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/editor-rtl.css 403 B
build/block-library/blocks/template-part/editor.css 403 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/term-description/style-rtl.css 111 B
build/block-library/blocks/term-description/style.css 111 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 191 B
build/block-library/blocks/video/style.css 191 B
build/block-library/blocks/video/theme-rtl.css 139 B
build/block-library/blocks/video/theme.css 139 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.11 kB
build/block-library/common.css 1.11 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 12.3 kB
build/block-library/editor.css 12.3 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 214 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 14.7 kB
build/block-library/style.css 14.7 kB
build/block-library/theme-rtl.css 700 B
build/block-library/theme.css 705 B
build/block-serialization-default-parser/index.min.js 1.13 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 51.5 kB
build/commands/index.min.js 15.5 kB
build/commands/style-rtl.css 947 B
build/commands/style.css 942 B
build/components/index.min.js 257 kB
build/components/style-rtl.css 12.1 kB
build/components/style.css 12.1 kB
build/compose/index.min.js 12.8 kB
build/core-commands/index.min.js 2.73 kB
build/core-data/index.min.js 72.7 kB
build/customize-widgets/index.min.js 12.1 kB
build/customize-widgets/style-rtl.css 1.36 kB
build/customize-widgets/style.css 1.36 kB
build/data-controls/index.min.js 651 B
build/data/index.min.js 8.94 kB
build/date/index.min.js 17.9 kB
build/deprecated/index.min.js 462 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.68 kB
build/edit-post/classic-rtl.css 571 B
build/edit-post/classic.css 571 B
build/edit-post/index.min.js 31.3 kB
build/edit-post/style-rtl.css 7.16 kB
build/edit-post/style.css 7.15 kB
build/edit-site/style-rtl.css 14.9 kB
build/edit-site/style.css 14.9 kB
build/edit-widgets/index.min.js 17.7 kB
build/edit-widgets/style-rtl.css 4.71 kB
build/edit-widgets/style.css 4.71 kB
build/editor/index.min.js 55.2 kB
build/editor/style-rtl.css 4.38 kB
build/editor/style.css 4.38 kB
build/element/index.min.js 4.87 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 7.76 kB
build/format-library/style-rtl.css 577 B
build/format-library/style.css 577 B
build/hooks/index.min.js 1.57 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.61 kB
build/interactivity/file.min.js 442 B
build/interactivity/image.min.js 2.15 kB
build/interactivity/index.min.js 12.5 kB
build/interactivity/navigation.min.js 1.16 kB
build/interactivity/query.min.js 791 B
build/interactivity/search.min.js 610 B
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.76 kB
build/keycodes/index.min.js 1.49 kB
build/list-reusable-blocks/index.min.js 2.11 kB
build/list-reusable-blocks/style-rtl.css 865 B
build/list-reusable-blocks/style.css 865 B
build/media-utils/index.min.js 2.92 kB
build/modules/importmap-polyfill.min.js 12.2 kB
build/notices/index.min.js 964 B
build/nux/index.min.js 2.01 kB
build/nux/style-rtl.css 775 B
build/nux/style.css 771 B
build/patterns/index.min.js 5.31 kB
build/patterns/style-rtl.css 564 B
build/patterns/style.css 564 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 1.85 kB
build/preferences/index.min.js 1.26 kB
build/primitives/index.min.js 994 B
build/priority-queue/index.min.js 1.52 kB
build/private-apis/index.min.js 994 B
build/react-i18n/index.min.js 631 B
build/react-refresh-entry/index.min.js 9.46 kB
build/react-refresh-runtime/index.min.js 6.78 kB
build/redux-routine/index.min.js 2.71 kB
build/reusable-blocks/index.min.js 2.74 kB
build/reusable-blocks/style-rtl.css 265 B
build/reusable-blocks/style.css 265 B
build/rich-text/index.min.js 10.4 kB
build/router/index.min.js 1.79 kB
build/server-side-render/index.min.js 1.96 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 1.98 kB
build/token-list/index.min.js 587 B
build/url/index.min.js 3.83 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.8 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 967 B
build/warning/index.min.js 259 B
build/widgets/index.min.js 7.22 kB
build/widgets/style-rtl.css 1.18 kB
build/widgets/style.css 1.18 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@github-actions
Copy link

github-actions bot commented Sep 8, 2023

Flaky tests detected in 90ea73d.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/7294516510
📝 Reported issues:

@ramonjd ramonjd force-pushed the try/edit-site-pattern-sidebar-actions branch from b1cfcc0 to 314d5b7 Compare September 21, 2023 04:22
@ramonjd ramonjd changed the title [Experiment] Use Actions component for patterns single view in site editor side bar Site editor sidebar: consolidarte rename component and use TemplateActions component for patterns single view Sep 21, 2023
@ramonjd ramonjd changed the title Site editor sidebar: consolidarte rename component and use TemplateActions component for patterns single view Site editor sidebar: consolidate rename component and use TemplateActions component for patterns single view Sep 21, 2023
@ramonjd ramonjd force-pushed the try/edit-site-pattern-sidebar-actions branch from 3ca6492 to 6c110c7 Compare September 25, 2023 04:09
@ramonjd ramonjd marked this pull request as ready for review September 25, 2023 04:57
@ramonjd ramonjd removed [Status] In Progress Tracking issues with work in progress [Type] Experimental Experimental feature or API. labels Sep 25, 2023
Copy link
Contributor

@aaronrobertshaw aaronrobertshaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Appreciate the continued iterations here @ramonjd, especially when they clean up the code some ✨

✅ User-created patterns show the actions menu on their view page and it works as expected
✅ Theme patterns can't be edited directly, so aren't impacted
✅ Unedited template parts do not show an actions menu
✅ Customized template parts show an actions menu containing only "clear customizations"
✅ User-created template parts show menu and can be renamed or deleted successfully
✅ After deleting a pattern or template part I was returned to the expected page

Looks good. I left a couple of minor comments regarding possible tweaks but I'll leave those to your discretion.

Also, while testing this, it kind of stuck out that we don't have the "duplicate" option under the actions menu. What do you think of that as a further follow-up?

@glendaviesnz
Copy link
Contributor

I wonder if we should hold off merging this until the 6.4 release is finalised, just so we don't diverge too much from the 16.7 RC branch if any last-minute bug fixes are needed?

@ramonjd
Copy link
Member Author

ramonjd commented Sep 25, 2023

I wonder if we should hold off merging this until the 6.4 release is finalised, just so we don't diverge too much from the 16.7 RC branch if any last-minute bug fixes are needed?

👍🏻

I'll lean on your experience. Happy to hold off and keep it rebased until we're ready.

It's low priority I'd venture and mainly janitorial, though it does bring the rename/delete experience to the patterns single view, which is lacking at the moment.

@ramonjd
Copy link
Member Author

ramonjd commented Sep 25, 2023

Thanks for testing this one @aaronrobertshaw

Also, while testing this, it kind of stuck out that we don't have the "duplicate" option under the actions menu. What do you think of that as a further follow-up?

Yes! While I was tooling around with this PR I did dive into packages/edit-site/src/components/page-patterns/grid-item.js to see what we could abstract. I think it's doable and a good candidate for a follow up PR. Cheers!

Follow ups

@ramonjd ramonjd force-pushed the try/edit-site-pattern-sidebar-actions branch 2 times, most recently from 1dc41ad to 275df92 Compare December 12, 2023 00:36
@ramonjd ramonjd force-pushed the try/edit-site-pattern-sidebar-actions branch from 275df92 to 025d764 Compare December 21, 2023 04:14
Copy link
Contributor

@t-hamano t-hamano left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From what I've tested, I think it's almost ready for shipping 👍

  • Patterns Page:
    • Theme patterns and Theme template parts can only be duplicated
    • User patterns can be renamed, duplicated, exported, and deleted
    • Custom template part can berenamed, duplicated, and deleted
    • Page doesn't move anywhere after deleting pattern and template part
  • Pattern Details Page Sidebar:
    • Can be renamed, duplicated, exported, and deleted
    • Return to the Patterns page after deleting the pattern
  • Template Parts List Page:
    • Theme template parts can only be duplicated (This is intentional, as stated in this comment)
    • Can clear the theme's template part customization.
    • Custom template part can be renamed, duplicated, and deleted
    • Page doesn't move anywhere after deleting pattern
    • Classic themes that support template parts do not display the action button.
  • Template Part Details Page Sidebar:
    • Custom template part can be renamed, duplicated, and deleted
    • 🤔 Return to the Patterns page after deleting the template part. In trunk, return to the Template Parts List page.
    • Classic themes that support template parts do not display the action button.
  • Templates List Page:
  • Experimental Pages List Page:
  • Others:

packages/edit-site/src/components/editor/index.js Outdated Show resolved Hide resolved
@ramonjd ramonjd force-pushed the try/edit-site-pattern-sidebar-actions branch from 025d764 to 90ea73d Compare December 22, 2023 00:12
@ramonjd
Copy link
Member Author

ramonjd commented Dec 22, 2023

Thank you for testing so thoroughly @t-hamano 🙇🏻

@ramonjd
Copy link
Member Author

ramonjd commented Dec 22, 2023

🤔 Return to the Patterns page after deleting the template part. In trunk, return to the Template Parts List page.

Just to clarify, in this PR, after you delete a template part, it'll take you back to the previous screen:

  • after deleting directly from the Template Parts List page, you'll remain on the Template Parts List page
  • clicking on a custom template on the Template Parts List page, and then deleting, you'll return to the Template Parts List page
  • after deleting directly from the patterns page, you'll remain on the patterns page
  • clicking on a custom template part on the patterns page, and then deleting you'll return to the patterns page

@t-hamano
Copy link
Contributor

🤔 Return to the Patterns page after deleting the template part. In trunk, return to the Template Parts List page.

Just to clarify, in this PR, after you delete a template part, it'll take you back to the previous screen:

Ah, I tried again and was unable to reproduce the issue. Maybe my testing procedure was wrong 🙈

@ramonjd
Copy link
Member Author

ramonjd commented Dec 22, 2023

Ah, I tried again and was unable to reproduce the issue. Maybe my testing procedure was wrong

Ha, I don't trust myself. But what I think you saw is right? I tested again and it seems okay 🤷🏻

I might get some folks who worked on patterns to also give it a test when they have free time.

@t-hamano
Copy link
Contributor

Ha, I don't trust myself. But what I think you saw is right? I tested again and it seems okay 🤷🏻

I tried it again and it seems to be fine.

8bfc3f4e6273f699f71f2454b2ee1e86.mp4

Copy link
Contributor

@aaronrobertshaw aaronrobertshaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the continued effort here @ramonjd and the thorough testing @t-hamano 🙇

After a quick test and look over the code, I've left a few random thoughts and questions. I'll have more time next week to dig in and test further.

For the most part though this seems to be working pretty well. One thing that stuck out to me was the new inclusion of help text into the actions menu for clearing customizations.

It looks a bit cluttered to me and could have been the reason it was omitted when added for the patterns page in trunk. I appreciate that it is present in the template part list view's action menu, so perhaps we need some design feedback on this one?

Trunk This PR
Screenshot 2023-12-22 at 5 40 24 pm Screenshot 2023-12-22 at 5 39 35 pm

renames 'Template Actions' to 'Pattern actions' in anticipation of the great unification.

P.S. We might need a new moniker for uniting all the different types of patterns as the unification of the site and post editor has sort of usurped the name. See #57214 🙂

// Only patterns and template parts can be duplicated for now.
const isDuplicable = isUserPattern || isNonUserPattern || isTemplatePart;

// If the pattern is not editable or duplicable, don't show the menu.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// If the pattern is not editable or duplicable, don't show the menu.
// If the pattern is not removable, revertable, or duplicable, don't show the menu.

The current comment doesn't quite seem to fit given isEditable is defined below and not used in the conditional.

Alternatively, is it worth doing away with the comment entirely as that code block is pretty self-explanatory now?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was using a editable to cover all the change of state conditions, but you're right: it's just confusing noise since the vars are self-explanatory. I think deleting is a good option.

👍🏻

Comment on lines +220 to +224
{ isUserPattern && (
<MenuItem onClick={ () => exportAsJSON( record ) }>
{ __( 'Export as JSON' ) }
</MenuItem>
) }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we're looking to increase parity, should we also be able to export/import user-created template parts?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good to me. It's not a big change for this PR.

);
}

function DeleteMenuItem( { onRemove, title } ) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it worth also splitting out the DeleteMenuItem and RevertMenuItem components to their own files to match DuplicateMenuItem & RenameMenuItem?

export default function RenameMenuItem( { template, onClose } ) {
const title = decodeEntities( template.title.rendered );
const [ editedTitle, setEditedTitle ] = useState( title );
export default function RenameMenuItem( { postType, postId, onClose } ) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While we're trying to make things more consistent, I noticed this gets passed the type and id separately, but in other places, we're passing an item object.

It might be good to tweak that so all these related components are consumed in an intuitive manner. Would it also prevent any excessive re-renders, not passing a fresh object around?

What do you think?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes sense. Thanks for flagging. I'll take a look.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 26, 2023

Thanks again for looking at this @aaronrobertshaw and @t-hamano

I'll tweak the PR as suggested.

One parallel effort that may put the brakes on this PR further is:

The data view components take a different approach to rendering action menu.

I'm not 100% sure yet, but they may not be compatible with existing action components such as these and the ones they replace. See: https://github.com/WordPress/gutenberg/blob/trunk/packages/edit-site/src/components/page-templates/index.js#L335

So if the objective is to, similar to the manage all template page, refactor patterns and other views to use dataviews, then maybe this PR isn't worth pursuing in its current form.

@aaronrobertshaw
Copy link
Contributor

So if the objective is to, similar to the manage all template page, refactor patterns and other views to use dataviews, then maybe this PR isn't worth pursuing in its current form.

Appreciate the effort you've put into this one. I have no objections if you want to close this PR, it can always be resurrected if needed.

@ramonjd
Copy link
Member Author

ramonjd commented Dec 27, 2023

I'll close this PR - as implied above, it might create more refactor headaches as we migrate to data views.

Also, the PR has been open for a while and it probably too large as it is. Therefore, I don't see the continued effort as providing commensurate value.

I still think it's desirable to harmonize the actions between screens, but perhaps in a less ambitious way, and with consideration of the way dataviews consume actions.

Thanks again for all the help along the way folks!

@ramonjd ramonjd closed this Dec 27, 2023
@ramonjd ramonjd deleted the try/edit-site-pattern-sidebar-actions branch December 27, 2023 00:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Site Editor Related to the overarching Site Editor (formerly "full site editing") [Status] In Progress Tracking issues with work in progress [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants