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

Cover: Padding: Fix reset + Visualize on hover #23041

Merged
merged 4 commits into from
Jun 10, 2020

Conversation

ItsJonQ
Copy link

@ItsJonQ ItsJonQ commented Jun 9, 2020

Screen Shot 2020-06-09 at 2 09 32 PM

This update fixes the reset handling for the new experimental Padding controls for the Cover block.

♻️ Reset Handling

Clicking reset now removes padding values completely.

It sets the values to null, which removes inline styling rendering into the Cover. This is an important detail, as we should still allow for users to set values of 0px, which is different than no value (null).

✨ Improved Visualizers

Screen Capture on 2020-06-09 at 14-37-40

The Padding visualizers have been enhanced to show when the user hovers any one of the Padding controls. The visualizers also maintain the ability to flash during changes. Previously, the visualizers only revealed themselves on change.

📖 Update padding style (hook) namespace

This update changes the style hook of padding to be namespaced as:

style.spacing.padding = { ... }

Previously, it existed as

style.padding = { ... }

In order for the visualizers to be programmatically triggered (by hover interactions), the show/hide values have also been added to the style Object as:

style.visualizers.padding = { ... }

This works. However, I feel like there could be a better way to connect these 2 Components (while avoiding adding state to the global wp.data). The solution I'm imagining would look similar to Zustand

How has this been tested?

  • Tested locally in Storybook
  • Tested in local Gutenberg

To test...

  • run npm run dev
  • Add add_theme_support( 'experimental-custom-spacing' ) (a place could be the normalize-theme.php file, under normalize_theme_init)
  • Add a Cover block
  • Change the padding to 10px
  • Visualizers should flash
  • Hover the padding input
  • Visualizers should show
  • Click reset
  • Padding input value should be empty
  • Change padding value to 20px
  • Save
  • Refresh
  • Check the Cover post padding
  • It should be 20px
  • Click reset
  • Padding input value should be empty

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • 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.

Resolves: #23030

@ItsJonQ ItsJonQ added [Package] Components /packages/components [Block] Cover Affects the Cover Block - used to display content laid over a background image labels Jun 9, 2020
@ItsJonQ ItsJonQ requested a review from oandregal June 9, 2020 20:25
@ItsJonQ ItsJonQ self-assigned this Jun 9, 2020
@ItsJonQ ItsJonQ mentioned this pull request Jun 9, 2020
6 tasks

const initialValuesRef = useRef( values );
Copy link
Author

Choose a reason for hiding this comment

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

No longer needed. It was previously used to hold onto the initial value for the session.
We need the reset action to completely nullify the box values.

label,
value,
...props
} ) {
const bindHoverGesture = useHover( ( { event, ...state } ) => {
Copy link
Author

Choose a reason for hiding this comment

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

Thank you react-use-gesture 🙏 !

@github-actions
Copy link

github-actions bot commented Jun 9, 2020

Size Change: +716 B (0%)

Total Size: 1.13 MB

Filename Size Change
build/a11y/index.js 1.14 kB +1 B
build/annotations/index.js 3.62 kB -3 B (0%)
build/autop/index.js 2.83 kB -2 B (0%)
build/block-directory/index.js 6.77 kB -3 B (0%)
build/block-editor/index.js 106 kB +86 B (0%)
build/block-library/index.js 127 kB +32 B (0%)
build/blocks/index.js 48.1 kB -7 B (0%)
build/components/index.js 195 kB +679 B (0%)
build/core-data/index.js 11.4 kB -7 B (0%)
build/data/index.js 8.45 kB -5 B (0%)
build/date/index.js 5.47 kB +1 B
build/edit-navigation/index.js 8.24 kB -6 B (0%)
build/edit-post/index.js 303 kB -11 B (0%)
build/edit-site/index.js 15.5 kB -6 B (0%)
build/edit-widgets/index.js 9.34 kB -5 B (0%)
build/editor/index.js 44.8 kB -5 B (0%)
build/element/index.js 4.64 kB -2 B (0%)
build/hooks/index.js 2.13 kB -1 B
build/html-entities/index.js 622 B +1 B
build/keyboard-shortcuts/index.js 2.51 kB -6 B (0%)
build/keycodes/index.js 1.94 kB -2 B (0%)
build/list-reusable-blocks/index.js 3.12 kB -1 B
build/media-utils/index.js 5.29 kB -4 B (0%)
build/notices/index.js 1.79 kB -4 B (0%)
build/nux/index.js 3.4 kB -5 B (0%)
build/primitives/index.js 1.5 kB -1 B
build/redux-routine/index.js 2.85 kB -1 B
build/rich-text/index.js 14.8 kB +6 B (0%)
build/server-side-render/index.js 2.68 kB -1 B
build/url/index.js 4.06 kB -2 B (0%)
build/viewport/index.js 1.85 kB -1 B
build/warning/index.js 1.14 kB +1 B
ℹ️ View Unchanged
Filename Size Change
build/api-fetch/index.js 3.4 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/style-rtl.css 892 B 0 B
build/block-directory/style.css 892 B 0 B
build/block-editor/style-rtl.css 11.8 kB 0 B
build/block-editor/style.css 11.8 kB 0 B
build/block-library/editor-rtl.css 7.88 kB 0 B
build/block-library/editor.css 7.89 kB 0 B
build/block-library/style-rtl.css 7.72 kB 0 B
build/block-library/style.css 7.72 kB 0 B
build/block-library/theme-rtl.css 684 B 0 B
build/block-library/theme.css 686 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/components/style-rtl.css 19.5 kB 0 B
build/components/style.css 19.5 kB 0 B
build/compose/index.js 9.31 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 569 B 0 B
build/dom/index.js 3.17 kB 0 B
build/edit-navigation/style-rtl.css 918 B 0 B
build/edit-navigation/style.css 919 B 0 B
build/edit-post/style-rtl.css 5.6 kB 0 B
build/edit-post/style.css 5.6 kB 0 B
build/edit-site/style-rtl.css 2.96 kB 0 B
build/edit-site/style.css 2.96 kB 0 B
build/edit-widgets/style-rtl.css 2.4 kB 0 B
build/edit-widgets/style.css 2.4 kB 0 B
build/editor/editor-styles-rtl.css 425 B 0 B
build/editor/editor-styles.css 428 B 0 B
build/editor/style-rtl.css 4.26 kB 0 B
build/editor/style.css 4.27 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.72 kB 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/i18n/index.js 3.56 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@paaljoachim
Copy link
Contributor

Will this be added to 8.3.1?

@jasmussen
Copy link
Contributor

This is cool, Q! My local dev env is a bit challenged at the moment so I can't reliably test this. But based on the images, this seems to just need a code review! 👍 👍

Will this be added to 8.3.1?

Given this is still strictly opt-in and probably not yet on anyone's radar, it does not seem to warrant a point release.

@oandregal oandregal merged commit 2e814da into master Jun 10, 2020
@oandregal oandregal deleted the fix/cover-padding-reset-and-visualizer branch June 10, 2020 07:51
@github-actions github-actions bot added this to the Gutenberg 8.4 milestone Jun 10, 2020
@oandregal oandregal mentioned this pull request Jun 10, 2020
7 tasks
@oandregal
Copy link
Member

This will be backported for 8.3 release as part of #23026 as the other bugfixes we prepared during RC testing (the hook namespace change is a must-have to avoid block deprecations in future releases).

Certainly, the visualizers improvement is not a bugfix but a lovely feature! 🌟 As a general rule, I think it'd be good to only land bugfixes after RC. However, in this specific case, given that the PR does all the things at once and that it's a new feature yet to be released, I'm ok going ahead with this. Worst-case scenario, we have to do a 8.3.1.

oandregal pushed a commit that referenced this pull request Jun 10, 2020
- Edit Site: fix template lookup. #22954
- Fix for FSE template parts: #23050
- Fix link color style rule. #23025
- Fix for link color: it needs to be opt-in. #23049
- Revert "Image Block: add caption field to placeholder" #23027
- Cover padding: reset button + hook namespace + improve visualizer #23041
- Fix failing 'Build artifacts' CI job (by updating `package-lock.json`): #23052
This was referenced Jun 24, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Cover Affects the Cover Block - used to display content laid over a background image [Package] Components /packages/components
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cover: Reset should remove all user changes
4 participants