-
Notifications
You must be signed in to change notification settings - Fork 145
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
chore: merge up to 0.77 branch cut #2333
Conversation
…k#47473) Summary: Pull Request resolved: facebook#47473 For example, ``` declare function C<T>(ref: React.RefSetter<Set<T>>): React.Node; type T = React.ElementRef<typeof C> ``` Previously Flow will evaluate `T` to `Set<mixed>`, by automatically replacing generic types with their upper bounds. But in the future it might be replaced with `empty`. This diff cleans up instances like this in react-native codebase. Changelog: [Internal] Reviewed By: alexmckenley Differential Revision: D65562571 fbshipit-source-id: bca2f4f022a5a23a5aa40886f5661899cb315f2e
…r` internal (facebook#47376) Summary: Pull Request resolved: facebook#47376 This makes several classes inside `com.facebook.react.views.progressbar` internal: - ReactProgressBarViewManager - ProgressBarShadowNode - ProgressBarContainerView Those classes should have not been exposed in the first place and users should not depend on them directly. Marked as Breaking but verified that there are no meaningful usages in OSS. Changelog: [Android] [Breaking] - Stable API - Make classes inside `com.facebook.react.views.progressbar` internal Reviewed By: javache Differential Revision: D65423290 fbshipit-source-id: dc98fdca996eb648593adb2c32787cbf0d878e3e
…stContextProvider outside of VirtualizedList (facebook#47463) Summary: Pull Request resolved: facebook#47463 Note this is just a temporary approach which will be cleaned up later. Changelog: [Internal] Reviewed By: yungsters Differential Revision: D65514902 fbshipit-source-id: f722031c5cd34eb1400b3f732fd94c0b03d5434d
…cebook#47254) Summary: The future of Android is [edge-to-edge](react-native-community/discussions-and-proposals#827) and to make the React Native developer experience seamless in this regard, the ecosystem needs to transition from “opaque system bars by default” to “edge-to-edge by default.” Currently, there's no easy way to have edge-to-edge modals, as they are implemented using `Dialog` instances (a separate `Window`) and only provide a `statusBarTranslucent` prop. I tried to implement it in [`react-native-edge-to-edge`](https://github.com/zoontek/react-native-edge-to-edge) by listening to the `topShow` `UIManager` event. But if it works well when there's a defined animation, we can see a quick jump when there's none, because there's too much delay before the event, and edge-to-edge cannot be applied quick enough to the dialog window. ### react-native-edge-to-edge implem with animation (no jump) https://github.com/user-attachments/assets/4933a102-87a5-40e4-98d9-47f8c0817592 ### react-native-edge-to-edge implem without animation (jump) https://github.com/user-attachments/assets/e4675589-08fe-44fe-b9d8-0a6b3552b461 --- For this reason, and because listening to event feels a bit hacky, I think it will be better to go for a new prop directly on RN Modal component: `navigationBarTranslucent` > [!NOTE] > `navigationBarTranslucent` cannot be used without `statusBarTranslucent`, as setting both enable edge-to-edge, like [AndroidX would do](https://github.com/androidx/androidx/blob/androidx-main/activity/activity/src/main/java/androidx/activity/EdgeToEdge.kt) and it would requires extra (and unecessary, given the direction Android is taking) work to find a way to keep the status bar opaque but the navigation bar transparent that work on Android 6 to 15+ ### Additional infos - Colors used for the buttons navigation bar in the PR are the default Android ones ([light](https://github.com/androidx/androidx/blob/androidx-main/activity/activity/src/main/java/androidx/activity/EdgeToEdge.kt#L37) and [dark](https://github.com/androidx/androidx/blob/androidx-main/activity/activity/src/main/java/androidx/activity/EdgeToEdge.kt#L42)) - Compared to the Google implementation, the light scrim is applied from `O_MR1` to `Q` (and not `O` to `Q`) as the [`android:windowLightNavigationBar`](https://developer.android.com/reference/android/R.attr#windowLightNavigationBar) style attribute is not available on `O` (it can only be applied programmatically on API 26). ## Changelog: [ANDROID] [ADDED] - Add navigationBarTranslucent prop to Modal component Pull Request resolved: facebook#47254 Test Plan: Run the tester app, toggle `navigationBarTranslucent`: https://github.com/user-attachments/assets/286d173b-35a5-4951-9105-f9f7562d6764 ----- did some additional testing with RNTester using different justification |flex-start|flex-end| |https://pxl.cl/5Rd20|https://pxl.cl/5Rd21| Reviewed By: javache Differential Revision: D65103501 Pulled By: alanleedev fbshipit-source-id: ef6473ecd785976d3e26c77bbc212222ec96c9f2
Summary: Pull Request resolved: facebook#47354 `PointerValue::invalidate()` is called from `Pointer` destructor, which is implicitly `noexcept`, and from `Pointer` move-assignment operator, which is now `noexcept`. Reviewed By: neildhar Differential Revision: D65271399 fbshipit-source-id: 26fd9707e4389da78537d0d607adaef0c68690ca
Summary: Pull Request resolved: facebook#47399 Deletes `unstable_setEnableSyncOnScroll` which we are no longer experirmenting with in React Native. Changelog: [Internal] - Deleted `unstable_setEnableSyncOnScroll` on `ScrollView`, which was never part of the React Native Public API. Reviewed By: tdn120, sammy-SC Differential Revision: D65449039 fbshipit-source-id: 6608d5ccca477f1da5e0168c4a342cce17014b08
Summary: Pull Request resolved: facebook#47430 Make IntentModule Nullsafe. Fixed nullability warnings. Changelog: [Internal] Reviewed By: tdn120 Differential Revision: D65463226 fbshipit-source-id: 2da597e66ad170ec4a2a2949348e522bb361c209
Summary: This PR fixes a typo in spm.rb ## Changelog: [IOS] [FIXED] - Typo in spm.rb Pull Request resolved: facebook#47480 Test Plan: N/a Reviewed By: GijsWeterings Differential Revision: D65596339 Pulled By: cortinico fbshipit-source-id: c318cec1422dbcb322e70dc5f189d86af42b626d
Summary: Pull Request resolved: facebook#47458 We are in a weird situation where React Native depends on some files that are generated by Codegen. Codegen runs in the user project, so those dependencies are not available to React Native if we try to build it in isolation. This is a problem and a blocker to prepare the prebuilds for iOS. This image show the changes we are introducing: On the right we have the current situation. On the left the new one. {F1954418630} ## Changelog: [Internal] - Generate React Native specific code inside React Native Reviewed By: cortinico, blakef Differential Revision: D65541505 fbshipit-source-id: 1412d7f23c4d2230b795af41f1e832c8a70d5859
…ebook#47474) Summary: When running the commands to check the flow types locally, there is quite some noise from files under `packages/rn-tester/Pods` that should not be checked as they are not from the source code itself. <img width="839" alt="Screenshot 2024-11-07 at 00 50 55" src="https://github.com/user-attachments/assets/7ad3d96d-0f4a-4772-9e37-34d7e593b4cf"> ## Changelog: [INTERNAL] [FIXED] - Excluding `packages/rn-tester/Pods/` from flow checks Pull Request resolved: facebook#47474 Test Plan: ```bash yarn flow ``` Reviewed By: cortinico Differential Revision: D65594400 Pulled By: cipolleschi fbshipit-source-id: d5e8828f41fc87c9a95293c250f24673ebbc6cd4
Summary: Pull Request resolved: facebook#47481 The Codegenerated files has this option turned off. This is causing Xcode to output hundreds of warnings due to missing nullability options. RThis fixes them. ## CHANGELOG [Internal] - Set ASSUME_NONNULL regions in codegen'd files Reviewed By: dmytrorykun Differential Revision: D65596598 fbshipit-source-id: bbf664944e103c05ef593a7e07bf5b767445950c
Summary: Pull Request resolved: facebook#47482 XCBeautify swallow some errors, especially all the linker errors when some symbol is not defined. The full error is not available in the raw log either. This makes much harder to debug those issues when they happen. We can remove xcbeautify for the time being, while we find a better solution. ## Changelog [Internal] - Remove XCBeautify from ci Reviewed By: dmytrorykun Differential Revision: D65596745 fbshipit-source-id: 0550d4cbeadc5bec8acc61b5edc1320d3445bcaf
…47461) Summary: Pull Request resolved: facebook#47461 As titled, is overwritten later in the file. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D65546370 fbshipit-source-id: 4ea71d24e429b7bbded3e7bb7c75015a2c9d95d8
…circular dependency (facebook#47478) Summary: Pull Request resolved: facebook#47478 That's a reland of D65540601 The `UIManager.eventDispatcher` return type is wrong and is causing a breaking change in 0.77 For 0.76 we fixed it in the release branch but we should fix it for good in main as well. To solve it I had to fix the circular dependency between .bridge and .uimanager. I wish I could have isolated the .events package better but as everythign is public, any change we do is going to be a breaking change so I'm being over cautios here. Changelog: [Android] [Fixed] - Undo breaking change of UiManager.eventDispatcher return type Reviewed By: javache Differential Revision: D65595391 fbshipit-source-id: fc7f6dce78e531c5ec0cc493ed90c0012262b77f
Summary: Pull Request resolved: facebook#47419 Minor improvements to `ImageExample` so we log when images fail to load. Also replaces a `Text` component with `RNTesterText` so it's legible. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D65363864 fbshipit-source-id: 6c7ce8d5af6aabfed21479c784911bdcffe4684e
Summary: Pull Request resolved: facebook#47483 I relaized too late that there were a couple of comments on [facebook#47458](facebook#47458) to add some explanation/remove commented code. This change applies those comments ## Changelog [Internal] - Cleanup after landing [facebook#47458](facebook#47458) Reviewed By: dmytrorykun Differential Revision: D65597157 fbshipit-source-id: 238bb75e4b45efae9a8736a7b4feb10f5af5e3d9
Summary: Pull Request resolved: facebook#47475 Creates a feature flag to evalute the impact of disabling `InteractionManager` and replacing its scheduling behavior with `setImmediate`. Changelog: [Internal] Reviewed By: javache Differential Revision: D65577455 fbshipit-source-id: c0dc2b4d062eff4929ef37c5e217fd194addd790
Summary: Pull Request resolved: facebook#47479 Changelog: [Internal] Reviewed By: cortinico Differential Revision: D65595979 fbshipit-source-id: be8217ef1fd9f59af57a1e100a4d9e86b66d8027
…ebook#47488) Summary: Pull Request resolved: facebook#47488 As per title. Changelog: [Internal] Reviewed By: cortinico Differential Revision: D65594248 fbshipit-source-id: 5a21baefb768b1c6f8ec0c33158812d1de6113d5
Summary: Pull Request resolved: facebook#47466 Now, when the useAlwaysAvailableJSErrorHandling feature flag is true, React Native will use the earlyjs c++ error reporting pipeline for handling all javascript errors! Changelog: [Internal] Reviewed By: javache Differential Revision: D64715159 fbshipit-source-id: 597a5278eb792f87dca10e06fa9816b3a8c47b84
Summary: Pull Request resolved: facebook#47470 Convert to Kotlin and formalize it being an internal class (some methods were already `protected` in Java) Changelog: [Android] [Breaking] - Stable API - Make SwipeRefreshLayoutManager internal Reviewed By: cortinico Differential Revision: D65481861 fbshipit-source-id: afc5c624373fbcd3ca2d28b2834d2682de672997
Summary: Pull Request resolved: facebook#47443 As part of sustainability week effort for switching to internal here: https://fb.workplace.com/groups/251759413609061/permalink/872342228217440/ Reducing visibility of ImageStoreManager from public to internal Changelog: [Android] [Breaking] - Stable API - Make ImageStoreManager internal Reviewed By: javache Differential Revision: D65520953 fbshipit-source-id: 0207be6a5e0b92dbbaee534735fc829e9202727d
…#47498) Summary: Pull Request resolved: facebook#47498 I am trying to help someone with creating a sticky header on a scrollview, specifically one that floats on the side of the scrollview instead of the top Currently we can't really do that, since utilizing `position: absolute` to layout this properly will get overriden by the header styles changed in this diff This was only added since static was the default and we needed to apply zIndex. With proper static implementation that is no longer the case, so I think it makes sense to remove this to support this use case. Changelog: [General] [Breaking] - `position` of sticky headers on `ScrollView` will now be taken into account Reviewed By: rozele Differential Revision: D65626544 fbshipit-source-id: 8d650ca7654918e692435935e7c1094c412fd9f6
…acebook#47502) Summary: Pull Request resolved: facebook#47502 Enables the two following feature flags: - `enableAnimatedAllowlist` - `enableAnimatedPropsMemo` The former enables the use of an experimental optimization to provide `unstable_createAnimatedComponentWithAllowlist` and `useAnimatedProps` an allowlist of props that reduces the set of props iterated over by to find props with `AnimatedNode` (e.g. `Animated.Value`) instance values. The latter enables improved memoization logic in `Animated` so that its intenal state is invalidated less frequently, reducing the cost of updating `Animated` components. Changelog: [General][Changed] - Optimized the performance of updating `Animated` components. Reviewed By: rozele Differential Revision: D65645985 fbshipit-source-id: 85f9e53072f09a59589d76d0c096f4cedd17bb4b
…acebook#47505) Summary: Pull Request resolved: facebook#47505 As per title. Changelog: [Internal] Reviewed By: tdn120 Differential Revision: D65596132 fbshipit-source-id: d08aea48ff293cc7f20ebc40a1d289dcb8158dcb
Summary: Pull Request resolved: facebook#47506 The Check nightlies job prepare a new nightly app with additional libraries and on iOS it builds with `yarn ios`. The command tries to launch the app on the simulator which sometimes fails and this can make the jobs keep running for hours. This change make sure that we only build the app ## Changelog: [Internal] - Only build iOS in CI for Check Nightlies Reviewed By: blakef Differential Revision: D65656812 fbshipit-source-id: 14db3738f33f8024c9e99fe206b170209154bac7
…7424) Summary: Pull Request resolved: facebook#47424 Changelog: [Internal] Reviewed By: cortinico Differential Revision: D65479614 fbshipit-source-id: d2ab86eb0e8c68a5733c602652b4b8dccc09a0a1
Summary: Pull Request resolved: facebook#47456 Changelog: [Internal] Reviewed By: tdn120 Differential Revision: D65486257 fbshipit-source-id: d18d38fd7e605918d79e370dda7df51abac2f23c
…7509) Summary: Pull Request resolved: facebook#47509 Fixes facebook#47504 Changelog: [Android] [Fixed] - RNGP - Do not attempt to substring to 1024 while logging Reviewed By: javache Differential Revision: D65659586 fbshipit-source-id: 8fa16131cea96b8b6aa9c0224c7b990a4f51175f
…book#47510) Summary: Pull Request resolved: facebook#47510 As per title. Changelog: [Internal] Reviewed By: tdn120 Differential Revision: D65598073 fbshipit-source-id: 401750f2df9bd434a8310f107f46a686bfa6601c
…cebook#47745) Summary: Pull Request resolved: facebook#47745 Remove DeprecatedInNewArchitecture for ReactPropHolder annotation ReactProp is still used in new arch, we might remove this annotation in the future but it will be independent of new arch changelog: [internal] internal Reviewed By: javache Differential Revision: D66216729 fbshipit-source-id: 3f64858ab4fa60b09978b18b17200ae488e229ce
…acebook#47746) Summary: Pull Request resolved: facebook#47746 Remove DeprecatedInNewArchitecture annotation from ReactPropGroup since this annotation is not deprecated in new arch changelog: [internal] internal Reviewed By: javache Differential Revision: D66216727 fbshipit-source-id: 252bae58557b51c9fbfb1deab4edc7c50511a005
Summary: Pull Request resolved: facebook#47747 Deprecate NotThreadSafeViewHierarchyUpdateDebugListener as won't be available in new arch and will be deleted changelog: [internal] internal Reviewed By: javache Differential Revision: D66216730 fbshipit-source-id: 88f3346ad38b80a710d9df4ba08b63887048c8cd
Summary: Pull Request resolved: facebook#47914 This was a bug in the original diff: D66193194. If a fatal js error happens, we should only drop subsequent **fatal** js errors. It's fine to report soft errors. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D66392706 fbshipit-source-id: c51bae186184c54faa9bce065b81b442607e751b
Summary: Pull Request resolved: facebook#47912 Changelog: [Internal] Reviewed By: SamChou19815 Differential Revision: D66379853 fbshipit-source-id: 3a7677c5a71ef74e509ed43be87e455aed0cbaa7
…#47918) Summary: I was just going through the README file, and I felt that the word "repo" seems a bit informal. Thus I made the correction and made it "repository". ## Changelog: [General] [Changed] - Fixed a typo in the README file. Pull Request resolved: facebook#47918 Test Plan: No specific Test Plan for these changes, as it is just a typo fix in README.md Reviewed By: fkgozali Differential Revision: D66414686 Pulled By: arushikesarwani94 fbshipit-source-id: 578530d2dcdf046a90bf5a5bc32ba68e8f496c81
…kground (facebook#47336) Summary: Pull Request resolved: facebook#47336 Before mix-blend-mode would not blend with the background color due to it not being a ViewGroup. This adds the mix-blend-mode logic to ReactRootView so blending works Changelog: [Android][Fixed] - Enable mix-blend-mode on ReactRootView so blending works with app background Reviewed By: NickGerleman Differential Revision: D65156543 fbshipit-source-id: b3628b667573d0b56c74214e40d21c656fda495a
…7896) Summary: Pull Request resolved: facebook#47896 X-link: facebook/yoga#1752 These APIs were only added so that we could do TDD as we work on intrinsic sizing functionality. As of right now they do nothing. We are aiming on publishing a new version of Yoga soon so for the time being we are going to back these out so as not to confuse anyone with this new functionality. Ideally we get to a point where we have some temporary experimental header to stage these in but this is a bit time sensitive so just backing out for now Changelog: [Internal] Reviewed By: NickGerleman Differential Revision: D66332309 fbshipit-source-id: 793f77dad021fa5e57b52c36ae954307636bcbf0
… keywords" (facebook#47895) Summary: Pull Request resolved: facebook#47895 X-link: facebook/yoga#1750 These APIs were only added so that we could do TDD as we work on intrinsic sizing functionality. As of right now they do nothing. We are aiming on publishing a new version of Yoga soon so for the time being we are going to back these out so as not to confuse anyone with this new functionality. Ideally we get to a point where we have some temporary experimental header to stage these in but this is a bit time sensitive so just backing out for now Changelog: [Internal] Reviewed By: NickGerleman Differential Revision: D66332307 fbshipit-source-id: 1d596964e0c893091c541988506e8b80fa6d1957
Will this be merged? I discovered this package 2 days ago and I already was in 0.77, I don't want to go back to 0.76 as it will be a nighmare. I will wait for 0.77 support |
Yes, working on it. I'll make an NPM release / tweet / GitHub release when it's ready. |
bc4b505
to
8f365ab
Compare
Summary:
Merge up to the 0.77-stable branch cut upstream. This one was fairly easy, the original set of diffs was resolved in half a day. The rest of the changes are in the commit" followup changes" that I'll rebase back into the merge commit before checking in
Test Plan:
CI should pass
Notes
Original set of merge conflicts: