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

BoxControl: Add ability to render custom icon to represent sides #25297

Closed
wants to merge 1 commit into from

Conversation

ItsJonQ
Copy link

@ItsJonQ ItsJonQ commented Sep 14, 2020

box-control-custom-icon

(GIF above shows the BoxControl icon being rendered with a custom icon (emojis) that represent the selected side)

This update enhances the BoxControl component to allow for the ability to render a custom icon (a React.Component) to represent the selected side. This provides the opportunity for folks to adjust the UI for the icon if they choose to use BoxControl for purposes beyond padding (the current default implementation).

This idea was originally mentioned here:
#21492

cc'ing @rmorse

How has this been tested?

  • Locally on Storybook + Gutenberg

Easiest way to test right now...

Types of changes

  • Add iconComponent prop to <BoxControl /> for custom icon rendering
  • Updated docs

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • [n/a] My code follows the accessibility standards.
  • [n/a] My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • [n/a] I've updated all React Native files affected by any refactorings/renamings in this PR.

This update enhances the BoxControl component to allow for the ability to render a custom icon (a `React.Component`) to represent the selected side. This provides the opportunity for folks to adjust the UI for the icon if they choose to use `BoxControl` for purposes beyond `padding` (the current default implementation).
@ItsJonQ ItsJonQ added [Type] Enhancement A suggestion for improvement. [Package] Components /packages/components labels Sep 14, 2020
@ItsJonQ ItsJonQ self-assigned this Sep 14, 2020
@github-actions
Copy link

Size Change: +18 B (0%)

Total Size: 1.2 MB

Filename Size Change
build/components/index.js 202 kB +18 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.67 kB 0 B
build/api-fetch/index.js 3.41 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 8.52 kB 0 B
build/block-directory/style-rtl.css 943 B 0 B
build/block-directory/style.css 942 B 0 B
build/block-editor/index.js 128 kB 0 B
build/block-editor/style-rtl.css 11 kB 0 B
build/block-editor/style.css 11 kB 0 B
build/block-library/editor-rtl.css 8.67 kB 0 B
build/block-library/editor.css 8.67 kB 0 B
build/block-library/index.js 139 kB 0 B
build/block-library/style-rtl.css 7.59 kB 0 B
build/block-library/style.css 7.59 kB 0 B
build/block-library/theme-rtl.css 741 B 0 B
build/block-library/theme.css 741 B 0 B
build/block-serialization-default-parser/index.js 1.88 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 47.8 kB 0 B
build/components/style-rtl.css 15.5 kB 0 B
build/components/style.css 15.4 kB 0 B
build/compose/index.js 9.67 kB 0 B
build/core-data/index.js 12.2 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/data/index.js 8.55 kB 0 B
build/date/index.js 31.9 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 4.48 kB 0 B
build/edit-navigation/index.js 10.7 kB 0 B
build/edit-navigation/style-rtl.css 868 B 0 B
build/edit-navigation/style.css 871 B 0 B
build/edit-post/index.js 305 kB 0 B
build/edit-post/style-rtl.css 6.24 kB 0 B
build/edit-post/style.css 6.22 kB 0 B
build/edit-site/index.js 19.3 kB 0 B
build/edit-site/style-rtl.css 3.13 kB 0 B
build/edit-site/style.css 3.13 kB 0 B
build/edit-widgets/index.js 12.2 kB 0 B
build/edit-widgets/style-rtl.css 2.55 kB 0 B
build/edit-widgets/style.css 2.55 kB 0 B
build/editor/editor-styles-rtl.css 492 B 0 B
build/editor/editor-styles.css 493 B 0 B
build/editor/index.js 45.3 kB 0 B
build/editor/style-rtl.css 3.8 kB 0 B
build/editor/style.css 3.8 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.71 kB 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/hooks/index.js 2.13 kB 0 B
build/html-entities/index.js 621 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 711 B 0 B
build/keyboard-shortcuts/index.js 2.52 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.js 5.31 kB 0 B
build/notices/index.js 1.79 kB 0 B
build/nux/index.js 3.4 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.41 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 13.9 kB 0 B
build/server-side-render/index.js 2.77 kB 0 B
build/shortcode/index.js 1.69 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 4.06 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.17 kB 0 B

compressed-size-action

@rmorse
Copy link
Contributor

rmorse commented Sep 14, 2020

@ItsJonQ Greeeat stuff! Will be checking this out tomorrow

@rmorse
Copy link
Contributor

rmorse commented Sep 15, 2020

@ItsJonQ tested in my local project and works well!

Extra options that would be cool in the future (for dealing with corners/radius, for example):

  1. Add custom labels for Top / Right / Bottom / Left tooltips
  2. Add custom label for "link sides" / "unlink sides" tooltip in the link button

I'd be using this today if could (I might try to copy it over into my project, but looks like there are a lot of dependencies), thanks !

@rmorse
Copy link
Contributor

rmorse commented Sep 15, 2020

Another couple of possible improvements for further down the line:

  • when clicking "link" after modifying individual sides, you get that nice "mixed" message showing they are not equal - that message is not triggered when changing the unit only - I guess there should be a check that all the units are equal or not
  • when the "mixed" input is shown, you can start typing into the input field, however the unit dropdown is not visible until blur / up + down arrow

Base automatically changed from master to trunk March 1, 2021 15:44
@rmorse
Copy link
Contributor

rmorse commented Mar 16, 2021

I started implementing this the other day only to discover it still hasn't made it into release :(

@annezazu
Copy link
Contributor

I'm going to close out this PR due to inactivity. If you'd like to pick up this work though @rmorse, that would be awesome!

@annezazu annezazu closed this Jul 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Package] Components /packages/components [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants