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

Template part block: Add category panel #29159

Merged
merged 9 commits into from Feb 24, 2021

Conversation

@david-szabo97
Copy link
Member

@david-szabo97 david-szabo97 commented Feb 19, 2021

Description

Add category panel to template part block. This allows us to change the assigned area of the template part.

Related: #29152

How has this been tested?

  1. Open site editor
  2. Insert template part
  3. Select template part block
  4. Open settings sidebar
  5. Switch to Block tab
  6. You should see Category panel
  7. Dropdown should show the correct value
  8. Changing the value and saving should work

Screenshots

image

Types of changes

New feature (non-breaking change which adds functionality)

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • I've tested my changes with keyboard and screen readers.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR.
<PanelBody title={ __( 'Category' ) }>
<SelectControl
label={ __( 'Select template part category' ) }
labelPosition="top"

This comment has been minimized.

@david-szabo97

david-szabo97 Feb 19, 2021
Author Member

Any idea why labelPosition="top" is not working? 🤔 The label is still positioned on the side.

This comment has been minimized.

@ntsekouras

ntsekouras Feb 20, 2021
Contributor

I hope you don't mind a pushed a patch here: ffa154b

I'm not sure if this is the right way of handling this though, as it seems this PR: #28609 introduced this 'conflict' (? 🤔 ). @sarayourfriend @ItsJonQ any feedback here?

This comment has been minimized.

@david-szabo97

david-szabo97 Feb 22, 2021
Author Member

Root correctly applies the CSS based on the labelPosition:
image

But for some reason a CSS class (which seems to be the Flex component) overrides it:
image

This is interesting because Flex's styled CSS class should come BEFORE Root. Root extends Flex:

export const Root = styled( Flex )`
position: relative;
border-radius: 2px;
${ rootFloatLabelStyles }
${ rootFocusedStyles }
${ rootLabelPositionStyles }
`;

Oh, and it works fine in Storybook. So it's something with the Editor itself?

This comment has been minimized.

@sarayourfriend

sarayourfriend Feb 22, 2021
Contributor

I think the issue is that we're using two different styled functions and the specificity of the Root selector is less than the base Flex selector. There's one that comes from @wp-g2/styles that I think using would fix this as it adds some specificity rules. @ItsJonQ what's the intended solution in this situation?

Do we actually need the extra specificity? I wonder what would happen if we did without it.

This comment has been minimized.

@ItsJonQ

ItsJonQ Feb 22, 2021
Contributor

As @sarayourfriend has pointed out, the issue is indeed caused by the 2 ways the CSS-in-JS styles are being compiled. Something we need to smooth out for the Component System integration.

Do we actually need the extra specificity? I wonder what would happen if we did without it.

We do. Even before the next Component System (G2), we had to resort to hacks like &&& for certain components just so they would render correctly:

https://github.com/WordPress/gutenberg/blob/master/packages/components/src/input-control/styles/input-control-styles.js#L184

My intuition tells me that we need to adjust some props in the input-control/input-base.js to ensure it plays nicely with the new Flex component (rather than a CSS fix).

This comment has been minimized.

@ItsJonQ

ItsJonQ Feb 22, 2021
Contributor

Update! I have a working solution. It involves remapping props from input-control to feed into the new flex component. Will create a PR shortly

This comment has been minimized.

@ItsJonQ

ItsJonQ Feb 22, 2021
Contributor

Created a PR here :)
#29226

@github-actions
Copy link

@github-actions github-actions bot commented Feb 19, 2021

Size Change: +179 B (0%)

Total Size: 1.38 MB

Filename Size Change
build/block-library/blocks/table/editor-rtl.css 478 B -11 B (-2%)
build/block-library/blocks/table/editor.css 478 B -11 B (-2%)
build/block-library/blocks/table/style-rtl.css 390 B +4 B (+1%)
build/block-library/blocks/table/style.css 390 B +4 B (+1%)
build/block-library/editor-rtl.css 9.04 kB -12 B (0%)
build/block-library/editor.css 9.03 kB -13 B (0%)
build/block-library/index.js 145 kB +218 B (0%)
build/block-library/style-rtl.css 8.85 kB +9 B (0%)
build/block-library/style.css 8.85 kB +9 B (0%)
build/block-library/theme-rtl.css 736 B -12 B (-2%)
build/block-library/theme.css 736 B -12 B (-2%)
build/components/index.js 272 kB +6 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.78 kB 0 B
build/api-fetch/index.js 3.4 kB 0 B
build/autop/index.js 2.84 kB 0 B
build/blob/index.js 665 B 0 B
build/block-directory/index.js 9.1 kB 0 B
build/block-directory/style-rtl.css 1.01 kB 0 B
build/block-directory/style.css 1.01 kB 0 B
build/block-editor/index.js 124 kB 0 B
build/block-editor/style-rtl.css 12.1 kB 0 B
build/block-editor/style.css 12.1 kB 0 B
build/block-library/blocks/archives/editor-rtl.css 61 B 0 B
build/block-library/blocks/archives/editor.css 60 B 0 B
build/block-library/blocks/audio/editor-rtl.css 58 B 0 B
build/block-library/blocks/audio/editor.css 58 B 0 B
build/block-library/blocks/audio/style-rtl.css 103 B 0 B
build/block-library/blocks/audio/style.css 103 B 0 B
build/block-library/blocks/block/editor-rtl.css 161 B 0 B
build/block-library/blocks/block/editor.css 161 B 0 B
build/block-library/blocks/button/editor-rtl.css 475 B 0 B
build/block-library/blocks/button/editor.css 474 B 0 B
build/block-library/blocks/button/style-rtl.css 479 B 0 B
build/block-library/blocks/button/style.css 479 B 0 B
build/block-library/blocks/buttons/editor-rtl.css 233 B 0 B
build/block-library/blocks/buttons/editor.css 233 B 0 B
build/block-library/blocks/buttons/style-rtl.css 318 B 0 B
build/block-library/blocks/buttons/style.css 318 B 0 B
build/block-library/blocks/calendar/style-rtl.css 208 B 0 B
build/block-library/blocks/calendar/style.css 208 B 0 B
build/block-library/blocks/categories/editor-rtl.css 84 B 0 B
build/block-library/blocks/categories/editor.css 83 B 0 B
build/block-library/blocks/categories/style-rtl.css 79 B 0 B
build/block-library/blocks/categories/style.css 79 B 0 B
build/block-library/blocks/code/style-rtl.css 90 B 0 B
build/block-library/blocks/code/style.css 90 B 0 B
build/block-library/blocks/columns/editor-rtl.css 190 B 0 B
build/block-library/blocks/columns/editor.css 190 B 0 B
build/block-library/blocks/columns/style-rtl.css 421 B 0 B
build/block-library/blocks/columns/style.css 421 B 0 B
build/block-library/blocks/cover/editor-rtl.css 390 B 0 B
build/block-library/blocks/cover/editor.css 389 B 0 B
build/block-library/blocks/cover/style-rtl.css 1.25 kB 0 B
build/block-library/blocks/cover/style.css 1.25 kB 0 B
build/block-library/blocks/embed/editor-rtl.css 486 B 0 B
build/block-library/blocks/embed/editor.css 486 B 0 B
build/block-library/blocks/embed/style-rtl.css 396 B 0 B
build/block-library/blocks/embed/style.css 395 B 0 B
build/block-library/blocks/file/editor-rtl.css 199 B 0 B
build/block-library/blocks/file/editor.css 198 B 0 B
build/block-library/blocks/file/style-rtl.css 248 B 0 B
build/block-library/blocks/file/style.css 248 B 0 B
build/block-library/blocks/freeform/editor-rtl.css 2.45 kB 0 B
build/block-library/blocks/freeform/editor.css 2.45 kB 0 B
build/block-library/blocks/gallery/editor-rtl.css 689 B 0 B
build/block-library/blocks/gallery/editor.css 690 B 0 B
build/block-library/blocks/gallery/style-rtl.css 1.07 kB 0 B
build/block-library/blocks/gallery/style.css 1.06 kB 0 B
build/block-library/blocks/group/editor-rtl.css 318 B 0 B
build/block-library/blocks/group/editor.css 317 B 0 B
build/block-library/blocks/group/style-rtl.css 57 B 0 B
build/block-library/blocks/group/style.css 57 B 0 B
build/block-library/blocks/heading/editor-rtl.css 129 B 0 B
build/block-library/blocks/heading/editor.css 129 B 0 B
build/block-library/blocks/heading/style-rtl.css 76 B 0 B
build/block-library/blocks/heading/style.css 76 B 0 B
build/block-library/blocks/html/editor-rtl.css 281 B 0 B
build/block-library/blocks/html/editor.css 281 B 0 B
build/block-library/blocks/image/editor-rtl.css 717 B 0 B
build/block-library/blocks/image/editor.css 716 B 0 B
build/block-library/blocks/image/style-rtl.css 477 B 0 B
build/block-library/blocks/image/style.css 478 B 0 B
build/block-library/blocks/latest-comments/editor-rtl.css 159 B 0 B
build/block-library/blocks/latest-comments/editor.css 158 B 0 B
build/block-library/blocks/latest-comments/style-rtl.css 269 B 0 B
build/block-library/blocks/latest-comments/style.css 269 B 0 B
build/block-library/blocks/latest-posts/editor-rtl.css 137 B 0 B
build/block-library/blocks/latest-posts/editor.css 137 B 0 B
build/block-library/blocks/latest-posts/style-rtl.css 523 B 0 B
build/block-library/blocks/latest-posts/style.css 522 B 0 B
build/block-library/blocks/list/editor-rtl.css 65 B 0 B
build/block-library/blocks/list/editor.css 65 B 0 B
build/block-library/blocks/list/style-rtl.css 63 B 0 B
build/block-library/blocks/list/style.css 63 B 0 B
build/block-library/blocks/media-text/editor-rtl.css 191 B 0 B
build/block-library/blocks/media-text/editor.css 191 B 0 B
build/block-library/blocks/media-text/style-rtl.css 535 B 0 B
build/block-library/blocks/media-text/style.css 532 B 0 B
build/block-library/blocks/more/editor-rtl.css 434 B 0 B
build/block-library/blocks/more/editor.css 434 B 0 B
build/block-library/blocks/navigation-link/editor-rtl.css 395 B 0 B
build/block-library/blocks/navigation-link/editor.css 397 B 0 B
build/block-library/blocks/navigation-link/style-rtl.css 704 B 0 B
build/block-library/blocks/navigation-link/style.css 702 B 0 B
build/block-library/blocks/navigation/editor-rtl.css 1.34 kB 0 B
build/block-library/blocks/navigation/editor.css 1.34 kB 0 B
build/block-library/blocks/navigation/style-rtl.css 195 B 0 B
build/block-library/blocks/navigation/style.css 195 B 0 B
build/block-library/blocks/nextpage/editor-rtl.css 395 B 0 B
build/block-library/blocks/nextpage/editor.css 395 B 0 B
build/block-library/blocks/page-list/editor-rtl.css 214 B 0 B
build/block-library/blocks/page-list/editor.css 214 B 0 B
build/block-library/blocks/page-list/style-rtl.css 527 B 0 B
build/block-library/blocks/page-list/style.css 526 B 0 B
build/block-library/blocks/paragraph/editor-rtl.css 109 B 0 B
build/block-library/blocks/paragraph/editor.css 109 B 0 B
build/block-library/blocks/paragraph/style-rtl.css 273 B 0 B
build/block-library/blocks/paragraph/style.css 273 B 0 B
build/block-library/blocks/post-author/editor-rtl.css 209 B 0 B
build/block-library/blocks/post-author/editor.css 209 B 0 B
build/block-library/blocks/post-author/style-rtl.css 183 B 0 B
build/block-library/blocks/post-author/style.css 184 B 0 B
build/block-library/blocks/post-comments-form/style-rtl.css 250 B 0 B
build/block-library/blocks/post-comments-form/style.css 250 B 0 B
build/block-library/blocks/post-content/editor-rtl.css 139 B 0 B
build/block-library/blocks/post-content/editor.css 139 B 0 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B 0 B
build/block-library/blocks/post-excerpt/editor.css 73 B 0 B
build/block-library/blocks/post-featured-image/editor-rtl.css 338 B 0 B
build/block-library/blocks/post-featured-image/editor.css 338 B 0 B
build/block-library/blocks/post-featured-image/style-rtl.css 100 B 0 B
build/block-library/blocks/post-featured-image/style.css 100 B 0 B
build/block-library/blocks/preformatted/style-rtl.css 63 B 0 B
build/block-library/blocks/preformatted/style.css 63 B 0 B
build/block-library/blocks/pullquote/editor-rtl.css 183 B 0 B
build/block-library/blocks/pullquote/editor.css 183 B 0 B
build/block-library/blocks/pullquote/style-rtl.css 316 B 0 B
build/block-library/blocks/pullquote/style.css 316 B 0 B
build/block-library/blocks/query-loop/editor-rtl.css 90 B 0 B
build/block-library/blocks/query-loop/editor.css 89 B 0 B
build/block-library/blocks/query-loop/style-rtl.css 315 B 0 B
build/block-library/blocks/query-loop/style.css 317 B 0 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B 0 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B 0 B
build/block-library/blocks/query-pagination/editor-rtl.css 270 B 0 B
build/block-library/blocks/query-pagination/editor.css 262 B 0 B
build/block-library/blocks/query-pagination/style-rtl.css 168 B 0 B
build/block-library/blocks/query-pagination/style.css 168 B 0 B
build/block-library/blocks/query/editor-rtl.css 159 B 0 B
build/block-library/blocks/query/editor.css 160 B 0 B
build/block-library/blocks/quote/editor-rtl.css 61 B 0 B
build/block-library/blocks/quote/editor.css 61 B 0 B
build/block-library/blocks/quote/style-rtl.css 169 B 0 B
build/block-library/blocks/quote/style.css 169 B 0 B
build/block-library/blocks/rss/editor-rtl.css 201 B 0 B
build/block-library/blocks/rss/editor.css 202 B 0 B
build/block-library/blocks/rss/style-rtl.css 290 B 0 B
build/block-library/blocks/rss/style.css 290 B 0 B
build/block-library/blocks/search/editor-rtl.css 165 B 0 B
build/block-library/blocks/search/editor.css 165 B 0 B
build/block-library/blocks/search/style-rtl.css 342 B 0 B
build/block-library/blocks/search/style.css 344 B 0 B
build/block-library/blocks/separator/editor-rtl.css 99 B 0 B
build/block-library/blocks/separator/editor.css 99 B 0 B
build/block-library/blocks/separator/style-rtl.css 236 B 0 B
build/block-library/blocks/separator/style.css 236 B 0 B
build/block-library/blocks/shortcode/editor-rtl.css 504 B 0 B
build/block-library/blocks/shortcode/editor.css 504 B 0 B
build/block-library/blocks/site-logo/editor-rtl.css 201 B 0 B
build/block-library/blocks/site-logo/editor.css 201 B 0 B
build/block-library/blocks/site-logo/style-rtl.css 115 B 0 B
build/block-library/blocks/site-logo/style.css 115 B 0 B
build/block-library/blocks/social-link/editor-rtl.css 164 B 0 B
build/block-library/blocks/social-link/editor.css 165 B 0 B
build/block-library/blocks/social-links/editor-rtl.css 696 B 0 B
build/block-library/blocks/social-links/editor.css 696 B 0 B
build/block-library/blocks/social-links/style-rtl.css 1.36 kB 0 B
build/block-library/blocks/social-links/style.css 1.36 kB 0 B
build/block-library/blocks/spacer/editor-rtl.css 302 B 0 B
build/block-library/blocks/spacer/editor.css 302 B 0 B
build/block-library/blocks/spacer/style-rtl.css 48 B 0 B
build/block-library/blocks/spacer/style.css 48 B 0 B
build/block-library/blocks/subhead/editor-rtl.css 99 B 0 B
build/block-library/blocks/subhead/editor.css 99 B 0 B
build/block-library/blocks/subhead/style-rtl.css 80 B 0 B
build/block-library/blocks/subhead/style.css 80 B 0 B
build/block-library/blocks/tag-cloud/editor-rtl.css 118 B 0 B
build/block-library/blocks/tag-cloud/editor.css 118 B 0 B
build/block-library/blocks/tag-cloud/style-rtl.css 94 B 0 B
build/block-library/blocks/tag-cloud/style.css 94 B 0 B
build/block-library/blocks/template-part/editor-rtl.css 557 B 0 B
build/block-library/blocks/template-part/editor.css 556 B 0 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B 0 B
build/block-library/blocks/text-columns/editor.css 95 B 0 B
build/block-library/blocks/text-columns/style-rtl.css 166 B 0 B
build/block-library/blocks/text-columns/style.css 166 B 0 B
build/block-library/blocks/verse/editor-rtl.css 62 B 0 B
build/block-library/blocks/verse/editor.css 62 B 0 B
build/block-library/blocks/verse/style-rtl.css 87 B 0 B
build/block-library/blocks/verse/style.css 87 B 0 B
build/block-library/blocks/video/editor-rtl.css 504 B 0 B
build/block-library/blocks/video/editor.css 503 B 0 B
build/block-library/blocks/video/style-rtl.css 193 B 0 B
build/block-library/blocks/video/style.css 193 B 0 B
build/block-library/common-rtl.css 1.08 kB 0 B
build/block-library/common.css 1.08 kB 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.06 kB 0 B
build/blocks/index.js 48.3 kB 0 B
build/components/style-rtl.css 15.5 kB 0 B
build/components/style.css 15.5 kB 0 B
build/compose/index.js 11.1 kB 0 B
build/core-data/index.js 16.7 kB 0 B
build/customize-widgets/index.js 4.08 kB 0 B
build/customize-widgets/style-rtl.css 168 B 0 B
build/customize-widgets/style.css 168 B 0 B
build/data-controls/index.js 830 B 0 B
build/data/index.js 8.86 kB 0 B
build/date/index.js 31.8 kB 0 B
build/deprecated/index.js 768 B 0 B
build/dom-ready/index.js 576 B 0 B
build/dom/index.js 4.94 kB 0 B
build/edit-navigation/index.js 11 kB 0 B
build/edit-navigation/style-rtl.css 1.26 kB 0 B
build/edit-navigation/style.css 1.25 kB 0 B
build/edit-post/index.js 307 kB 0 B
build/edit-post/style-rtl.css 6.81 kB 0 B
build/edit-post/style.css 6.8 kB 0 B
build/edit-site/index.js 26.2 kB 0 B
build/edit-site/style-rtl.css 4.41 kB 0 B
build/edit-site/style.css 4.41 kB 0 B
build/edit-widgets/index.js 20.1 kB 0 B
build/edit-widgets/style-rtl.css 3.2 kB 0 B
build/edit-widgets/style.css 3.2 kB 0 B
build/editor/editor-styles-rtl.css 543 B 0 B
build/editor/editor-styles.css 545 B 0 B
build/editor/index.js 42.1 kB 0 B
build/editor/style-rtl.css 3.89 kB 0 B
build/editor/style.css 3.89 kB 0 B
build/element/index.js 4.61 kB 0 B
build/escape-html/index.js 735 B 0 B
build/format-library/index.js 6.77 kB 0 B
build/format-library/style-rtl.css 637 B 0 B
build/format-library/style.css 639 B 0 B
build/hooks/index.js 2.28 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 4.01 kB 0 B
build/is-shallow-equal/index.js 698 B 0 B
build/keyboard-shortcuts/index.js 2.54 kB 0 B
build/keycodes/index.js 1.95 kB 0 B
build/list-reusable-blocks/index.js 3.14 kB 0 B
build/list-reusable-blocks/style-rtl.css 629 B 0 B
build/list-reusable-blocks/style.css 628 B 0 B
build/media-utils/index.js 5.35 kB 0 B
build/notices/index.js 1.85 kB 0 B
build/nux/index.js 3.41 kB 0 B
build/nux/style-rtl.css 731 B 0 B
build/nux/style.css 727 B 0 B
build/plugins/index.js 2.55 kB 0 B
build/primitives/index.js 1.42 kB 0 B
build/priority-queue/index.js 790 B 0 B
build/react-i18n/index.js 1.45 kB 0 B
build/redux-routine/index.js 2.83 kB 0 B
build/reusable-blocks/index.js 3.77 kB 0 B
build/reusable-blocks/style-rtl.css 225 B 0 B
build/reusable-blocks/style.css 225 B 0 B
build/rich-text/index.js 13.4 kB 0 B
build/server-side-render/index.js 2.76 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 3.01 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.22 kB 0 B

compressed-size-action

@david-szabo97 david-szabo97 requested a review from chrisvanpatten as a code owner Feb 20, 2021
Copy link
Contributor

@ntsekouras ntsekouras left a comment

Thanks for working on this @david-szabo97 !

I left some comments but the main functionality was tested and works 👍

);

return (
<PanelBody title={ __( 'Category' ) }>

This comment has been minimized.

@ntsekouras

ntsekouras Feb 20, 2021
Contributor

I'm not sure this should be in its own panel and with this title. Same remark about the below label Select template part category. I think we want to avoid template part wording and maybe just Area should be okay? 🤔
@mtias

This comment has been minimized.

@david-szabo97

david-szabo97 Feb 22, 2021
Author Member

For now, I followed @jameskoster 's mockup that you can find here: #27875

@jameskoster
Copy link
Contributor

@jameskoster jameskoster commented Feb 22, 2021

Thinking things through a little more... I am not sure that the title + area options should be so prominent in this context. It could easily mislead users into believing that any changes they make here are local to the parent template. I know the multi-entity save flow clears that up, but that might be a bit late...

Therefore, I'm thinking it might be better to move these options to the "Advanced" section:

Screenshot 2021-02-22 at 12 46 01

The prominence could perhaps increase when editing a template part in isolation... something like:

Screenshot 2021-02-22 at 12 52 59

But that is something to explore in more detail elsewhere (#29148).


This is possibly tangential, but should the html element change when you switch area? IE if I switch from Header to Footer, should the tag also change from <header> to <footer>?

@david-szabo97
Copy link
Member Author

@david-szabo97 david-szabo97 commented Feb 22, 2021

Therefore, I'm thinking it might be better to move these options to the "Advanced" section:

IMO, this makes sense. This is more like a power-user feature anyway.

This is possibly tangential, but should the HTML element change when you switch area? IE if I switch from Header to Footer, should the tag also change from

to ?

I'd say this is OK if the current area matches the current tag. IE, area = header, tag = header, but I when switch to area = footer then tag becomes footer too. But if area = header, tag = div, then I switch to area = footer then tag should stay div.

Maybe that's too smart?

@ntsekouras
Copy link
Contributor

@ntsekouras ntsekouras commented Feb 22, 2021

I'd say this is OK if the current area matches the current tag. IE, area = header, tag = header, but I when switch to area = footer then tag becomes footer too. But if area = header, tag = div, then I switch to area = footer then tag should stay div.

Maybe that's too smart?

I think it makes perfect sense to do exactly what you described.

@mtias
Copy link
Contributor

@mtias mtias commented Feb 22, 2021

Agreed with placing them in "Advanced". I think "area" needs some contextual explanatory text. Ideally we could also use the icons on the select element. Considering we might just have 3 or 4 canonical areas. It might make sense to list them as icons in a segmented control like the toolbar?

@Addison-Stavlo
Copy link
Contributor

@Addison-Stavlo Addison-Stavlo commented Feb 22, 2021

I'd say this is OK if the current area matches the current tag. IE, area = header, tag = header, but I when switch to area = footer then tag becomes footer too. But if area = header, tag = div, then I switch to area = footer then tag should stay div.

I think it makes sense to only set a tag based on the semantic area if a tagName attribute isn't set. So maybe we add an 'area default' to the tag name dropdown (and maybe add that default value in parens) that corresponds to the tagName being unset. Then when no tagname is set, we default to that value that corresponds to the semantic area.

@jameskoster
Copy link
Contributor

@jameskoster jameskoster commented Feb 22, 2021

We could use the existing icon buttons to create a simple segmented control:

Screenshot 2021-02-22 at 15 55 06

Or we might create something more elaborate that can also be used in #29222

Screenshot 2021-02-22 at 15 55 56

The helper text needs optimisation.

@Addison-Stavlo
Copy link
Contributor

@Addison-Stavlo Addison-Stavlo commented Feb 22, 2021

We could use the existing icon buttons to create a simple segmented control

It looks nice! Im not sure how many different 'areas' we plan to support in the future, but if we add a handful that second one with the large icons might become a bit weighty.

@jameskoster
Copy link
Contributor

@jameskoster jameskoster commented Feb 22, 2021

It could probably scale in rows – like the Inserter. But yeah, the simpler implementation might be the way to go to begin with.

@mtias
Copy link
Contributor

@mtias mtias commented Feb 22, 2021

The first one looks nice to me :)

@carolinan
Copy link
Contributor

@carolinan carolinan commented Feb 23, 2021

I prefer it when the text with the area name is visible, or even the select list.
When the icons are used, I have to stop and think, trying to interpret what they mean. The tooltip can't replace that.

@david-szabo97 david-szabo97 force-pushed the add/category-panel-to-template-parts branch from f0a8988 to 23adb49 Feb 23, 2021
@jameskoster jameskoster mentioned this pull request Feb 23, 2021
0 of 4 tasks complete
@Addison-Stavlo
Copy link
Contributor

@Addison-Stavlo Addison-Stavlo commented Feb 23, 2021

This is working well!
I like the default element tag based on area for when no tagName is set! However, it looks like as a result of that there is no way to set it as a div without the area being 'General'. I wonder if we should just add div to the list for elements now so users can have the power to override the area default with something non-semantic if there is ever any need.

@Addison-Stavlo
Copy link
Contributor

@Addison-Stavlo Addison-Stavlo commented Feb 23, 2021

I prefer it when the text with the area name is visible, or even the select list.

Maybe it makes sense to start with the dropdown list in this PR. And explore the icon designs in follow up?

@david-szabo97 david-szabo97 requested review from nerrad and ntwb as code owners Feb 23, 2021
@david-szabo97
Copy link
Member Author

@david-szabo97 david-szabo97 commented Feb 23, 2021

  • Moved controls to Advanced panel
  • Added div as an option for HTML element
  • Added a new "Default based on area" option for HTML elements
  • Fixed tests

Maybe it makes sense to start with the dropdown list in this PR. And explore the icon designs in follow up?

I agree, let's keep them separate. Easier to review and discuss as well.

Copy link
Contributor

@Addison-Stavlo Addison-Stavlo left a comment

This looks great and tests well in both the editor and front end!

@@ -91,31 +93,12 @@ export default function TemplatePartEdit( {

return (
<>
<InspectorControls>

This comment has been minimized.

@Addison-Stavlo

Addison-Stavlo Feb 23, 2021
Contributor

Nice call moving all this to another file. Its definitely a bit more organized now.

const advancedPanelXPath = `//div[contains(@class,"interface-interface-skeleton__sidebar")]//button[@class="components-button components-panel__body-toggle"][contains(text(),"Advanced")]`;
const advancedPanel = await page.waitForXPath( advancedPanelXPath );
await advancedPanel.click();
Comment on lines +44 to +46

This comment has been minimized.

@Addison-Stavlo

Addison-Stavlo Feb 23, 2021
Contributor

I wonder if current e2e utils ensureSidebarOpened, findSidebarPanelToggleButtonWithTitle, findSidebarPanelWithTitle, may be useful here?

This comment has been minimized.

@david-szabo97

david-szabo97 Feb 24, 2021
Author Member

Would be great, but just checked them and they are only working in edit-post context 😞

This comment has been minimized.

@Addison-Stavlo

Addison-Stavlo Feb 24, 2021
Contributor

are only working in edit-post context

Isn't that the context this function is being run in? It looks like it is used in test setup in before all, after createNewPost and before siteEditor.visit(). Similarly it uses openDocumentSettingsSidebar a few lines above this which is also reliant on edit-post* selectors.

@david-szabo97 david-szabo97 merged commit dc74730 into master Feb 24, 2021
19 checks passed
19 checks passed
Build Release Artifact
Details
Cancel Previous Runs
Details
Check
Details
Checks (12)
Details
Admin - 1 Admin - 1
Details
Run performance tests
Details
pull-request-automation
Details
test (gutenberg-editor-gallery)
Details
test (gutenberg-editor-gallery)
Details
All
Details
JavaScript (12)
Details
Checks (14)
Details
Admin - 2 Admin - 2
Details
JavaScript (14)
Details
Admin - 3 Admin - 3
Details
Admin - 4 Admin - 4
Details
Create Release Draft and Attach Asset
Details
PHP
Details
Mobile
Details
@david-szabo97 david-szabo97 deleted the add/category-panel-to-template-parts branch Feb 24, 2021
@github-actions github-actions bot added this to the Gutenberg 10.2 milestone Feb 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment