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] Gallery block: Fix crash when adding images and selecting a gallery item #38238

Merged
merged 6 commits into from
Jan 27, 2022

Conversation

fluiddot
Copy link
Contributor

@fluiddot fluiddot commented Jan 26, 2022

Gutenberg Mobile PR: wordpress-mobile/gutenberg-mobile#4515

Description

Fixes #38217.

After the changes introduced in #38036, we spotted in the native version that the Gallery block is trying to render the component MediaReplaceFlow which is neither defined nor exported in native hence, this produces a crash in the editor.

For this reason, this PR introduces the following two changes:

  1. Create the native variant of the component MediaReplaceFlow:
    As this component is not required yet by the native version, an empty component is provided for now.

  2. Create a platform-specific set of props to be included when rendering the MediaPlaceholder component:
    This is required in order to keep the same behavior for the native version of the gallery block, after the changes introduced in Gallery block: Move add/edit media to block toolbar #38036.

Testing Instructions

  1. Open a post/page.
  2. Add a Gallery block.
  3. Add images to the gallery.
  4. Observe that no error is displayed.
  5. Select one of the gallery items.
  6. Observe that no error is displayed.

Screenshots

N/A

Types of changes

Bug fix

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 (please manually search all *.native.js files for terms that need renaming or removal).
  • I've updated related schemas if appropriate.

Since the MediaReplaceFlow component is not implemented yet in the native version of the editor, we return an empty component instead.
@fluiddot fluiddot added [Type] Bug An existing feature does not function as intended Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) Mobile App - Automation Label used to initiate Mobile App PR Automation labels Jan 26, 2022
@fluiddot fluiddot self-assigned this Jan 26, 2022
@github-actions
Copy link

github-actions bot commented Jan 26, 2022

Size Change: +46 B (0%)

Total Size: 1.14 MB

Filename Size Change
build/block-library/index.min.js 166 kB +46 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 960 B
build/admin-manifest/index.min.js 1.1 kB
build/annotations/index.min.js 2.75 kB
build/api-fetch/index.min.js 2.22 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 459 B
build/block-directory/index.min.js 6.28 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 B
build/block-editor/index.min.js 141 kB
build/block-editor/style-rtl.css 14.6 kB
build/block-editor/style.css 14.6 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 65 B
build/block-library/blocks/archives/style.css 65 B
build/block-library/blocks/audio/editor-rtl.css 150 B
build/block-library/blocks/audio/editor.css 150 B
build/block-library/blocks/audio/style-rtl.css 111 B
build/block-library/blocks/audio/style.css 111 B
build/block-library/blocks/audio/theme-rtl.css 125 B
build/block-library/blocks/audio/theme.css 125 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 470 B
build/block-library/blocks/button/editor.css 470 B
build/block-library/blocks/button/style-rtl.css 560 B
build/block-library/blocks/button/style.css 560 B
build/block-library/blocks/buttons/editor-rtl.css 292 B
build/block-library/blocks/buttons/editor.css 292 B
build/block-library/blocks/buttons/style-rtl.css 275 B
build/block-library/blocks/buttons/style.css 275 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 90 B
build/block-library/blocks/code/style.css 90 B
build/block-library/blocks/code/theme-rtl.css 131 B
build/block-library/blocks/code/theme.css 131 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 406 B
build/block-library/blocks/columns/style.css 406 B
build/block-library/blocks/comment-template/style-rtl.css 127 B
build/block-library/blocks/comment-template/style.css 127 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-query-loop/editor-rtl.css 95 B
build/block-library/blocks/comments-query-loop/editor.css 95 B
build/block-library/blocks/cover/editor-rtl.css 546 B
build/block-library/blocks/cover/editor.css 547 B
build/block-library/blocks/cover/style-rtl.css 1.22 kB
build/block-library/blocks/cover/style.css 1.22 kB
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 417 B
build/block-library/blocks/embed/style.css 417 B
build/block-library/blocks/embed/theme-rtl.css 124 B
build/block-library/blocks/embed/theme.css 124 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 255 B
build/block-library/blocks/file/style.css 255 B
build/block-library/blocks/file/view.min.js 322 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 965 B
build/block-library/blocks/gallery/editor.css 967 B
build/block-library/blocks/gallery/style-rtl.css 1.6 kB
build/block-library/blocks/gallery/style.css 1.6 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 159 B
build/block-library/blocks/group/editor.css 159 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 114 B
build/block-library/blocks/heading/style.css 114 B
build/block-library/blocks/html/editor-rtl.css 332 B
build/block-library/blocks/html/editor.css 333 B
build/block-library/blocks/image/editor-rtl.css 810 B
build/block-library/blocks/image/editor.css 809 B
build/block-library/blocks/image/style-rtl.css 507 B
build/block-library/blocks/image/style.css 511 B
build/block-library/blocks/image/theme-rtl.css 124 B
build/block-library/blocks/image/theme.css 124 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/editor-rtl.css 199 B
build/block-library/blocks/latest-posts/editor.css 198 B
build/block-library/blocks/latest-posts/style-rtl.css 447 B
build/block-library/blocks/latest-posts/style.css 446 B
build/block-library/blocks/list/style-rtl.css 94 B
build/block-library/blocks/list/style.css 94 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 493 B
build/block-library/blocks/media-text/style.css 490 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 649 B
build/block-library/blocks/navigation-link/editor.css 650 B
build/block-library/blocks/navigation-link/style-rtl.css 94 B
build/block-library/blocks/navigation-link/style.css 94 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation-submenu/view.min.js 343 B
build/block-library/blocks/navigation/editor-rtl.css 1.99 kB
build/block-library/blocks/navigation/editor.css 2 kB
build/block-library/blocks/navigation/style-rtl.css 1.85 kB
build/block-library/blocks/navigation/style.css 1.84 kB
build/block-library/blocks/navigation/view.min.js 2.81 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 401 B
build/block-library/blocks/page-list/editor.css 402 B
build/block-library/blocks/page-list/style-rtl.css 175 B
build/block-library/blocks/page-list/style.css 175 B
build/block-library/blocks/paragraph/editor-rtl.css 157 B
build/block-library/blocks/paragraph/editor.css 157 B
build/block-library/blocks/paragraph/style-rtl.css 273 B
build/block-library/blocks/paragraph/style.css 273 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/style-rtl.css 446 B
build/block-library/blocks/post-comments-form/style.css 446 B
build/block-library/blocks/post-comments/style-rtl.css 521 B
build/block-library/blocks/post-comments/style.css 521 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/editor-rtl.css 721 B
build/block-library/blocks/post-featured-image/editor.css 721 B
build/block-library/blocks/post-featured-image/style-rtl.css 153 B
build/block-library/blocks/post-featured-image/style.css 153 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 323 B
build/block-library/blocks/post-template/style.css 323 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 80 B
build/block-library/blocks/post-title/style.css 80 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 198 B
build/block-library/blocks/pullquote/editor.css 198 B
build/block-library/blocks/pullquote/style-rtl.css 389 B
build/block-library/blocks/pullquote/style.css 388 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 234 B
build/block-library/blocks/query-pagination/style.css 231 B
build/block-library/blocks/query/editor-rtl.css 131 B
build/block-library/blocks/query/editor.css 132 B
build/block-library/blocks/quote/style-rtl.css 187 B
build/block-library/blocks/quote/style.css 187 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 397 B
build/block-library/blocks/search/style.css 398 B
build/block-library/blocks/search/theme-rtl.css 64 B
build/block-library/blocks/search/theme.css 64 B
build/block-library/blocks/separator/editor-rtl.css 99 B
build/block-library/blocks/separator/editor.css 99 B
build/block-library/blocks/separator/style-rtl.css 245 B
build/block-library/blocks/separator/style.css 245 B
build/block-library/blocks/separator/theme-rtl.css 172 B
build/block-library/blocks/separator/theme.css 172 B
build/block-library/blocks/shortcode/editor-rtl.css 474 B
build/block-library/blocks/shortcode/editor.css 474 B
build/block-library/blocks/site-logo/editor-rtl.css 744 B
build/block-library/blocks/site-logo/editor.css 744 B
build/block-library/blocks/site-logo/style-rtl.css 181 B
build/block-library/blocks/site-logo/style.css 181 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 177 B
build/block-library/blocks/social-link/editor.css 177 B
build/block-library/blocks/social-links/editor-rtl.css 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/social-links/style-rtl.css 1.32 kB
build/block-library/blocks/social-links/style.css 1.32 kB
build/block-library/blocks/spacer/editor-rtl.css 332 B
build/block-library/blocks/spacer/editor.css 332 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 471 B
build/block-library/blocks/table/editor.css 472 B
build/block-library/blocks/table/style-rtl.css 481 B
build/block-library/blocks/table/style.css 481 B
build/block-library/blocks/table/theme-rtl.css 188 B
build/block-library/blocks/table/theme.css 188 B
build/block-library/blocks/tag-cloud/style-rtl.css 214 B
build/block-library/blocks/tag-cloud/style.css 215 B
build/block-library/blocks/template-part/editor-rtl.css 560 B
build/block-library/blocks/template-part/editor.css 559 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 571 B
build/block-library/blocks/video/editor.css 572 B
build/block-library/blocks/video/style-rtl.css 173 B
build/block-library/blocks/video/style.css 173 B
build/block-library/blocks/video/theme-rtl.css 124 B
build/block-library/blocks/video/theme.css 124 B
build/block-library/common-rtl.css 908 B
build/block-library/common.css 905 B
build/block-library/editor-rtl.css 10.1 kB
build/block-library/editor.css 10.1 kB
build/block-library/reset-rtl.css 474 B
build/block-library/reset.css 474 B
build/block-library/style-rtl.css 10.8 kB
build/block-library/style.css 10.8 kB
build/block-library/theme-rtl.css 672 B
build/block-library/theme.css 676 B
build/block-serialization-default-parser/index.min.js 1.09 kB
build/block-serialization-spec-parser/index.min.js 2.79 kB
build/blocks/index.min.js 46.4 kB
build/components/index.min.js 215 kB
build/components/style-rtl.css 15.5 kB
build/components/style.css 15.5 kB
build/compose/index.min.js 11.2 kB
build/core-data/index.min.js 13.4 kB
build/customize-widgets/index.min.js 11.4 kB
build/customize-widgets/style-rtl.css 1.5 kB
build/customize-widgets/style.css 1.49 kB
build/data-controls/index.min.js 631 B
build/data/index.min.js 7.49 kB
build/date/index.min.js 31.9 kB
build/deprecated/index.min.js 485 B
build/dom-ready/index.min.js 304 B
build/dom/index.min.js 4.5 kB
build/edit-navigation/index.min.js 16 kB
build/edit-navigation/style-rtl.css 3.76 kB
build/edit-navigation/style.css 3.76 kB
build/edit-post/classic-rtl.css 546 B
build/edit-post/classic.css 547 B
build/edit-post/index.min.js 29.6 kB
build/edit-post/style-rtl.css 7.15 kB
build/edit-post/style.css 7.14 kB
build/edit-site/index.min.js 41.5 kB
build/edit-site/style-rtl.css 7.22 kB
build/edit-site/style.css 7.21 kB
build/edit-widgets/index.min.js 16.5 kB
build/edit-widgets/style-rtl.css 4.17 kB
build/edit-widgets/style.css 4.17 kB
build/editor/index.min.js 38.4 kB
build/editor/style-rtl.css 3.71 kB
build/editor/style.css 3.71 kB
build/element/index.min.js 3.29 kB
build/escape-html/index.min.js 517 B
build/format-library/index.min.js 6.58 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.63 kB
build/html-entities/index.min.js 424 B
build/i18n/index.min.js 3.75 kB
build/is-shallow-equal/index.min.js 501 B
build/keyboard-shortcuts/index.min.js 1.8 kB
build/keycodes/index.min.js 1.39 kB
build/list-reusable-blocks/index.min.js 1.72 kB
build/list-reusable-blocks/style-rtl.css 838 B
build/list-reusable-blocks/style.css 838 B
build/media-utils/index.min.js 2.92 kB
build/notices/index.min.js 925 B
build/nux/index.min.js 2.08 kB
build/nux/style-rtl.css 747 B
build/nux/style.css 743 B
build/plugins/index.min.js 1.84 kB
build/primitives/index.min.js 924 B
build/priority-queue/index.min.js 582 B
build/react-i18n/index.min.js 671 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.65 kB
build/reusable-blocks/index.min.js 2.22 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 11 kB
build/server-side-render/index.min.js 1.58 kB
build/shortcode/index.min.js 1.49 kB
build/token-list/index.min.js 639 B
build/url/index.min.js 1.9 kB
build/viewport/index.min.js 1.05 kB
build/warning/index.min.js 248 B
build/widgets/index.min.js 7.15 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.04 kB

compressed-size-action

@fluiddot fluiddot marked this pull request as ready for review January 26, 2022 11:38
@fluiddot fluiddot requested a review from mkevins as a code owner January 26, 2022 11:38
`autoOpenMediaUpload` prop is only used in the native version of the `MediaPlaceholder` component hence, we don't need to define it in the props set for the web version.
Copy link
Member

@geriux geriux left a comment

Choose a reason for hiding this comment

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

Hey @fluiddot 👋 thank you for working on fixing this crash. I left two comments, let me know what you think. Also thanks for introducing some tests to catch these type of issues from now on 👏 .

packages/block-library/src/gallery/edit.js Outdated Show resolved Hide resolved
packages/block-library/src/gallery/test/index.native.js Outdated Show resolved Hide resolved
@fluiddot
Copy link
Contributor Author

Hey @fluiddot 👋 thank you for working on fixing this crash. I left two comments, let me know what you think. Also thanks for introducing some tests to catch these type of issues from now on 👏 .

Thank you @geriux for reviewing the PR ❤️ !

I've just reviewed and applied the suggestions you mentioned, let me know if you could take another review, thanks 🙇.

Copy link
Member

@geriux geriux left a comment

Choose a reason for hiding this comment

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

LGTM! I tested this on both iOS/Android and in a local instance of Gutenberg.

@glendaviesnz
Copy link
Contributor

This tested well for me on the web side and the code LGTM. What is the best way for us to minimise the chance of this sort of surprise on the mobile side in the future - should we ping some mobile team members whenever we change the gallery?

@fluiddot
Copy link
Contributor Author

This tested well for me on the web side and the code LGTM.

Thanks for taking a look @glendaviesnz, I really appreciate it 🙇.

What is the best way for us to minimise the chance of this sort of surprise on the mobile side in the future - should we ping some mobile team members whenever we change the gallery?

Ideally, these issues should be identified by automatic tests (integration + e2e tests). In this case, as there was none for the Gallery block, we spotted it probably too late during the manual testing. Nevertheless, currently, we're focused on increasing the coverage of blocks, especially for preventing cases like this, so hopefully, that should help us in the future.

Regarding pinging, I see that for the Gallery block @mkevins is assigned as a code owner (reference), but not sure if Matthew was able to take a look. It would be great to figure out better ways to sync changes between both platforms, but in the meantime, I think pinging someone from the mobile team is a good workaround 👍 .

@fluiddot fluiddot merged commit d9d473b into trunk Jan 27, 2022
@fluiddot fluiddot deleted the rnmobile/fix/gallery-block-media-replace-flow branch January 27, 2022 09:14
@github-actions github-actions bot added this to the Gutenberg 12.6 milestone Jan 27, 2022
fluiddot added a commit that referenced this pull request Jan 27, 2022
…a gallery item (#38238)

* Add the native variant of MediaReplaceFlow

Since the MediaReplaceFlow component is not implemented yet in the native version of the editor, we return an empty component instead.

* Set MediaPlaceholder props by platform in gallery

* Update react-native-editor changelog

* Remove autoOpenMediaUpload from web props

`autoOpenMediaUpload` prop is only used in the native version of the `MediaPlaceholder` component hence, we don't need to define it in the props set for the web version.

* Add gallery block integration tests

* Unify shared props between web and native
@mkevins
Copy link
Contributor

mkevins commented Jan 27, 2022

not sure if Matthew was able to take a look

I did get a notification for this, but I think I overlooked it as it was purple by the time I saw it 😞 .

Ideally, these issues should be identified by automatic tests (integration + e2e tests).

This is definitely the way to go, imo. Also, as we continue to improve the developer experience of building and running the mobile app, direct manual testing of the areas related to a PR's changes can be a great holistic way to cover these kinds of issues, and will likely help to foster the "mobile caution/awareness" upstream. I.e. the tighter that loop is, the better.

@mkevins
Copy link
Contributor

mkevins commented Jan 28, 2022

In this case, as there was none for the Gallery block

It looks like the gallery block on-device test is still present, but it merely adds an empty gallery block, which will only catch a limited subset of potential issues. That suite could certainly use some expansion 😄

@fluiddot
Copy link
Contributor Author

It looks like the gallery block on-device test is still present, but it merely adds an empty gallery block, which will only catch a limited subset of potential issues. That suite could certainly use some expansion 😄

Certainly, we could also add integration tests to cover the block's logic and user flows.

@mkevins
Copy link
Contributor

mkevins commented Jan 30, 2022

Certainly, we could also add integration tests to cover the block's logic and user flows.

This would be fantastic! Especially now that the gallery block is in a more "stable" state from a UI perspective (i.e. using inner blocks). One of the blockers to adding such tests earlier was that the block was undergoing big changes to the UI with the format refactoring, and now that this phase is complete (more or less), integration / UI tests will help catch (and prevent) a whole class of issues before they even land.

@fluiddot
Copy link
Contributor Author

Certainly, we could also add integration tests to cover the block's logic and user flows.

This would be fantastic! Especially now that the gallery block is in a more "stable" state from a UI perspective (i.e. using inner blocks). One of the blockers to adding such tests earlier was that the block was undergoing big changes to the UI with the format refactoring, and now that this phase is complete (more or less), integration / UI tests will help catch (and prevent) a whole class of issues before they even land.

@mkevins Great, thanks for sharing the context 🙇 . FYI I planned to tackle integration tests for this block, I'll let you know once I finish the PRs in case you could take a look at the user flows covered, thanks.

dcalhoun added a commit that referenced this pull request Feb 2, 2022
* Release script: Update react-native-editor version to 1.70.0

* Release script: Update with changes from 'npm run core preios'

* Add 1.70.0 section to react-native-editor changelog

* Release script: Update react-native-editor version to 1.70.1

* Release script: Update with changes from 'npm run core preios'

* [RNMobile] Gallery block: Fix crash when adding images and selecting a gallery item (#38238)

* Add the native variant of MediaReplaceFlow

Since the MediaReplaceFlow component is not implemented yet in the native version of the editor, we return an empty component instead.

* Set MediaPlaceholder props by platform in gallery

* Update react-native-editor changelog

* Remove autoOpenMediaUpload from web props

`autoOpenMediaUpload` prop is only used in the native version of the `MediaPlaceholder` component hence, we don't need to define it in the props set for the web version.

* Add gallery block integration tests

* Unify shared props between web and native

* Add 1.70.1 section to react-native-editor changelog

* Declare package visibility to query URL handler apps (#38377)

* Declare package visibility to query URL handler apps

* Update changelog

* Update react-native-bridge changelog

Co-authored-by: Stefanos Togoulidis <stefanostogoulidis@gmail.com>
Co-authored-by: David Calhoun <438664+dcalhoun@users.noreply.github.com>
geriux pushed a commit that referenced this pull request Feb 3, 2022
* Release script: Update react-native-editor version to 1.70.0

* Release script: Update with changes from 'npm run core preios'

* Add 1.70.0 section to react-native-editor changelog

* Release script: Update react-native-editor version to 1.70.1

* Release script: Update with changes from 'npm run core preios'

* [RNMobile] Gallery block: Fix crash when adding images and selecting a gallery item (#38238)

* Add the native variant of MediaReplaceFlow

Since the MediaReplaceFlow component is not implemented yet in the native version of the editor, we return an empty component instead.

* Set MediaPlaceholder props by platform in gallery

* Update react-native-editor changelog

* Remove autoOpenMediaUpload from web props

`autoOpenMediaUpload` prop is only used in the native version of the `MediaPlaceholder` component hence, we don't need to define it in the props set for the web version.

* Add gallery block integration tests

* Unify shared props between web and native

* Add 1.70.1 section to react-native-editor changelog

* Declare package visibility to query URL handler apps (#38377)

* Declare package visibility to query URL handler apps

* Update changelog

* Update react-native-bridge changelog

* Release script: Update react-native-editor version to 1.70.2

* Release script: Update with changes from 'npm run core preios'

* Mobile - Rich Text - Validate link colors

* Mobile - Rich Text - Update naming to match prop

* Update Changelog

* GutenbergDemo - Restore unwanted archs change

* Mobile - Update changelog

Co-authored-by: Carlos Garcia <fluiddot@gmail.com>
Co-authored-by: Stefanos Togoulidis <stefanostogoulidis@gmail.com>
fluiddot added a commit that referenced this pull request Feb 10, 2022
* Release script: Update react-native-editor version to 1.70.0

* Release script: Update with changes from 'npm run core preios'

* Add 1.70.0 section to react-native-editor changelog

* Release script: Update react-native-editor version to 1.70.1

* Release script: Update with changes from 'npm run core preios'

* [RNMobile] Gallery block: Fix crash when adding images and selecting a gallery item (#38238)

* Add the native variant of MediaReplaceFlow

Since the MediaReplaceFlow component is not implemented yet in the native version of the editor, we return an empty component instead.

* Set MediaPlaceholder props by platform in gallery

* Update react-native-editor changelog

* Remove autoOpenMediaUpload from web props

`autoOpenMediaUpload` prop is only used in the native version of the `MediaPlaceholder` component hence, we don't need to define it in the props set for the web version.

* Add gallery block integration tests

* Unify shared props between web and native

* Add 1.70.1 section to react-native-editor changelog

* Declare package visibility to query URL handler apps (#38377)

* Declare package visibility to query URL handler apps

* Update changelog

* Update react-native-bridge changelog

* Release script: Update react-native-editor version to 1.70.2

* Release script: Update with changes from 'npm run core preios'

* Mobile - Rich Text - Validate link colors

* Mobile - Rich Text - Update naming to match prop

* Update Changelog

* GutenbergDemo - Restore unwanted archs change

* Release script: Update react-native-editor version to 1.70.3

* Release script: Update with changes from 'npm run core preios'

* [RNMobile] Highlight text: Check if style attribute value is defined during filtering (#38670)

* Check if style value is defined before removing extra spaces

* Add test case for old text color format

* Update react-native-editor changelog

Co-authored-by: Carlos Garcia <fluiddot@gmail.com>
Co-authored-by: Stefanos Togoulidis <stefanostogoulidis@gmail.com>
Co-authored-by: Gerardo <gerardo.pacheco@automattic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Mobile App - Automation Label used to initiate Mobile App PR Automation Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Gallery block: Crash when adding images and selecting a gallery item
4 participants