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

Show template center UI when no block is selected #56217

Merged
merged 2 commits into from
Dec 5, 2023

Conversation

jeryj
Copy link
Contributor

@jeryj jeryj commented Nov 16, 2023

Fixes #56194

What?

When using the Template Editor from within a post, the central template ui to go back to the post was not showing after selecting a block in the canvas. We should only be collapsing this area when we're:

  • editing a template
  • top toolbar mode is on
  • a block is selected
  • a user has clicked to collapse the area
  • the viewport is large

Why?

Fixes a bug where the central template ui was hidden.

How?

Check for the correct variables before hiding the UI:

  • editing a template
  • top toolbar mode is on
  • a block is selected
  • a user has clicked to collapse the area
  • the viewport is large

Testing Instructions

(Partially stealing these from @afercia's issue - thanks for the clear screenshots!)

  • Edit a post.
  • In the setting panel, click the current template. A popover open. Click 'Edit template'. Screenshot:

Screenshot 2023-11-16 at 10 39 48

  • The editor switches to a 'Edit template' mode.
  • Observe in the top bar there is a 'Back' button to switch back to the normal Post editor mode.
  • Observe that whatever you do, the 'Back' button stays there.
  • Switch to Top Toolbar mode
  • Central area should remain (unless a block is selected)
  • Unselecting a block should show the central area
  • Selecting a block should show the top toolbar and the central area should be hidden
  • Click the Collapse button when a block is selected
  • Block tools should collapse, and the central area should show again to be able to go back to the post
  • Try to break it :)

Testing Instructions for Keyboard

Screenshots or screencast

…emplate post editor

The central template ui to go back to the post was not showing after selecting a block in the canvas. We should only be collapsing this area when we're:
- editing a template
- top toolbar mode is on
- a block is selected
- a user has clicked to collapse the area
- the viewport is large
@jeryj jeryj added the [Type] Bug An existing feature does not function as intended label Nov 16, 2023
@jeryj jeryj self-assigned this Nov 16, 2023
Copy link

github-actions bot commented Nov 16, 2023

Size Change: +935 B (0%)

Total Size: 1.72 MB

Filename Size Change
build/block-editor/index.min.js 248 kB +92 B (0%)
build/block-editor/style-rtl.css 15.7 kB -45 B (0%)
build/block-editor/style.css 15.7 kB -48 B (0%)
build/block-library/blocks/social-links/style-rtl.css 1.49 kB +22 B (+1%)
build/block-library/blocks/social-links/style.css 1.49 kB +22 B (+2%)
build/block-library/index.min.js 213 kB -568 B (0%)
build/block-library/style-rtl.css 14.7 kB +16 B (0%)
build/block-library/style.css 14.7 kB +15 B (0%)
build/blocks/index.min.js 51.1 kB +38 B (0%)
build/components/index.min.js 256 kB +7 B (0%)
build/compose/index.min.js 12.8 kB +47 B (0%)
build/core-commands/index.min.js 2.73 kB +3 B (0%)
build/customize-widgets/index.min.js 12.1 kB -4 B (0%)
build/edit-post/index.min.js 34.9 kB -845 B (-2%)
build/edit-post/style-rtl.css 7.56 kB -42 B (-1%)
build/edit-post/style.css 7.55 kB -44 B (-1%)
build/edit-site/index.min.js 210 kB +1.26 kB (+1%)
build/edit-site/style-rtl.css 14.6 kB +16 B (0%)
build/edit-site/style.css 14.6 kB +14 B (0%)
build/edit-widgets/index.min.js 17.2 kB -2 B (0%)
build/edit-widgets/style-rtl.css 4.65 kB -1 B (0%)
build/edit-widgets/style.css 4.64 kB -3 B (0%)
build/editor/index.min.js 48.6 kB +942 B (+2%)
build/interactivity/index.min.js 12.5 kB +41 B (0%)
build/private-apis/index.min.js 994 B +6 B (+1%)
ℹ️ 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.29 kB
build/block-editor/content.css 4.28 kB
build/block-editor/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
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 587 B
build/block-library/blocks/button/editor.css 587 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/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 432 B
build/block-library/blocks/table/editor.css 432 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.5 kB
build/block-library/editor.css 12.4 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
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/commands/index.min.js 15.5 kB
build/commands/style-rtl.css 947 B
build/commands/style.css 942 B
build/components/style-rtl.css 12.1 kB
build/components/style.css 12.1 kB
build/core-data/index.min.js 72.6 kB
build/customize-widgets/style-rtl.css 1.43 kB
build/customize-widgets/style.css 1.43 kB
build/data-controls/index.min.js 651 B
build/data/index.min.js 8.87 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/editor/style-rtl.css 3.74 kB
build/editor/style.css 3.73 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/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.9 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.28 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/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 9.98 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.18 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

@afercia
Copy link
Contributor

afercia commented Nov 20, 2023

@jeryj thanks for looking into this!

Regarding this part:

Switch to Top Toolbar mode
Central area should remain (unless a block is selected)
Unselecting a block should show the central area

How do you unselect a block? I'm clicking in the empty space after the footer but for me the central area with the Back button stays hidden, even if no block is selected. Screenshot:

Screenshot 2023-11-20 at 12 52 10

Copy link
Contributor

@tellthemachines tellthemachines 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 fixing this! The center is now always visible when not in top toolbar mode, but as @afercia noticed it still doesn't show when in top toolbar mode and no block is selected. Adding a check to see if a block is selected around line 155 could perhaps fix that?

Another thing I noticed is the tooltip for "Show block tools" is showing when text labels are enabled, though that can probably be fixed separately:
Screenshot 2023-12-04 at 1 49 01 pm

Also the tiny niggling detail of the focus ring for "Show block tools" being partially hidden by the center area 😅

@afercia
Copy link
Contributor

afercia commented Dec 4, 2023

Another thing I noticed is the tooltip for "Show block tools" is showing when text labels are enabled, t

Thanks for noticing this. I'd think this should really be automated in the component, as in: when there is visible text and the same text is going to be used for the tooltip, don't show the tooltip. I suggested this behavior to @ciampo but we didn't came to an agreement. The point is this keeps to be missed because we often forget to test the 'show text labels' preference. Automating the behavior would certainly help.

@ciampo
Copy link
Contributor

ciampo commented Dec 4, 2023

Button shouldn't be aware of the "show text labels" options.

Comparing Button's contents to the tooltip's contents is also not trivial, since Button's contents can be any DOM sub-tree, and I can foresee many edge cases where it wouldn't be straightforward to compare them to the tooltip — for example:

  • it's not easy to determine what's visible and what's not visible
  • it's not easy to determine what contributes to the accessible name of the button
  • there could be slight space / casing variations
  • etc

Also, if there was ever a component where this feature should be implemented, I wonder if Tooltip itself would be a better fit.

@tellthemachines
Copy link
Contributor

Button shouldn't be aware of the "show text labels" options.

Independently of which specific components are aware of the feature, I do think this functionality should be dealt with in the components library, because it's an essential part of ensuring accessibility, and it needs to behave consistently across the whole interface.

The current implementation of the text labels preference depends on a classname output on the body element, which means Button component doesn't change in itself when its label changes from icon to text: the change is done via CSS only. Adjustments such as removing the tooltip need to be passed to Button conditionally depending on the preference setting, but that requires every single component that renders a Button to know about the preference, and every single developer using a Button to be aware of it.

It's the last part that is most concerning, because it requires extensive education and increases the overhead for core contributors and extenders alike. The point of a components library is to provide tools that decrease the mental load and decision-making of developers, and make it easier to build a consistent interface.

The other advantage to making the components library responsible for handling the button text labels preference is that component developers will have to take this into account for all new components, avoiding situations where the design of components makes it impossible to implement accessible labels after the fact. See #46299 for an idea of the difficulties with implementing text labels for the block inspector tools.

The main obstacle to this is that preferences are editor-specific, and components shouldn't be aware of the environment they're rendering in. One option would be to try a similar approach to the Interface package, where the preferences store is called with a scope that has to be given by the component rendering it. But having to pass in a scope for each component used isn't practical; components are often used by other generic packages such as block-editor.

It would be nice if there were a way of detecting what scope/preferences apply in the current context and have components render text/icons depending on the preference set. I'm unsure if there's been any thinking around this already? Cc @talldan who worked on preferences quite a bit.

I imagine a similar mechanism would be necessary for implementing dark mode in components too, if that is open to consideration (dark mode across the WP interface would be much welcome accessibility enhancement!)

@afercia
Copy link
Contributor

afercia commented Dec 5, 2023

I'd second what @tellthemachines said, as in the components library should be responsible, in some way, for handling the button text labels preference.

Button shouldn't be aware of the "show text labels" options.

@ciampo I do understand your arguments. But, the point is there have been several cases where specific implementations of Button didn't take into account the 'show text labels' preference. This keeps to be missed by developers and broke several times. I'd think we need a pragmatical solution to an actual problem.

@jeryj
Copy link
Contributor Author

jeryj commented Dec 5, 2023

Thanks for fixing this! The center is now always visible when not in top toolbar mode, but as @afercia noticed it still doesn't show when in top toolbar mode and no block is selected. Adding a check to see if a block is selected around line 155 could perhaps fix that?

Added the hasBlockSelected check, and it does fix the issue. Thanks! I had added that same fix in the site editor but forgot to add it here.

Copy link

github-actions bot commented Dec 5, 2023

Flaky tests detected in e901b2a.
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/7105533583
📝 Reported issues:

Copy link
Contributor

@tellthemachines tellthemachines 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 update, this is working very well now!

@jeryj jeryj merged commit d1d0b2a into trunk Dec 5, 2023
52 checks passed
@jeryj jeryj deleted the fix/show-template-editing-ui branch December 5, 2023 22:35
@github-actions github-actions bot added this to the Gutenberg 17.3 milestone Dec 5, 2023
@ciampo
Copy link
Contributor

ciampo commented Dec 8, 2023

Thank you @tellthemachines for sharing your perspective!

The main obstacle to this is that preferences are editor-specific, and components shouldn't be aware of the environment they're rendering in.

As you also mentioned, this is the main problem. The components package shouldn't be aware of any editor preferences.

Adjustments such as removing the tooltip need to be passed to Button conditionally depending on the preference setting, but that requires every single component that renders a Button to know about the preference, and every single developer using a Button to be aware of it.

I also agree that this is not great devEx and can lead to poor results.

I imagine a similar mechanism would be necessary for implementing dark mode in components too, if that is open to consideration (dark mode across the WP interface would be much welcome accessibility enhancement!)

We've been actually working on this, and the solution that we're landing on is a theme provider. We initially experimented with a Theme component internal to the component package, but the scope of it is large enough that we're now considering creating a separate @wordpress/theme package.

So, maybe, the theme could be the means through which we can expose the editor's preference to the components in the package.

@afercia

when there is visible text and the same text is going to be used for the tooltip, don't show the tooltip.

Regarding this specific requirement, I don't think that we can reliably find a way to implement this logic. Implementing such a check is not trivial, prone to failing over many edge cases, a cause for inflated bundle size and extra runtime costs, similarly to what discussed in #56231 (reply in thread)

@afercia
Copy link
Contributor

afercia commented Dec 13, 2023

Regarding this specific requirement, I don't think that we can reliably find a way to implement this logic. Implementing such a check is not trivial, prone to failing over many edge cases, a cause for inflated bundle size and extra runtime costs, similarly to what discussed in #56231 (reply in thread)

@ciampo thanks for your feedback. I do understand your concerns but I'd kindly note that you are not providing an alternative solution. We do have a problem. We need to solve it. The 'show text labels' preference broke several times in the past and that's going to happen again, as apparently contributors to this project aren't well aware of it and aren't educated to check for it. Saying no to a specific proposed approach is perfectly fine but blocking the solution of a problem isn't ideal. How can we solve this problem? Thanks.

@ciampo
Copy link
Contributor

ciampo commented Dec 13, 2023

I'd kindly note that you are not providing an alternative solution
[...]
Saying no to a specific proposed approach is perfectly fine but blocking the solution of a problem isn't ideal.

I am highlighting a potential high-level way forward for how to "connect" components to the "show text label" preferences, inspired by @tellthemachines 's suggestion :

I imagine a similar mechanism would be necessary for implementing dark mode in components too, if that is open to consideration (dark mode across the WP interface would be much welcome accessibility enhancement!)

We've been actually working on this, and the solution that we're landing on is a theme provider. We initially experimented with a Theme component internal to the component package, but the scope of it is large enough that we're now considering creating a separate @wordpress/theme package.

So, maybe, the theme could be the means through which we can expose the editor's preference to the components in the package.

What I don't have a (good) solution for is the request to automatically detect when the contents of a tooltip popup match the contents of the tooltip trigger, which could have been a more generic, component-centric approach to the "show text labels" problem.

More in general, we can't be expected to always have good solutions to every problem. Rushing to implement a sub-par solution can be as harmful (if not more harmful) than the problem we need to fix. And the best way forward, in my opinion, is to foster a culture of collaboration, where better ideas can emerge as a result.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Bug An existing feature does not function as intended
Projects
Development

Successfully merging this pull request may close these issues.

Post editor: Missing Back button to go back from template editing
4 participants