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

[RNMobile] Navigation in bottom-sheet #23782

Merged
merged 62 commits into from
Aug 14, 2020
Merged

[RNMobile] Navigation in bottom-sheet #23782

merged 62 commits into from
Aug 14, 2020

Conversation

dratwas
Copy link
Contributor

@dratwas dratwas commented Jul 8, 2020

Description

Main issue: wordpress-mobile/gutenberg-mobile#1884
Wordpress-iOS PR: wordpress-mobile/WordPress-iOS#14474
Wordpress-Android PR: wordpress-mobile/WordPress-Android#12455
Gutenberg-mobile PR: wordpress-mobile/gutenberg-mobile#2549
In this PR i added react-navigation and used it inside our Bottom-Sheet. This Pr has a long story behind. We wanted to replace the entire Bottom-Sheet to reanimated-bottom-sheet but unfortunately, there are too many limitations so we decided to keep our current BottomSheet implementation and just add navigation inside.

This PR affects all Block Settings.

I implemented some helper mechanisms that will be useful in the future while adding a new screen inside the bottom-sheet. To animate the bottom-sheet height when the navigation is inside we need to set the height of current Screen ( The visible one If we have nested navigators) so I added BottomSheet.NavigationScreen that handles the Android hardware back button and BottomSheet.NavigationContainer to animate height of it.

How has this been tested?

  • Check settings of each block
  • Open Button Block settings
  • Click on Text Color / Backgrounds color
  • The navigation inside bottom sheet should be possible
  • Play a bit with colors and check if the button reflecting these changes
  • Try the hardware back button on Android - the back button should back to the previous screen or hide the bottom-sheet if it's the main settings screen

Screenshots

iOS Android
bottom-sheet-navigation-finish andoridbottomsheetbuttonfinish

Types of changes

Add 'react-navigation' to the project and add possibilities to use it inside our bottom-sheet.

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 mentioned this pull request Jul 8, 2020
22 tasks
@github-actions
Copy link

github-actions bot commented Jul 8, 2020

Size Change: 0 B

Total Size: 1.16 MB

ℹ️ 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.44 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 7.96 kB 0 B
build/block-directory/style-rtl.css 953 B 0 B
build/block-directory/style.css 952 B 0 B
build/block-editor/index.js 125 kB 0 B
build/block-editor/style-rtl.css 10.6 kB 0 B
build/block-editor/style.css 10.6 kB 0 B
build/block-library/editor-rtl.css 8.36 kB 0 B
build/block-library/editor.css 8.36 kB 0 B
build/block-library/index.js 132 kB 0 B
build/block-library/style-rtl.css 7.49 kB 0 B
build/block-library/style.css 7.49 kB 0 B
build/block-library/theme-rtl.css 729 B 0 B
build/block-library/theme.css 730 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 48.4 kB 0 B
build/components/index.js 200 kB 0 B
build/components/style-rtl.css 15.7 kB 0 B
build/components/style.css 15.7 kB 0 B
build/compose/index.js 9.68 kB 0 B
build/core-data/index.js 11.8 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/data/index.js 8.56 kB 0 B
build/date/index.js 5.38 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 3.23 kB 0 B
build/edit-navigation/index.js 10.9 kB 0 B
build/edit-navigation/style-rtl.css 1.08 kB 0 B
build/edit-navigation/style.css 1.08 kB 0 B
build/edit-post/index.js 304 kB 0 B
build/edit-post/style-rtl.css 5.63 kB 0 B
build/edit-post/style.css 5.63 kB 0 B
build/edit-site/index.js 17 kB 0 B
build/edit-site/style-rtl.css 3.06 kB 0 B
build/edit-site/style.css 3.06 kB 0 B
build/edit-widgets/index.js 11.7 kB 0 B
build/edit-widgets/style-rtl.css 2.45 kB 0 B
build/edit-widgets/style.css 2.45 kB 0 B
build/editor/editor-styles-rtl.css 537 B 0 B
build/editor/editor-styles.css 539 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.79 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.11 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.33 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.71 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.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

@dratwas dratwas marked this pull request as ready for review July 13, 2020 12:05
@pinarol pinarol requested review from lukewalczak and mkevins July 15, 2020 09:22
@pinarol pinarol added the Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) label Jul 15, 2020
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 tested this with iOS demo app and it looks good. I am only dropping some comments regarding documentation. After that I think this is ready to go.

@lukewalczak Could you test the Android side?

@lukewalczak
Copy link
Member

Overall it looks really solid! 🎉
I've discovered one crash against the master, please investigate these steps:

  1. Add cover block
  2. Press gradient color indicator

@dratwas
Copy link
Contributor Author

dratwas commented Aug 13, 2020

Hey @lukewalczak thanks for your review!

I've discovered one crash against the master, please investigate these steps:

  1. Add cover block
  2. Press gradient color indicator

I pushed the fix (here) could you please check it one more time? :)

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.

Thank you for the latest changes, I tested with iOS&Android demo apps. Things look good to me. 🎉

@lukewalczak
Copy link
Member

Tested the latest changes and works as expected, no crash detected 🎉 that's really nice feature!

@dratwas dratwas merged commit d5a8822 into master Aug 14, 2020
@dratwas dratwas deleted the rnmobile/only-navigation branch August 14, 2020 14:09
@github-actions github-actions bot added this to the Gutenberg 8.8 milestone Aug 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants