forked from facebook/react-native
-
Notifications
You must be signed in to change notification settings - Fork 0
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
update master #2
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Reviewed By: sahrens Differential Revision: D7117137 fbshipit-source-id: a55a04928a0073a17e0709e851aa8b11678042ba
Reviewed By: yungsters Differential Revision: D7131703 fbshipit-source-id: d8e37fcd0c743057e04760b1e50f8d879bd2826a
Summary: Although the test suites have a handful of failing tests, the jobs themselves do not fail. Let's get these tests back into the fold so that we may track our progress getting these back to a good state. cc dlowder-salesforce Run tests on Circle, and confirm everything is green: https://circleci.com/workflow-run/4dd1a84b-502d-4ad6-aa41-64c768392a6b If you go into the test iOS and test tvOS jobs, you will see that we are collecting test results at the top. These results show the failing individual tests. Closes #18171 Differential Revision: D7151558 Pulled By: hramos fbshipit-source-id: f105ec8bc97e80ed1b8358cde3f13a1ad3b271c2
Summary: See the "broken" video attached to really understand the problem easily. On Android after navigating to any other screen using wix navigation library, the native viewpager would lose the settling page behaviour which is quite annoying for the users. This is caused by the onAttachedToWindow that resets mFirstLayout to true inside ViewPager. By request another layout pass, everything works as expected. Working video is the application with patched RN. [broken.mp4](https://github.com/facebook/react-native/files/1128028/broken.mp4.zip) [working.mp4](https://github.com/facebook/react-native/files/1128032/working.mp4.zip) Closes #14867 Differential Revision: D7154981 Pulled By: hramos fbshipit-source-id: 2b3570800a5320ed2c12c488748d9e1358936c84
Reviewed By: mzlee, ttsugriy Differential Revision: D7152463 fbshipit-source-id: ad7ca85f225343a043e2f606c6b3bbf74f42bbcd
Reviewed By: fkgozali Differential Revision: D7138115 fbshipit-source-id: f9cdda250b60a305195e01a11d0907f658d0a9d1
Summary: This reverts commit d16ff3b. Currently breaks with the gradle version used by RN, I think there has been some work to update that to a more recent one but for now I think we should just revert it. It errors with: ``` Could not find method registerGeneratedResFolders() for arguments [file collection] on object of type com.android.build.gradle.internal.api.ApplicationVariantImpl. ``` Tested that RN tester now builds when using the right react.gradle (#18188) [ ANDROID ] [ BUGFIX ] [ react.gradle ] - REVERT "Support Android Gradle Plugin 3.x and AAPT2" [ ANDROID ] [ FEATURE ] [ react.gradle ] - REVERT "Expose the bundling task and its outputs via ext properties" Closes #18189 Differential Revision: D7155176 Pulled By: hramos fbshipit-source-id: 87b7b80b39cd345eebac4631efe6697971a1dbdf
Summary: RNTester used a copy of the main react.gradle file instead of the real one. Recent changes to the real file caused builds to fail with older gradle versions but was not caught by CI because it wasn't using that file for RNTester. That copy of react.gradle is just a leftover from when projects included a copy instead of importing the one in RN directly. Note: CI WILL fail with this PR, if we have trouble landing this I can add the revert in this commit too but wanted to keep it as 2 separate commits. Tested that building RNTester actually fails now that it uses react.gradle with recent changes, then tested that is builds properly when reverting d16ff3b. [INTERNAL] [MINOR] [RNTester] - Use react.gradle from repo root instead of copy in RNTester Closes #18188 Differential Revision: D7155179 Pulled By: hramos fbshipit-source-id: 15b461a63b841bf807e7d11ba3ead005ca5e33b0
Reviewed By: achen1 Differential Revision: D7140944 fbshipit-source-id: 092ea8569af5b5f90e005d6dc2c1819c1c9cf58f
Summary: constructor shouldn't have side effects. Reviewed By: sahrens Differential Revision: D7146018 fbshipit-source-id: 0ca311e48d6bad81988ed48605c8134068c482da
Summary: Noticed that we're on a version of node-notifier that has a leak mentioned [here](mikaelbr/node-notifier#183) and fixed in the newest version. Automated tests [INTERNAL] [BUGFIX] [package.json] - Update node-notifier dependency Closes #18033 Differential Revision: D7102637 Pulled By: hramos fbshipit-source-id: 850f3d826c1d880a6281d95e4d5af68e9af89927
Reviewed By: michalgr Differential Revision: D6124038 fbshipit-source-id: 219afe30783da92cf10f800dc35e64823b61cf4b
Summary: fixes #17105 If you render ``` <TouchableOpacity disabled={true} style={{opacity: 0.5}} > ... </TouchableOpacity> ``` and then ``` <TouchableOpacity disabled={false} style={{opacity: 1}} > ... </TouchableOpacity> ``` The content of `TouchableOpacity` will still have opacity = 0.5 because real opacity is controlled by animated property which should be properly updated when `disabled` prop changes. <!-- Thank you for sending the PR! We appreciate you spending the time to work on these changes. Help us understand your motivation by explaining why you decided to make this change. You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html Happy contributing! --> Usually when a button or other UI component is built with `TouchableOpacity` you may want to change it's opacity if state of component is changed (enabled/disabled). Opacity provided in props is overridden with internally-managed animated value. Add extra check when component is updated to trigger opacity animation upon change of `disabled` flag. You can use code from #17105. (If this PR adds or changes functionality, please take some time to update the docs at https://github.com/facebook/react-native-website, and link to your PR here.) [GENERAL][BUGFIX][TouchableOpacity] - trigger animation on `opacity` upon change in `disabled` prop. <!-- Help reviewers and the release process by writing your own release notes **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.** CATEGORY [----------] TYPE [ CLI ] [-------------] LOCATION [ DOCS ] [ BREAKING ] [-------------] [ GENERAL ] [ BUGFIX ] [-{Component}-] [ INTERNAL ] [ ENHANCEMENT ] [ {File} ] [ IOS ] [ FEATURE ] [ {Directory} ] |-----------| [ ANDROID ] [ MINOR ] [ {Framework} ] - | {Message} | [----------] [-------------] [-------------] |-----------| [CATEGORY] [TYPE] [LOCATION] - MESSAGE EXAMPLES: [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see --> Closes #17106 Differential Revision: D7158549 Pulled By: hramos fbshipit-source-id: 209cc433b829b129810e8a884964c8853ca3fe8f
… class. Reviewed By: mmmulani Differential Revision: D7158824 fbshipit-source-id: 80eb61835181fa3f522b788e2861470cba88890a
Summary: These types were polymorphic so that stricter types could be passed in for dimension or color. For example, color could be a union of allowed colors. However, since `rgb(0,0,0)` is a valid color, these would have to be allowed opaque types and every creator or caller of these colors would have to use a function. This would require a massive change to every RN product in the world for negligable gain because StyleSheet values are validated at dev at runtime and cause redboxes for invalid uses. Since we don't plan to adopt these widely, lets clean up the complexity of these types. Reviewed By: sahrens Differential Revision: D7158920 fbshipit-source-id: c58ae402c8248b0863c217c27153191a49c6b980
Summary: There are a few more things that need to be tightened up but they cause *tons* of errors in FBSource and require more investigation before we can change them. Reviewed By: sahrens Differential Revision: D7160522 fbshipit-source-id: 17167efd80fd6c3bac5a055d2ab58b3b251c1b8b
Reviewed By: TheSavior, yungsters Differential Revision: D7106910 fbshipit-source-id: e150c6622bb1af9830eef06757897d42002f5676
Reviewed By: achen1 Differential Revision: D7164980 fbshipit-source-id: 86e9f3f11b67c8947b177aac23f99808083c3121
Reviewed By: mdvacca Differential Revision: D7165678 fbshipit-source-id: 3dd88b24c89af369c9d5f3cc57c96f29c4f10d47
Reviewed By: mjesun Differential Revision: D7123659 fbshipit-source-id: f344786dfe5e4c6c0d81992504ba93688edeb5db
Reviewed By: achen1 Differential Revision: D7168684 fbshipit-source-id: c655730b5bf5e181974096c2b940f6457be8a40d
Summary: <!-- Thank you for sending the PR! We appreciate you spending the time to work on these changes. Help us understand your motivation by explaining why you decided to make this change. You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html Happy contributing! --> * To be on par with Apple TV support, this makes it possible to run React Native apps on Android TV devices (See also: https://react-native.canny.io/feature-requests/p/android-tv-support) * These changes also make it possible to navigate through the app using D-PAD buttons that are present on some mobile devices * Since these changes affect, among others, `ReactRootView.java` and `Touchable.js` code and are closely related to Apple TV implementation, it makes sense for them to be included in the core - React native apps can be launched on Android TV devices and properly render their content - Navigation is possible using left, right, top, bottom arrows from the remote (or D-PAD) - Touchable components can handle D-PAD center button press events and correctly fire their `onPress` handlers - Touchable components will receive `onPressIn` and `onPressOut` events and can react to focus/blur changes appropriately (just like on Apple TV) - `Platform` constants allow to check if the react-native app is running on TV (`Platform.isTV`) - `ScrollView`s behave correctly (same as native implementation) when switching to view outside bounds – that is, the container would scroll such that the newly focused element is fully visible - Native "clicking" sounds are played when moving between focusable elements - Play/Pause click event is send to `TVEventHandler` - Rewind and FastForward events are send to `TVEventHandler` - Back button behaves as a normal Android back button - Diagonal buttons work correctly on Android TV, e.g. if there is no button directly to the right from the focused one, but there is one to the right but a bit higher/lower it will grab focus - Dev menu can be accessed by long pressing fast forward button A demo showing RNTester app running on Android TV device (Amazon Fire TV Stick) can be found here: [![RNAndroidTVDemo](http://img.youtube.com/vi/EzIQErHhY20/0.jpg)](http://www.youtube.com/watch?v=EzIQErHhY20) - `TextInput` will not work on Android TV devices. There's an issue with native `ReactEditText` implementation that prevents it from receiving focus. This makes it impossible to navigate to `TextInput`. This will be fixed next, but will be included in a separate Pull Request - ~Overlay permissions cannot be granted on Android TV devices running Android version >= 6.0 This is because the overlay permission can only be granted by firing an Intent to open settings page (`ACTION_MANAGE_OVERLAY_PERMISSION`). Since this page does not exist on TV devices the permission cannot be requested. This will make the app crash when trying to open dev menu (⌘+M) or displaying a redbox error. Note: This does not affect devices running Android version < 6.0 (for example Amazon Fire TV Stick)~ This is now fixed by: #16596 * Launch the RNTester app on Android TV device. * Ensure it launches without a crash * Ensure basic navigation is possible * Ensure Touchable components can receive select events * Ensure the changes do not break current Android and iOS mobile devices functionality. * Ensure the changes do not break current Apple TV functionality. [RNAndroidTVDemo video](http://img.youtube.com/vi/EzIQErHhY20/0.jpg) * Added `ReactAndroidTVViewManager` that handles TV `KeyEvent`s and dispatches events to JS - This is the core that enables basic navigation functionality on Android TV devices * Following the above change we copy `TVEventHandler.ios.js` into `TVEventHandler.android.js` to enable JS to pick up those native navigation events and dispatch them further to subscribed views. (Note: We do not have a native `TVNavigationEventEmitter` implementation on Android, thus this file is slightly modified, e.g. it does pass `null` to `NativeEventEmitter` constructor) * Added `uiMode` to `AndroidInfoModule`. (**Note**: This required changing `extends BaseJavaModule` to `extends ReactContextBaseJavaModule` to be able to use `getSystemService` which requires `Context` instance! * Added `isTV` constants to both `Platform.ios.js` (keeping the deprecated `isTVOS` as well) and `Platform.android.js` * Changed condition check on `Touchable.js` to use the newly added `isTV` flag to properly handle TV navigation events on Android as well * Added `LEANBACK_LAUNCHER` to `RNTester` `intent-filter` so that it is possible to launch it on Android TV devices. * See also a PR to `react-native-website` repo with updated docs for Android TV: facebook/react-native-website#59 - [ ] Fix `TextInput` components handling by allowing them to be focused and making a proper navigation between them (and/or other components) possible. One thing to note here that the default behavior to immediately open software keyboard when focused on `TextInput` field will need to be adjusted on Android TV as well) - [x] Fix overlay permissions issue by changing the way redbox/dev menu are displayed (see: #16596) - [ ] Adjust placement of TV-related files (e.g. the `TVEventHandler.js` file is placed inside `AppleTV` directory which is not accurate, since it does handle Android TV events as well) Previous discussion: software-mansion-labs#1 <!-- Help reviewers and the release process by writing your own release notes **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.** CATEGORY [----------] TYPE [ CLI ] [-------------] LOCATION [ DOCS ] [ BREAKING ] [-------------] [ GENERAl ] [ BUGFIX ] [-{Component}-] [ INTERNAL ] [ ENHANCEMENT ] [ {File} ] [ IOS ] [ FEATURE ] [ {Directory} ] |-----------| [ ANDROID ] [ MINOR ] [ {Framework} ] - | {Message} | [----------] [-------------] [-------------] |-----------| [CATEGORY] [TYPE] [LOCATION] - MESSAGE EXAMPLES: [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see --> [ANDROID] [FEATURE] [TV] - Added support for Android TV devices Closes #16500 Differential Revision: D6536847 Pulled By: hramos fbshipit-source-id: 17bbb11e8583b97f195ced5fd9762f8902fb8a3d
Summary: `RCTJavaScriptWillStartLoadingNotification` is being posted when starting the bridge, not when starting to execute JS code. Here, we add `RCTJavaScriptWillStartExecutingNotification`, and in post it before executing JS with `RCTCxxBridge`. Reviewed By: fromcelticpark Differential Revision: D7153659 fbshipit-source-id: 902075308d54a47bef43b6f57edf2e624f621ceb
Summary: When reloading JS during development, surface needs to make sure the root view gets re-registered before attempting to remount it. This fixes redbox on JS reload. Reviewed By: shergin Differential Revision: D7170416 fbshipit-source-id: c84b999d2cdc35cb9e26feef2a1e1a7ce35cfa70
Reviewed By: mdvacca Differential Revision: D7165356 fbshipit-source-id: ab5b019943d0d6f759bdb16ca646e34a2ef79e23
Reviewed By: mdvacca Differential Revision: D7165823 fbshipit-source-id: e6d2a83bf9e089c67d69de6581d177bdf0d2ec4e
Summary: React Native had an underlying problem connecting to Firestore (Google's latest database) from Android devices. You can follow the issue [here](firebase/firebase-js-sdk#283). The main problem was in NetworkingModule.java. Please refer to section 3 of 4.5.6 in whatwg.org's guideline https://xhr.spec.whatwg.org/#dom-xmlhttprequest-send In this [video](https://www.youtube.com/watch?v=tILagf46ys8), I am showing how the react native behaved before adding the new fix and how it worked after the new fix added. The new fix starts at 50 seconds. [ANDROID] [BUGFIX] [FIRESTORE][XMLHttpRequest][ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.java] - Fixes the connection to Firestore by following whatwg.org's XMLHttpRequest send() method Closes #17940 Differential Revision: D7173468 Pulled By: hramos fbshipit-source-id: 354d36f03d611889073553b93a7c43c6d4363ff3
Summary: To avoid crashing when there are 2 different renderers, let the Inspector be a bit lenient. Reviewed By: yungsters Differential Revision: D7175338 fbshipit-source-id: ee5f86252f090361e42b6e2a93ae56c4c83c8c53
Summary: Tightening these types. We can't type TextProp the same way yet because of something fishy in Flow: https://flow.org/try/#0KYDwDg9gTgLgBDAnmYcAqoYGUkBtUC8cA3gD4BQccAZhAHYwBiAhgLYCWuiAXHAM4wo7OgHMANJRr1s7AF7BedAK6sARsCgTSAXwDc5cqEiwEyVIwAiWRtJyJ8cImUm0GLDl14ChorXoNG0PBIKOiYdvgAClAQYI5wACQASsDMACYA8nRcADwJWAAWzCg5GCDYeMAAfFW6cAD09XAprBAAbqjJqZnZiHDMdGkIBagaMVBwIhDAfP0A7syIBgDG9AJwllgRChtWNgzb8cQu0u6cPHAA5LQQlxL+5Kt062UV9sAAasxQvK-b0bF4pttrogA Reviewed By: olegbl Differential Revision: D7165134 fbshipit-source-id: 2fd3de2af8bdc53231d59de71def1e6a7221aff7
Reviewed By: yungsters Differential Revision: D7176472 fbshipit-source-id: 35f499bdac6c089d5f45884f6f11ea539c8b7085
Reviewed By: yungsters Differential Revision: D7176652 fbshipit-source-id: 25b6f2e4f8397ba6f07b2913775b91af90b45750
Summary: These types were barely used and unnecessary. Reviewed By: yungsters Differential Revision: D7177287 fbshipit-source-id: 63cb6d3aae4889a92b2c23f0df864b5657e6e1ee
Summary: Android uses the name of the package, not the config, for the `isInstalled` check. Sending both parameters to `isInstalled` so we have a consistent API. <!-- Thank you for sending the PR! We appreciate you spending the time to work on these changes. Help us understand your motivation by explaining why you decided to make this change. You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html Happy contributing! --> A bug was uncovered in the react-native link command where Android would not unlink because the wrong parameters were being sent to `isInstalled`. Successfully linked and unlinked `react-native-fs` on Windows and Mac. Jest tests pass. <!-- Help reviewers and the release process by writing your own release notes **INTERNAL and MINOR tagged notes will not be included in the next version's final release notes.** CATEGORY [----------] TYPE [ CLI ] [-------------] LOCATION [ DOCS ] [ BREAKING ] [-------------] [ GENERAL ] [ BUGFIX ] [-{Component}-] [ INTERNAL ] [ ENHANCEMENT ] [ {File} ] [ IOS ] [ FEATURE ] [ {Directory} ] |-----------| [ ANDROID ] [ MINOR ] [ {Framework} ] - | {Message} | [----------] [-------------] [-------------] |-----------| [CATEGORY] [TYPE] [LOCATION] - MESSAGE EXAMPLES: [IOS] [BREAKING] [FlatList] - Change a thing that breaks other things [ANDROID] [BUGFIX] [TextInput] - Did a thing to TextInput [CLI] [FEATURE] [local-cli/info/info.js] - CLI easier to do things with [DOCS] [BUGFIX] [GettingStarted.md] - Accidentally a thing/word [GENERAL] [ENHANCEMENT] [Yoga] - Added new yoga thing/position [INTERNAL] [FEATURE] [./scripts] - Added thing to script that nobody will see --> [CLI][BUGFIX][local-cli/link/link.js] - Fix issue with `isInstalled` check for Android [CLI][BUGFIX][local-cli/link/unlink.js] - Fix issue with `isInstalled` check for Android [CLI][BUGFIX][local-cli/link/ios/common/unregisterNativeModule.js] - Fix references to unregister implementations. Closes #18207 Differential Revision: D7180885 Pulled By: hramos fbshipit-source-id: 5f479cd9d7b1ebd8626b461e9dc1f22988e2c61f
Summary: There are a few important states that didn't reset correctly when reloading JS: * the RCTSurfaceStage was stuck at all bits enabled, hence no further stage change happened (even though the state "reset" to `RCTSurfaceStageBridgeDidLoad`) * the RCTSurfaceView didn't get recreated, because the _view ivar was never cleared * similarly, the _touchHandler ivar attached to the _view was never re-setup --> all touches after JS reload were dropped before this diff Reviewed By: mmmulani Differential Revision: D7178038 fbshipit-source-id: ba49bc205f8bf43842471b7ab748cef8549ea212
Summary: This type is being used in many places where a much simpler type is often better. In a real pinch this type can still be accessed as so: ``` function returnsStyleSheet( ): $Call<typeof StyleSheet.create, *> { return StyleSheet.create({ root: { background: 'white', } }) } returnsStyleSheet().foo // foo doesn't exist returnsStyleSheet().root // okay ``` Reviewed By: yungsters Differential Revision: D7178524 fbshipit-source-id: 3c0ed03486ca00f1e287261e402fd47807f1fc3d
Summary: We want to rename these types to be more clear what they are actually for. I did this with a find and replace: ``` import type {StyleProp} from 'StyleSheet'; ``` to ``` import type {DangerouslyImpreciseStyleProp} from 'StyleSheet'; ``` and `StyleProp` to `DangerouslyImpreciseStyleProp`. Reviewed By: yungsters Differential Revision: D7178609 fbshipit-source-id: 32952e0c3a8b6aceef306f1f3c18844feb18f1aa
Summary: Migrating everything to import from StyleSheet instead of StyleSheetTypes. Search and replaced ``` import type {StyleObj} from 'StyleSheetTypes'; ``` to ``` import type {DangerouslyImpreciseStyleProp} from 'StyleSheet'; ``` and then replacing `StyleObj` with `DangerouslyImpreciseStyleProp` and fixing up the remaining flow errors by hand. Reviewed By: yungsters Differential Revision: D7184077 fbshipit-source-id: b8dabb9d48038b5a997ab715687300bad57aa9d4
Reviewed By: BYK Differential Revision: D7181876 fbshipit-source-id: a1b567303b8024b832bf43dd6be56ccebffaf39c
Reviewed By: yungsters Differential Revision: D7185815 fbshipit-source-id: 897ae37af3f03aa1408f020bcc7e61004d4dbc0d
Reviewed By: kostiakoval Differential Revision: D7174480 fbshipit-source-id: 38af8e6e94cb8cdf6aa551d9df1b3e16543387e5
…rations Reviewed By: shergin Differential Revision: D7162911 fbshipit-source-id: 3e303020dafdccc51f52c3359a7054dc8a787978
Reviewed By: mdvacca Differential Revision: D7185836 fbshipit-source-id: 726e6e6792f1f3971c2f7de9bb83ff888815220d
Reviewed By: mdvacca Differential Revision: D7185838 fbshipit-source-id: f775f5668ccff3b311c95a0bdd37a420ec64b7d4
Reviewed By: yungsters Differential Revision: D7185837 fbshipit-source-id: e8efc22ac0af092dbc1fdf616b0b3f111390dd5d
…es rule for Marketplace Reviewed By: TheSavior Differential Revision: D7158098 fbshipit-source-id: 52c92c5427d27278c8f82ffa5d61b7e9ebbf7824
Reviewed By: ttsugriy Differential Revision: D7184372 fbshipit-source-id: c66f473ad15898532f24c6276898ab250e749744
Summary: This type shouldn't be necessary from outside code. All callsites were able to be fixed by using the other types like TextStyleProp Reviewed By: yungsters Differential Revision: D7187551 fbshipit-source-id: 34fb7fb5f5e72e6cfcb9748157cb5eb6ad3e1f46
Summary: This type was often used when (View|Text|Image)StyleProp should have been used instead. Since there were no valid usages of it in our codebase, we are not making it public anymore. Reviewed By: yungsters Differential Revision: D7188658 fbshipit-source-id: 7112cc4a7da7b007b5c758a0890d2e0b8fe1797a
Reviewed By: yungsters Differential Revision: D7190268 fbshipit-source-id: d652a95be7550d65cfbfc59f41d7bda92915bacf
Titozzz
pushed a commit
that referenced
this pull request
Sep 23, 2022
Summary: VirtualizedList would more gracefully handle out of range cells than VirtualizedList_EXPERIMENTAL, which treats it as an invariant violation. D39244112 (facebook@7aa203b) attempted to fix an issue where recalculation of cells around viewport can include out of range cells, but it is still showing up later. This change adds a bounds check to the remaining branch we control, and an assertion that `computeWindowedRenderLimits` is not returing something out of range to discover if that is the cause. Reviewed By: yungsters Differential Revision: D39267445 fbshipit-source-id: 64c99da28b5b01ef61784079b586e355f73764a1
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
(Write your motivation here.)
Test Plan
(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work. Bonus points for screenshots and videos!)
Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/facebook/react-native-website, and link to your PR here.)
Release Notes