Skip to content

Conversation

@dratwas
Copy link
Contributor

@dratwas dratwas commented Mar 10, 2020

Description

In this PR i reimplemented borders of blocks according to that issue wordpress-mobile/gutenberg-mobile#1948

Gutenberg-mobile PR: wordpress-mobile/gutenberg-mobile#2050

I removed old borders and calculations related to them and set borders as a view that is positioned absolutely.

I also had to manage all margins because they changed after removing borders. I mentioned a few issues related to that here. I fixed them by using negative margins in the parent (FlatList) except the root list.
So the base concept is - if the parent has margin set to -16 and each inner block has margin set to 16 then the edge margins are cut and we don't need to check if it is first/last block etc. This solution should work for horizontal blocks as well w/o any calculations. Tested on columns and buttons.

I also added a possibility to change the horizontal or vertical margin of inner blocks since @lukewalczak said he would need that probably in buttons block.

After these changes, I had to fix margins in cover, media, and group block.

NOTE:
This PR needs an accurate review of spacing of borders and inner blocks. @iamthomasbishop could you please check it? :)

How has this been tested?

All tests cases related to the spacing and borders from here:
https://github.com/wordpress-mobile/test-cases/blob/master/test-cases/gutenberg/group.md

Basically the editor should look the same as before :)

Screenshots

Types of changes

Reimplementation of blocks borders

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.

@dratwas dratwas added the [Status] In Progress Tracking issues with work in progress label Mar 10, 2020
@dratwas dratwas changed the title [WIP][RNMobile] Reimplementation ob block borders [WIP][RNMobile] Reimplementation of block borders Mar 10, 2020
@github-actions
Copy link

github-actions bot commented Mar 10, 2020

Size Change: 0 B

Total Size: 860 kB

ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 998 B 0 B
build/annotations/index.js 3.43 kB 0 B
build/api-fetch/index.js 3.39 kB 0 B
build/autop/index.js 2.58 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 6.02 kB 0 B
build/block-directory/style-rtl.css 760 B 0 B
build/block-directory/style.css 760 B 0 B
build/block-editor/index.js 102 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 7.22 kB 0 B
build/block-library/editor.css 7.23 kB 0 B
build/block-library/index.js 110 kB 0 B
build/block-library/style-rtl.css 7.44 kB 0 B
build/block-library/style.css 7.45 kB 0 B
build/block-library/theme-rtl.css 669 B 0 B
build/block-library/theme.css 671 B 0 B
build/block-serialization-default-parser/index.js 1.65 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 57.5 kB 0 B
build/components/index.js 191 kB 0 B
build/components/style-rtl.css 15.8 kB 0 B
build/components/style.css 15.7 kB 0 B
build/compose/index.js 6.21 kB 0 B
build/core-data/index.js 10.6 kB 0 B
build/data-controls/index.js 1.04 kB 0 B
build/data/index.js 8.25 kB 0 B
build/date/index.js 5.37 kB 0 B
build/deprecated/index.js 771 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 3.06 kB 0 B
build/edit-post/index.js 91.2 kB 0 B
build/edit-post/style-rtl.css 8.47 kB 0 B
build/edit-post/style.css 8.46 kB 0 B
build/edit-site/index.js 6.72 kB 0 B
build/edit-site/style-rtl.css 2.88 kB 0 B
build/edit-site/style.css 2.88 kB 0 B
build/edit-widgets/index.js 4.43 kB 0 B
build/edit-widgets/style-rtl.css 2.58 kB 0 B
build/edit-widgets/style.css 2.58 kB 0 B
build/editor/editor-styles-rtl.css 428 B 0 B
build/editor/editor-styles.css 431 B 0 B
build/editor/index.js 43.8 kB 0 B
build/editor/style-rtl.css 4 kB 0 B
build/editor/style.css 3.98 kB 0 B
build/element/index.js 4.44 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 6.95 kB 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/hooks/index.js 1.93 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.49 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/keyboard-shortcuts/index.js 2.3 kB 0 B
build/keycodes/index.js 1.69 kB 0 B
build/list-reusable-blocks/index.js 2.99 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/media-utils/index.js 4.84 kB 0 B
build/notices/index.js 1.57 kB 0 B
build/nux/index.js 3.01 kB 0 B
build/nux/style-rtl.css 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.54 kB 0 B
build/primitives/index.js 1.5 kB 0 B
build/priority-queue/index.js 781 B 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/rich-text/index.js 14.5 kB 0 B
build/server-side-render/index.js 2.55 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 4.01 kB 0 B
build/viewport/index.js 1.61 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.18 kB 0 B

compressed-size-action

@dratwas dratwas changed the title [WIP][RNMobile] Reimplementation of block borders [RNMobile] Reimplementation of block borders Mar 16, 2020
@jbinda jbinda mentioned this pull request Mar 16, 2020
6 tasks
Copy link
Contributor

@pinarol pinarol left a comment

Choose a reason for hiding this comment

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

Masterpiece! Seriously! 🎉 Can't describe how happy I am to see lots of code removed.

I have detected 3 issues among below tests but in general I think no big issues here. I only tested with iOS.
@jbinda Could you test with Android as well?

  • Media Text block - Media & Text alignment

  • Media Text block - Vertical alignment

  • Group - AppenderButton is rendered - steps

  • Group - Deep nesting is possible (iOS only) - steps

  • Group - Check if Group placeholder is visible for the unselected state - steps

  • Group - Check if Group placeholder is render in nested structure - steps

  • Group - Nested block have proper border styling - steps

  • Group - Nested block have proper margins values - steps

  • Group - Breadcrumbs on FloatingToolbar is properly displayed - steps

  • Group - Navigation up button works as expected - steps

  • Group - Navigation down works according to parent-first approach - steps

  • Group - Cross navigation between blocks works as expected - steps

  • Group - Ungroup button works as expected - steps

  • Group - Check if in DarkMode all components gets proper colors (iOS) - steps

  • Group - Check if nested Placeholder block can be replaced - steps ❌ <<< I saw the issue in this PR while testing it, was that fix merged into this branch?

  • The empty space under toolbar, see code comments

  • Media-Text: The extra space between media - text, see code comments

@jbinda
Copy link
Contributor

jbinda commented Mar 25, 2020

@pinarol sure I will test in on Android today in 1st place

Group - Check if nested Placeholder block can be replaced - steps ❌ <<< I saw the issue in this PR while testing it, was that fix merged into this branch?

I see that is should contain this fix. I will double check because I didn't noticed any issue when testing this fix before merge

@pinarol
Copy link
Contributor

pinarol commented Mar 25, 2020

I can't repro this anymore, it should have been fixed by the latest merge from master by this PR.

  • Group - Check if nested Placeholder block can be replaced

@jbinda
Copy link
Contributor

jbinda commented Mar 25, 2020

Tested on Android demo and WP Android:

  • Media Text block - Media & Text alignment
    ❓ Media Text block - Vertical alignment - please see below question
  • Group - AppenderButton is rendered - steps
  • Group - Deep nesting is possible (iOS only) - steps
  • Group - Check if Group placeholder is visible for the unselected state - steps
  • Group - Check if Group placeholder is render in nested structure - steps
  • Group - Nested block have proper border styling - steps
  • Group - Nested block have proper margins values - steps
  • Group - Breadcrumbs on FloatingToolbar is properly displayed - steps
  • Group - Navigation up button works as expected - steps
  • Group - Navigation down works according to parent-first approach - steps
  • Group - Cross navigation between blocks works as expected - steps
  • Group - Ungroup button works as expected - steps
  • Group - Check if in DarkMode all components gets proper colors (iOS) - steps
  • Group - Check if nested Placeholder block can be replaced - steps

Media Text block - Vertical alignment - question

Is below screen present proper item alignment for Horizontal layout when vertical alignment is set to top ? (the dashed border frame is not align with image)

Apart of above checklist I have noticed another thing with Separator line. Depends on hierarchy level the Separator line has different width. Not sure if it is expected or something brings by this PR. However maybe it is worth to fix this here to make Separator behaviour consistent with other changes. This is question to @iamthomasbishop probably but shouldn't the Separator line align to content as well ?

See below screens for details.

@dratwas
Copy link
Contributor Author

dratwas commented Mar 25, 2020

@jbinda

Is below screen present proper item alignment for Horizontal layout when vertical alignment is set to top ?

I think so, apart from the space on left and right (already fixed)

@pinarol
Copy link
Contributor

pinarol commented Mar 25, 2020

Is below screen present proper item alignment for Horizontal layout when vertical alignment is set to top ? (the dashed border frame is not align with image)

Depends on hierarchy level the Separator line has different width.

Those 2 work the same way on prod. If there's something that needs to be improved about these items we can handle it on a different PR since this PR's purpose is only improving the code quality while making sure that we aren't breaking anything.

@jbinda
Copy link
Contributor

jbinda commented Mar 25, 2020

Cool ! That was the only findings that I was able to spot during my todays testing

Copy link
Contributor

@pinarol pinarol left a comment

Choose a reason for hiding this comment

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

I repeated my tests on iOS, issues I reported are fixed. I can't detect any regressions this PR is causing. I think this is ready to go. Thank you for all the great work! Again, masterpiece!

@jbinda please give 👍 for Android side if you are finished with testing.

Copy link
Contributor

@jbinda jbinda left a comment

Choose a reason for hiding this comment

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

I have tested on Android and also do not noticed any regression.

Let's ship it :)

@dratwas dratwas merged commit 70e9f8b into master Mar 25, 2020
@dratwas dratwas deleted the rnmobile/block-borders branch March 25, 2020 17:25
@github-actions github-actions bot added this to the Gutenberg 7.9 milestone Mar 25, 2020
@jbinda
Copy link
Contributor

jbinda commented Mar 25, 2020

hooray 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Status] In Progress Tracking issues with work in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants