Skip to content

fix: Patch react-devtools-core to support jsdom-jscore-rn#47616

Merged
dcalhoun merged 2 commits intotrunkfrom
fix/patch-react-devtools-core-to-support-jsdom-jscore-rn
Feb 1, 2023
Merged

fix: Patch react-devtools-core to support jsdom-jscore-rn#47616
dcalhoun merged 2 commits intotrunkfrom
fix/patch-react-devtools-core-to-support-jsdom-jscore-rn

Conversation

@dcalhoun
Copy link
Copy Markdown
Member

What?

Patch react-devtools-core to support jsdom-jscore-rn, which is used by the
native mobile editor.

Why?

The native editor defines window.document which caused react-devtools-core
to believe the environment was a browser, not React Native. This resulted in the
following error when inspecting components using the React Dev Tools:

Android:

Cannot set property 'zIndex' of undefined

iOS:

TypeError: undefined is not an object (evaluating
'this.container.style.zIndex = '10000000'')

How?

Add a custom property to window.document to inform react-devtools-core that
the environment is using jsdom and it should not presume it is a browser
environment with a fully capable DOM.

Testing Instructions

  1. npm run native start:reset
  2. npm run native android
  3. Open Flipper or launch the react-devtools via CLI.
  4. Select a component in the React tree.
  5. Verify the aforementioned zIndex warnings due not display on the device or
    the server log.

Testing Instructions for Keyboard

n/a

Screenshots or screencast

n/a

The native editor defining `window.document` caused
`react-devtools-core` to believe the environment was a browser, not
React Native. This resulted in the following error when inspecting
components using the React Dev Tools:

Android:
```
Cannot set property 'zIndex' of undefined
```

iOS:
```
TypeError: undefined is not an object (evaluating
'this.container.style.zIndex = '10000000'')
```
@dcalhoun dcalhoun added 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 labels Jan 31, 2023
@dcalhoun dcalhoun self-assigned this Jan 31, 2023
@dcalhoun dcalhoun requested a review from derekblank January 31, 2023 14:48
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 31, 2023

Size Change: +367 B (0%)

Total Size: 1.31 MB

Filename Size Change
build/block-editor/index.min.js 192 kB -94 B (0%)
build/block-library/blocks/query/editor-rtl.css 458 B +18 B (+4%)
build/block-library/blocks/query/editor.css 457 B +17 B (+4%)
build/block-library/editor-rtl.css 11.5 kB -27 B (0%)
build/block-library/editor.css 11.5 kB -27 B (0%)
build/block-library/index.min.js 199 kB +28 B (0%)
build/edit-site/index.min.js 63.1 kB -12 B (0%)
build/editor/index.min.js 45.5 kB +464 B (+1%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 993 B
build/annotations/index.min.js 2.78 kB
build/api-fetch/index.min.js 2.27 kB
build/autop/index.min.js 2.15 kB
build/blob/index.min.js 483 B
build/block-directory/index.min.js 7.16 kB
build/block-directory/style-rtl.css 1.04 kB
build/block-directory/style.css 1.04 kB
build/block-editor/content-rtl.css 4.11 kB
build/block-editor/content.css 4.1 kB
build/block-editor/default-editor-styles-rtl.css 403 B
build/block-editor/default-editor-styles.css 403 B
build/block-editor/style-rtl.css 14.3 kB
build/block-editor/style.css 14.3 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 90 B
build/block-library/blocks/archives/style.css 90 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 122 B
build/block-library/blocks/audio/style.css 122 B
build/block-library/blocks/audio/theme-rtl.css 138 B
build/block-library/blocks/audio/theme.css 138 B
build/block-library/blocks/avatar/editor-rtl.css 116 B
build/block-library/blocks/avatar/editor.css 116 B
build/block-library/blocks/avatar/style-rtl.css 84 B
build/block-library/blocks/avatar/style.css 84 B
build/block-library/blocks/block/editor-rtl.css 305 B
build/block-library/blocks/block/editor.css 305 B
build/block-library/blocks/button/editor-rtl.css 485 B
build/block-library/blocks/button/editor.css 485 B
build/block-library/blocks/button/style-rtl.css 532 B
build/block-library/blocks/button/style.css 532 B
build/block-library/blocks/buttons/editor-rtl.css 337 B
build/block-library/blocks/buttons/editor.css 337 B
build/block-library/blocks/buttons/style-rtl.css 332 B
build/block-library/blocks/buttons/style.css 332 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 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 100 B
build/block-library/blocks/categories/style.css 100 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 121 B
build/block-library/blocks/code/style.css 121 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 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-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 B
build/block-library/blocks/comment-content/style-rtl.css 92 B
build/block-library/blocks/comment-content/style.css 92 B
build/block-library/blocks/comment-template/style-rtl.css 199 B
build/block-library/blocks/comment-template/style.css 198 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-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 840 B
build/block-library/blocks/comments/editor.css 839 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 636 B
build/block-library/blocks/cover/editor-rtl.css 612 B
build/block-library/blocks/cover/editor.css 613 B
build/block-library/blocks/cover/style-rtl.css 1.57 kB
build/block-library/blocks/cover/style.css 1.56 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 410 B
build/block-library/blocks/embed/style.css 410 B
build/block-library/blocks/embed/theme-rtl.css 138 B
build/block-library/blocks/embed/theme.css 138 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 253 B
build/block-library/blocks/file/style.css 254 B
build/block-library/blocks/file/view.min.js 353 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 984 B
build/block-library/blocks/gallery/editor.css 988 B
build/block-library/blocks/gallery/style-rtl.css 1.55 kB
build/block-library/blocks/gallery/style.css 1.55 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 654 B
build/block-library/blocks/group/editor.css 654 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 76 B
build/block-library/blocks/heading/style.css 76 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 829 B
build/block-library/blocks/image/editor.css 828 B
build/block-library/blocks/image/style-rtl.css 627 B
build/block-library/blocks/image/style.css 630 B
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/latest-comments/style-rtl.css 298 B
build/block-library/blocks/latest-comments/style.css 298 B
build/block-library/blocks/latest-posts/editor-rtl.css 213 B
build/block-library/blocks/latest-posts/editor.css 212 B
build/block-library/blocks/latest-posts/style-rtl.css 478 B
build/block-library/blocks/latest-posts/style.css 478 B
build/block-library/blocks/list/style-rtl.css 88 B
build/block-library/blocks/list/style.css 88 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 507 B
build/block-library/blocks/media-text/style.css 505 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 716 B
build/block-library/blocks/navigation-link/editor.css 715 B
build/block-library/blocks/navigation-link/style-rtl.css 115 B
build/block-library/blocks/navigation-link/style.css 115 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/editor-rtl.css 2.13 kB
build/block-library/blocks/navigation/editor.css 2.14 kB
build/block-library/blocks/navigation/style-rtl.css 2.22 kB
build/block-library/blocks/navigation/style.css 2.2 kB
build/block-library/blocks/navigation/view-modal.min.js 2.81 kB
build/block-library/blocks/navigation/view.min.js 447 B
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 376 B
build/block-library/blocks/page-list/editor.css 376 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 174 B
build/block-library/blocks/paragraph/editor.css 174 B
build/block-library/blocks/paragraph/style-rtl.css 279 B
build/block-library/blocks/paragraph/style.css 281 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/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 501 B
build/block-library/blocks/post-comments-form/style.css 501 B
build/block-library/blocks/post-date/style-rtl.css 61 B
build/block-library/blocks/post-date/style.css 61 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 586 B
build/block-library/blocks/post-featured-image/editor.css 584 B
build/block-library/blocks/post-featured-image/style-rtl.css 318 B
build/block-library/blocks/post-featured-image/style.css 318 B
build/block-library/blocks/post-navigation-link/style-rtl.css 153 B
build/block-library/blocks/post-navigation-link/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 282 B
build/block-library/blocks/post-template/style.css 282 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-title/style-rtl.css 100 B
build/block-library/blocks/post-title/style.css 100 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 135 B
build/block-library/blocks/pullquote/editor.css 135 B
build/block-library/blocks/pullquote/style-rtl.css 326 B
build/block-library/blocks/pullquote/style.css 325 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 288 B
build/block-library/blocks/query-pagination/style.css 284 B
build/block-library/blocks/query-title/style-rtl.css 63 B
build/block-library/blocks/query-title/style.css 63 B
build/block-library/blocks/quote/style-rtl.css 213 B
build/block-library/blocks/quote/style.css 213 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 132 B
build/block-library/blocks/read-more/style.css 132 B
build/block-library/blocks/rss/editor-rtl.css 149 B
build/block-library/blocks/rss/editor.css 149 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 409 B
build/block-library/blocks/search/style.css 406 B
build/block-library/blocks/search/theme-rtl.css 114 B
build/block-library/blocks/search/theme.css 114 B
build/block-library/blocks/separator/editor-rtl.css 146 B
build/block-library/blocks/separator/editor.css 146 B
build/block-library/blocks/separator/style-rtl.css 234 B
build/block-library/blocks/separator/style.css 234 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 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 490 B
build/block-library/blocks/site-logo/editor.css 490 B
build/block-library/blocks/site-logo/style-rtl.css 203 B
build/block-library/blocks/site-logo/style.css 203 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 116 B
build/block-library/blocks/site-title/editor.css 116 B
build/block-library/blocks/site-title/style-rtl.css 57 B
build/block-library/blocks/site-title/style.css 57 B
build/block-library/blocks/social-link/editor-rtl.css 184 B
build/block-library/blocks/social-link/editor.css 184 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.4 kB
build/block-library/blocks/social-links/style.css 1.39 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 433 B
build/block-library/blocks/table/editor.css 433 B
build/block-library/blocks/table/style-rtl.css 651 B
build/block-library/blocks/table/style.css 650 B
build/block-library/blocks/table/theme-rtl.css 157 B
build/block-library/blocks/table/theme.css 157 B
build/block-library/blocks/tag-cloud/style-rtl.css 251 B
build/block-library/blocks/tag-cloud/style.css 253 B
build/block-library/blocks/template-part/editor-rtl.css 404 B
build/block-library/blocks/template-part/editor.css 404 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 99 B
build/block-library/blocks/verse/style.css 99 B
build/block-library/blocks/video/editor-rtl.css 552 B
build/block-library/blocks/video/editor.css 555 B
build/block-library/blocks/video/style-rtl.css 179 B
build/block-library/blocks/video/style.css 179 B
build/block-library/blocks/video/theme-rtl.css 139 B
build/block-library/blocks/video/theme.css 139 B
build/block-library/classic-rtl.css 162 B
build/block-library/classic.css 162 B
build/block-library/common-rtl.css 1.05 kB
build/block-library/common.css 1.05 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 478 B
build/block-library/reset.css 478 B
build/block-library/style-rtl.css 12.4 kB
build/block-library/style.css 12.4 kB
build/block-library/theme-rtl.css 698 B
build/block-library/theme.css 703 B
build/block-serialization-default-parser/index.min.js 1.13 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/blocks/index.min.js 50.4 kB
build/components/index.min.js 203 kB
build/components/style-rtl.css 11.6 kB
build/components/style.css 11.7 kB
build/compose/index.min.js 12.3 kB
build/core-data/index.min.js 15.9 kB
build/customize-widgets/index.min.js 11.8 kB
build/customize-widgets/style-rtl.css 1.41 kB
build/customize-widgets/style.css 1.41 kB
build/data-controls/index.min.js 663 B
build/data/index.min.js 8.06 kB
build/date/index.min.js 32.1 kB
build/deprecated/index.min.js 518 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.71 kB
build/edit-post/classic-rtl.css 571 B
build/edit-post/classic.css 571 B
build/edit-post/index.min.js 34.5 kB
build/edit-post/style-rtl.css 7.46 kB
build/edit-post/style.css 7.45 kB
build/edit-site/style-rtl.css 9.44 kB
build/edit-site/style.css 9.44 kB
build/edit-widgets/index.min.js 16.9 kB
build/edit-widgets/style-rtl.css 4.49 kB
build/edit-widgets/style.css 4.49 kB
build/editor/style-rtl.css 3.68 kB
build/editor/style.css 3.67 kB
build/element/index.min.js 4.93 kB
build/escape-html/index.min.js 548 B
build/experiments/index.min.js 905 B
build/format-library/index.min.js 7.23 kB
build/format-library/style-rtl.css 598 B
build/format-library/style.css 597 B
build/hooks/index.min.js 1.66 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.79 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.79 kB
build/keycodes/index.min.js 1.88 kB
build/list-reusable-blocks/index.min.js 2.14 kB
build/list-reusable-blocks/style-rtl.css 865 B
build/list-reusable-blocks/style.css 865 B
build/media-utils/index.min.js 2.99 kB
build/notices/index.min.js 977 B
build/plugins/index.min.js 1.95 kB
build/preferences-persistence/index.min.js 2.23 kB
build/preferences/index.min.js 1.35 kB
build/primitives/index.min.js 960 B
build/priority-queue/index.min.js 1.52 kB
build/react-i18n/index.min.js 702 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.75 kB
build/reusable-blocks/index.min.js 2.26 kB
build/reusable-blocks/style-rtl.css 265 B
build/reusable-blocks/style.css 265 B
build/rich-text/index.min.js 10.8 kB
build/server-side-render/index.min.js 2.09 kB
build/shortcode/index.min.js 1.52 kB
build/style-engine/index.min.js 1.53 kB
build/token-list/index.min.js 650 B
build/url/index.min.js 3.69 kB
build/vendors/inert-polyfill.min.js 2.48 kB
build/vendors/react-dom.min.js 41.8 kB
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 1.09 kB
build/warning/index.min.js 280 B
build/widgets/index.min.js 7.31 kB
build/widgets/style-rtl.css 1.18 kB
build/widgets/style.css 1.18 kB
build/wordcount/index.min.js 1.06 kB

compressed-size-action

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 31, 2023

Flaky tests detected in 43ebebc.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/4055978043
📝 Reported issues:

Copy link
Copy Markdown
Member

@derekblank derekblank left a comment

Choose a reason for hiding this comment

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

No longer receiving zIndex warnings after testing. LGTM! Thanks for tackling this one. 🚀

@derekblank
Copy link
Copy Markdown
Member

@dcalhoun Would a corresponding Gutenberg Mobile PR be expected to pair with this PR? I see that the Automation label was not included. Just curious if that was intentional based on the patched nature of these changes, or if there is another reason (or, is simply not needed).

@dcalhoun
Copy link
Copy Markdown
Member Author

dcalhoun commented Feb 1, 2023

@dcalhoun Would a corresponding Gutenberg Mobile PR be expected to pair with this PR? [...] Just curious if that was intentional based on the patched nature of these changes, or if there is another reason (or, is simply not needed).

I chose to forgo a Gutenberg Mobile PR as (1) I was less concerned these developer tool centric changes would introduce CI test suite breakages and (2) I can include this change via wordpress-mobile/gutenberg-mobile#5439 if I merge this PR before resolving the former's merge conflict by including the latest trunk.

It could be argued I should've still opened Gutenberg Mobile PR for this PR to leave an explicit "paper trail" of the inclusion of this change. However, many Gutenberg commits are brought into Gutenberg Mobile via Dependabot PRs or arbitrary updates to the Gutenberg submodule reference. So, I figure it is not an issue.

@dcalhoun dcalhoun merged commit 463dcb1 into trunk Feb 1, 2023
@dcalhoun dcalhoun deleted the fix/patch-react-devtools-core-to-support-jsdom-jscore-rn branch February 1, 2023 12:29
@github-actions github-actions bot added this to the Gutenberg 15.2 milestone Feb 1, 2023
dcalhoun added a commit that referenced this pull request Jan 31, 2024
This patch was originally created to prevent an warning caused by the
project's use of `jsdom-jscore-rn`.

#47616
dcalhoun added a commit that referenced this pull request Mar 5, 2024
* build: Capture result of @rnx-kit/align-deps

Result of running the following:

```
npx @rnx-kit/align-deps@latest --write --requirements react-native@0.73
```

* build: Revert incompatible @rnx-kit/align-deps changes

Revert changes that are incompatible with the Gutenberg project because
they are a undesired downgrade or erroneously modify usage of the `^`
version annotation.

* build: Replace Metro packages with @react-native namespace equivalents

These packages were renamed, the old names are deprecated.

* build: Capture package lock file changes

The result of `npm install` after update React Native-related
dependencies for 0.73.

* build: Recreate react-native patch file

The result of running `npx patch-package react-native`. This patch
exists as a workaround for the following RN core issue:

facebook/react-native#36465

* build: Correct lock file changes

The previous lock file was incorrect, as it was the result of running
`npm install` after merely bumping package version numbers. In order to
capture the correct lock file results, one must follow the Gutenberg
project's guidelines for updating dependencies, which involves removing
and re-adding each dependency. This now captures the result of `npm
install` after following that process.

https://github.com/WordPress/gutenberg/tree/c7cf2f74f38ae4c1f325e3238e61270a801f183c/packages#updating-existing-dependencies

* build: Replace overlooked deprecated Metro packages names

These packages were renamed, the old names are deprecated.

* build: Recreate react-devtools-core patch

This patch was originally created to prevent an warning caused by the
project's use of `jsdom-jscore-rn`.

#47616

* build: Expand react-devtools-core patch to cover all window references

This should improve React Devtool support for the React Native project.
Likely enabling features like highlighting a UI element when hovering
its component in the devtools.

* build: Migrate to @react-native/metro-config

Metro changed its approach for extending the default configuration.

* fix: Disable the optional Demo editor setup configuration

This logic threw the following error after upgrading to React Native
0.73. We should follow up to fix the error or remove the logic.

https://github.com/facebook/metro/blob/877933ddc03672a00214d26afe620b79479d6489/packages/metro-file-map/src/lib/TreeFS.js#L417

```
Unexpectedly escaped traversal
```

* Update Sass transformer to include workaround when being loaded from Gutenberg Mobile, to appened the right directory path

* Fix Reanimated test mock

* Add experimental debugger flag

* Update Reanimated

* build: Update Gemfile for React Native 0.73

* build: Bump minimum iOS version to 13.4

This was done to address the following error when installing Pods:

```
[!] CocoaPods could not find compatible versions for pod "React-FabricImage":
  In Podfile:
    React-FabricImage (from `../../../node_modules/react-native/ReactCommon`)

Specs satisfying the `React-FabricImage (from `../../../node_modules/react-native/ReactCommon`)` dependency were found, but they required a higher minimum deployment target.
```

* build: Update Podfile for React Native 0.73

* build: Upgrade to react-native-reanimated 3.6.2

Required to address the following error.

https://stackoverflow.com/a/77257722/378228

```
No template named 'optional' in namespace 'std'; did you mean 'folly::Optional'?
```

* build: Update Info.plist NSAppTransportSecurity

Align with the latest React Native template to avoid future conflicts.

* build: Align dependencies with react-native-libraries-publisher

The react-native-libraries-publisher provides published copies of these
dependencies that are consumed by the host WordPress app. The versions
here must align with the versions captured there.

#58475 (comment)

* build: Capture latest Pod changes

* Remove @react-native/gradle-plugin since it's included in the React Native package with support for AGP 8.2.1

* Migrate java files to kotlin

* Update build and gradle files

* Remove Flipper java file

* Update debug AndroidManifest

* Update react-native-config.js to include all packages that we are manually linking. This is needed to be able to use React Native's applyNativeModulesAppBuildGradle which includes needed configuration for other integration things. This auto links modules so we need to skip the ones we manually link.

* Update package-lock.json

* Updates react-native.config to remove disabling iOS auto-linking

* Updates the comment explaning why auto-linking is disabled for Android in the react-native.config.js file

* build: Configure GitHub Action ruby version

Previously, the CI would load the default ruby version, which caused
unexpected outcomes.

* test: Update Reanimated warning during tests

This existing warning was reworded.

* test: Fix failing Gallery edit test

Restore mock to its original implementation rather than resetting it to
an empty function. It is not entirely clear why this test began failing
after upgrading to React Native 0.73.

* build: Upgrade to @testing-library/react-native@12.4.3

* test: Avoid duplicate call to mock internal `TextInputState` module

We already invoke `jest.mock()` for this module within the Jest
environment setup file. We do so as _not_ mocking this module causes
widespread failures in tests due to its relationship to native modules.
So, in a way, it makes sense to globally mock it.

For whatever reason, attempting to invoke `jest.mock()` twice for this
module stopped working after upgrading to React Native 0.73. The mock
function passed to the second invocation was ignored.

This change now updates the existing mock instead.

* test: Update LinkUI snapshot

The specific cause for this update was not determined, but seemingly the
ref is no longer passed to the navigation `Stack.Screen` component.
There is no reason to believe this is an issue at this time.

* fix: Allow animation start during mount

This was done to fix failing automated tests. The guard was originally
added to prevent invoking the animation end callback, so this should be
safe to change.

* test: Leverage fake timers for Draggable animation tests

Without fake timers, the callbacks are never invoked as the animation
never completes. This outcome started happening after upgrading to
`react-native-reanimated@3.x`.

* test: Await missing block render from running timers

Addresses an act warning during the test run that started after
upgrading to React Native 0.73.

* test: Update timer mocks for Reanimated 3.x

The navigation container test failed due to `act` warnings and broken
mocked timers.

Wrapping timer runs with `act` address the former.

The latter is addressed by no longer relying upon "legacy" mock timers,
simplifying the approach for advancing the timers for animations, and
removing the global `requestAnimationFrame` override.

All of these same actions were applied to the Reanimated library in a
refactor:

software-mansion/react-native-reanimated@99573c3

* test: Refactor advanceAnimationByFrames utility

Align the implementation with the Reanimated version. It is worth noting
the Reanimated utility is marked as deprecated.

* test: Fix failing fake timer detection

The previous approach using `jest.isMockFunction` failed after upgrading
to React Native 0.73. While it is not clear why it began failing, the
new approach is sourced from the `@testing-library/react-native` source.

https://github.com/callstack/react-native-testing-library/blob/a670b2d4c1fb4df5326a63cb2852f4d6e37756da/src/helpers/timers.ts#L24-L58

* Revert upgrading to AGP 8.1.0 until the main Android host app upgrades to 8.1.1. We can't have different AGP versions and if we do this change the main host app will ned to update as well as their dependencies.

For now we'll fix all dependencies AGP versions in the React Native demo app.

* ci: Restrict `ruby/setup-ruby` CI action to specific commit hash

Mitigate Ci instability or insecurity.

* Update Changelog

---------

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 - 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.

2 participants