Commit Graph

38536 Commits

Author SHA1 Message Date
Ruslan Shestopalyuk b63a523c16 Move fabric.Binding* to Kotlin (#44438)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44438

# Changelog:
[Internal] -

As in the title.

Reviewed By: javache

Differential Revision: D57046289

fbshipit-source-id: 383141821cc73c1cbbfc3aa168441cd051c4c2d6
2024-05-07 08:23:44 -07:00
Thomas Nardone c7dcdc1c09 ReactEventEmitter null fix (#44394)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44394

Lint fix - flip to a guaranteed non-null value instead of the nullable field

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D56898951

fbshipit-source-id: 8740ed77d71a827c7ce80b2df941d24985339619
2024-05-07 08:05:33 -07:00
Thomas Nardone 3f59d53281 Nullsafe fabric/events classes (#44392)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44392

Updating null annotations to match convention.

Changelog: [Internal]

Reviewed By: NickGerleman

Differential Revision: D56895070

fbshipit-source-id: 05ef7d8ba7f3c4a8ec352336c86e1c02cf0bb601
2024-05-07 08:05:33 -07:00
Saad Najmi 24aece35b4 chore: Remove deprecated onTextInput callback (#44351)
Summary:
TextInputs' `onTextInput` callback was removed way back in React Native 0.62 with https://github.com/facebook/react-native/commit/3f7e0a2c9601fc186f25bfd794cd0008ac3983ab , but remnants of the implementation exists. Let's just remove it altogether?

## Changelog:

[IOS] [REMOVED] - Remove deprecated onTextInput callback

Pull Request resolved: https://github.com/facebook/react-native/pull/44351

Test Plan: CI should pass

Reviewed By: NickGerleman

Differential Revision: D56804590

Pulled By: javache

fbshipit-source-id: 89101fa53cdc628a97ba176cf3deca691784bfdd
2024-05-07 07:08:35 -07:00
Matin Zadeh Dolatabad 06eea61c19 chore: update Gemfile in template (#44434)
Summary:
Cocoapods regression is now fixed (been fixed for a while) but we forgot to remove the upper bound and explicit `activesupport` in Gemfile.

https://github.com/CocoaPods/CocoaPods/releases/tag/1.15.2

## Changelog:

[IOS] [CHANGED] - Update Gemfile in template

Pull Request resolved: https://github.com/facebook/react-native/pull/44434

Test Plan: Run `bundle install/update` should update cocoapods to the latest version and active support should work properly without any issues.

Reviewed By: blakef

Differential Revision: D57046638

Pulled By: cipolleschi

fbshipit-source-id: 9d8e716d4392d7bc5a1940b523e57d2193134f95
2024-05-07 05:40:40 -07:00
Blake Friedman 47848ad15f conditional Babel registration no longer necessary (#44362)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44362

Packages that are built and directly run in the monorepo no longer need to worry about
conditionally registering themselves to transpile Flow -> JS at runtime. Our build step
strips this file now.

Changelog: [Internal] changes in published packages no longer require conditional calls to Babel register.

Reviewed By: huntie

Differential Revision: D56839521

fbshipit-source-id: 6bec706c639f1ab4138e0b790be8a07654333046
2024-05-07 03:16:00 -07:00
Kudo Chien 2d46dbe6ce Fix HermesExecutorFactory build error (#44423)
Summary:
https://github.com/facebook/react-native/commit/7af288e5 introduced a breaking change for whoever importing HermesExecutorFactory.h, because the `hermes/inspector-modern/chrome/HermesRuntimeTargetDelegate.h` is not a public header. Also the nested import is not ideal for CocoaPods or use_frameworks.
I think HermesRuntimeTargetDelegate could be an implementation detail that hide from header. This PR tries to turn the ownership declaration from std::optional to std::unique_ptr, so that we could hide the concrete type.

## Changelog:

[IOS] [FIXED] - Fixed `HermesExecutorFactory.h` build error when importing its private header

Pull Request resolved: https://github.com/facebook/react-native/pull/44423

Test Plan: should introduce no breaking change and ci passed

Reviewed By: cipolleschi

Differential Revision: D57041498

Pulled By: huntie

fbshipit-source-id: bfa10c7307458813d99c52313682dd62bea80f19
2024-05-07 03:06:54 -07:00
Ruslan Shestopalyuk 362abb9ffe Factor hardcoded image paths out in RNTester/Image example, get rid of .ico file (#44415)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44415

# Changelog:
[Internal] -

RNTester Image example used hardcoded `https://www.facebook.com/favicon.ico`, which has an uncommon ICO format, for no good reason aside of just this image being served from `facebook.com`.

This diff:
* Replaces the ICO image with a PNG one (which is still served from `facebook.com`
* Factors out all the multiple hardcoded paths into constants, so that it's easier to make such changes in the future
* Changes another image to something that is a bit better on the eyes when severely downscaled

Reviewed By: christophpurrer

Differential Revision: D56978929

fbshipit-source-id: c627d1671c8cb66e9a78f4382faa56e539b2f7b3
2024-05-05 13:22:59 -07:00
Ruslan Shestopalyuk 9d2cf42f95 Add "Refresh Image" to RNTester Image.fadeDuration example (#44414)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44414

# Changelog:
[Internal] -

I noticed that "Image/Fade Duration" test in RNTester is practically useless, as at the moment one scrolls to the test, the fading is most probably had already ended.

This adds a "button" to refresh the image and be able to see the fading in again and again, if desired.

Reviewed By: christophpurrer

Differential Revision: D56978930

fbshipit-source-id: 02873b45600ad319b0b1077467f599dc1a54bee3
2024-05-05 13:22:59 -07:00
Ruslan Shestopalyuk 7558d5f6f5 Migrate ImageLoaderModule to Kotlin (#44413)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44413

## Changelog:
[Internal] -

As in the title, the corresponding module is migrated from Java to Kotlin.

Reviewed By: christophpurrer

Differential Revision: D56978931

fbshipit-source-id: e1e8f22ad9bd2f594bc7cf77c6344f8f23996bcc
2024-05-05 11:11:16 -07:00
Ramanpreet Nara a881b51feb Add todo for RCTRuntimeExecutor deletion
Summary:
Followup to D56848799!

Created from CodeHub with https://fburl.com/edit-in-codehub

Changelog: [Internal]

Reviewed By: philIip

Differential Revision: D56935723

fbshipit-source-id: 859cd88c06a972b2fb44525eee075df7c701c83a
2024-05-04 09:27:26 -07:00
Phillip Pan 69bb4fca44 introduce CallInvokerHolder stable API (#44381)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44381

Changelog: [Android][Added]

I am adding this API in favor of RCTRuntimeExecutor. CallInvoker is now preferred because after #43375, the CallInvoker has access to the jsi::Runtime. Since the community is using CallInvoker already for their async access use cases, CallInvoker is the preferred choice of RuntimeExecutor / RuntimeScheduler because of easier migration. Also, having a wrapper like CallInvoker will give us more flexibility in the future if we want to expand this API.

this will be forward compatible in the old architecture

Reviewed By: RSNara

Differential Revision: D56866817

fbshipit-source-id: 4096847c52559d9a49feb072a0385da6b64392d4
2024-05-04 02:21:37 -07:00
Jesse Watts-Russell 377c2f5d88 Allow custom override to utilize KeyWindow for default fallback colorScheme (#44383)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44383

This diff allows the default fallback style to be grabbed from KeyWindow. Previously with the TraitCollections being passed in from overridden views it was not getting the accurate system fallback.

We need this for Twilight, which is adopting a Light/Dark mode toggle. Previously when setColorScheme was getting called it would modify overrideUserInterfaceStyle and that would serve as the "default fallback" for future setColorScheme calls. setColorScheme shouldn't be setting the defaults, it should be setting the user-session theme preference.

Changelog:
[Internal] [Changed] - Added option for treating the KeyWindows's userInterfaceStyle as the source of truth for the system's dark/light mode.

Differential Revision: D56868862

fbshipit-source-id: 229894947baed65ef15cece5bece120e8497462f
2024-05-03 22:15:29 -07:00
Nick Gerleman 002396beae Fix cached spannable measurement path (#44409)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44409

This is kind of a mess.

D56800381 moved us away from code relying on legacy TextLayoutManager, under the assumption we weren't using the old one anymore. It turns out we were still using the legacy TextLayoutManager for the sole case of  cached spannables, where we ask FabricUIManager to measure using non-mapbuffer path, and pass the cache key (no underlying attributedstring). After the diff, we call default VM measure function, which returns zero size. This specifically breaks measurements of uncontrolled TextInput components.

This updates that path to use the same TextLayoutManager as we use for everything else.

This model breaks some code which assumes the AttributedString is present, instead of just para attributes. The redundant calls to get fragments is expensive and already something on my radar to fix, but for now, we mostly just no-op, the same way the old TextLayoutManager did when fragments were not set. This needs a good cleanup.

Changelog:
[Android][Fixed] - Fix cached spannable measurement path

Reviewed By: javache

Differential Revision: D56963152

fbshipit-source-id: 6dc0e29f6b63d367be1ba0be82dfbc18c4654ab2
2024-05-03 20:48:27 -07:00
Phillip Pan 05a4232dd5 add forward compatibility for bridgeless CallInvoker API (#44376)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44376

Changelog: [Internal]

In order to make migration a little bit cleaner, I thought it would be nice to implement forward compatibility for RCTCallInvokerModule. This way, the consumer doesn't have to have branching logic when they try to retrieve the callInvoker in their code, and can remove a callsite to the bridge.

Reviewed By: RSNara

Differential Revision: D56807993

fbshipit-source-id: 6c9aa74db15e04b8ab632d230b3e525363a4d1ca
2024-05-03 16:38:26 -07:00
George Zahariev 1d2221ab4e Update hermes-parser and related packages in fbsource to 0.21.0, take 2 (#44395)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44395

Bump hermes-parser and related packages to [0.21.0](https://github.com/facebook/hermes/blob/main/tools/hermes-parser/js/CHANGELOG.md).

Changelog: [internal]

Reviewed By: SamChou19815

Differential Revision: D56900032

fbshipit-source-id: 073aeb6f538bb4b56bf309fbd3f9edb2f04b30d0
2024-05-03 11:19:05 -07:00
Riccardo Cipolleschi 5a120322bf Prepare changelog for 0.74.1 (#44391)
Summary:
Changelog for 0.74.1

## Changelog:

[Internal] - Added changelog for 0.74.1

Pull Request resolved: https://github.com/facebook/react-native/pull/44391

Test Plan: N/A

Reviewed By: christophpurrer

Differential Revision: D56898528

Pulled By: cipolleschi

fbshipit-source-id: d93f043ef1bf5f33573c656ecdad6a83d36089d5
2024-05-03 09:54:51 -07:00
Tim Yung 5062c5256e RN: Define name on Mock Components in Jest (#44399)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44399

Improves the result of `mockComponent` in React Native's Jest environment so that it has an accurate `name` property.

This will be important when React enables deriving component stack locations via error stack frames.

Changelog:
[General][Changed] - `mockComponent` now also mocks `name`

Reviewed By: kassens

Differential Revision: D56914915

fbshipit-source-id: 1bea3e8773c56f70a89d2171c436f85178676373
2024-05-03 08:16:36 -07:00
Pieter De Baets a16f7dc547 Improve spec-compliance of bridgeless timer implementation (#44380)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44380

* setInterval's second argument is optional, and defaults to 0
* setTimeout is spec'ed to return a positive integer.

There's also no need to use HostObjects here to represent the timer index, it just hurts performance and makes this code more complex for no clear reason.

Changelog: [General][Fixed] New architecture timer methods now return integers instead of an opaque object.

Reviewed By: RSNara

Differential Revision: D56863422

fbshipit-source-id: fd3e75303662d865083d01e2bfe8633bac151a0e
2024-05-03 08:04:05 -07:00
Nicola Corti b163ed8655 RNGP - Fix core Autolinking attemping to link dependencies without a android block (#44385)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44385

The current core autolinking is failing if a dependency doesn't have an `android` block.
Instead we should filter out all the dependencies that don't have an `android` definition when generating code.

Fixes https://github.com/reactwg/react-native-releases/issues/276

Changelog:
[Internal] [Changed] - RNGP - Fix core Autolinking attemping to link dependencies without a `android` block

Reviewed By: blakef

Differential Revision: D56876267

fbshipit-source-id: 900b13bec697fceac50c994f277621a10e281410
2024-05-03 01:51:28 -07:00
Phillip Pan 7ea84bd3eb deprecate RCTRuntimeExecutorModule (#44377)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44377

Changelog: [iOS][Deprecated] deprecate RCTRuntimeExecutorModule

After we make CallInvoker available to native modules, we don't need this. Document it and mark it as deprecated.

Reviewed By: RSNara

Differential Revision: D56848799

fbshipit-source-id: 5628eef01a53bfd29d5b89c0398a938bdd87b0ac
2024-05-03 01:29:13 -07:00
Phillip Pan 8f9ff89093 introduce CallInvoker API for bridgeless modules (#44378)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44378

Changelog: [iOS][Added] introduce CallInvoker support in bridgeless native modules

I am adding this API in favor of RCTRuntimeExecutor. CallInvoker is now preferred because after #43375, the CallInvoker has access to the jsi::Runtime. Since the community is using CallInvoker already for their async access use cases, CallInvoker is the preferred choice of RuntimeExecutor / RuntimeScheduler because of easier migration. Also, having a wrapper like CallInvoker will give us more flexibility in the future if we want to expand this API.

Reviewed By: RSNara

Differential Revision: D56807994

fbshipit-source-id: 5c3585356d016a50645eda3af2d3bbe00298b4e4
2024-05-03 01:29:13 -07:00
Christoph Purrer eb1b42fa8b Sort spec members
Summary:
The motiviation of this change is to produce sorted / stable native module schemas which members are alphabetically sorted. The benefit is mainly for verifying test fixtures as now new test cases will be inserted at predicatable spots.

Changelog: [Internal]

Reviewed By: rshest

Differential Revision: D56741776

fbshipit-source-id: 842af73cac3b4859d2074e6a5206015924e87201
2024-05-02 20:31:50 -07:00
Tim Yung abb7070a51 RN/Relay: Upgrade to React v18.3.1 (#44397)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44397

X-link: https://github.com/facebook/metro/pull/1270

Upgrades `react-native` and `relay` to the newly published `react@18.3.1`.

Changelog:
[General][Changed] - Upgrade to `react@18.3.1`

Reviewed By: jackpope

Differential Revision: D56901818

fbshipit-source-id: 423d35205bb533c6a39c0fed25a1ffea1f0bc12d
2024-05-02 16:18:26 -07:00
Pieter De Baets 88de74b2dc Do not pass ReactContext to getViewManagersMap (#44379)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44379

A common pattern to implement `ViewManagerOnDemandReactPackage` is to use a `getViewManagersMap` helper. If we capture `ReactApplicationContext` there, we will indefinitely retain the the very first ReactApplicationContext, and break/leak across reloads. Instead we should pass the `ReactApplicationContext` whenever we construct the ViewManager.

Changelog: [Internal]

Reviewed By: RSNara

Differential Revision: D56838427

fbshipit-source-id: 76583dd7f5564ed29f0dbfcef33d8d288cbb90e0
2024-05-02 13:25:18 -07:00
Nick Gerleman bbb52c575d Rename TextLayoutManagerMapBuffer to TextLayoutManager
Summary:
Clean this up, now that there is only one TextLayoutManager.

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D56801446

fbshipit-source-id: 1b81a16031ab520d06d8935000d5019609f8a254
2024-05-02 12:50:15 -07:00
Nick Gerleman 8871b95cda Delete old Android TextLayoutManager
Summary:
No longer used after last diff.

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D56801475

fbshipit-source-id: 45320418493cb47cc9df192de3dcc73284005fb4
2024-05-02 12:50:15 -07:00
Nick Gerleman 1499e67b39 Remove code relying on non-MapBuffer TextLayoutManager
Summary:
These are all either dead, or duplicate code (e.g. for spannable cache). Let's delete it, so we can get rid of the redundant TextLayoutManager that is no longer getting new updates.

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D56800381

fbshipit-source-id: 264c2ede43b765ff094d3d3976ad8535579cc4d9
2024-05-02 12:50:15 -07:00
Ramanpreet Nara 5a8fe43673 <ScrollView/>: Add static ViewConfig for scrollEventThrottle
Summary:
This prop was introduced into horizontal <ScrollView/> in D35735978.

**Note:** This prop did not work for bridgeless mode.

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D56854758

fbshipit-source-id: 2b25296a065b01f11aa04c2ff06cabf64ff5fce1
2024-05-02 12:46:05 -07:00
Ramanpreet Nara 35f1e308e8 <ScrollView/>: Add static ViewConfig for maintainVisibleContentPosition
Summary:
This prop was introduced for horizontal and vertical scrollview in D40642469.

That diff updated the native view configs only.

**Note:** This prop did not work for bridgeless mode.

Partial fix: Add the prop to vertical scrollview: D54223244

Full fix: this diff.

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D56854757

fbshipit-source-id: aff2da407f4df4575ceb66d3d381a144fa07a8e9
2024-05-02 12:46:05 -07:00
Ramanpreet Nara 0a8e2c81a9 <ScrollView/>: Add native view config for horizontal
Summary:
horizontal was introduced here: D55367445

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D56831754

fbshipit-source-id: 289bb8c5c8fd1c84b84b524d374b31f99766eb04
2024-05-02 12:46:05 -07:00
Ramanpreet Nara 87e8dde9a5 <Image/>: Add native view config for source
Summary:
<Image/>'s source prop was introduced in D51479305.

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D56831756

fbshipit-source-id: 55d67e74b0dcb5c7b107eac030192b941d8c9d51
2024-05-02 12:46:05 -07:00
Ramanpreet Nara 457372c87e Add native view config for {margin,padding}{block,inline} props
Summary:
The margin/padding props were introduced in this diff: D41267765

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D56846578

fbshipit-source-id: 396cab3fdd63d9c630690157a385f1ae53208bb7
2024-05-02 12:46:05 -07:00
Ramanpreet Nara 063ae7d3e8 Add native view config for inset props
Summary:
The insets props were introduced in this diff: D42193661

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D56849870

fbshipit-source-id: 7be2a5825086ac954fdb8bc3bb86b57a2fa6d326
2024-05-02 12:46:05 -07:00
Ramanpreet Nara 8c3f8a3e6b Add static view config for onClickCapture
Summary:
onClick was made into a capture event in this diff: D45745906
- Partial fix: D51551255
- Full fix: this diff.

**Note:** This prop did not work for bridgeless mode.

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D56849867

fbshipit-source-id: 15acc16b162e0dd17513c6452008331e3fee4526
2024-05-02 12:46:05 -07:00
Ramanpreet Nara ef1e84e425 Add native view config for collapsableChildren
Summary:
collapsableChildren was introduced in D56226241

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D56849868

fbshipit-source-id: b2b08bfc2b8a35a863a91a53e1bee0b700c50f69
2024-05-02 12:46:05 -07:00
Ramanpreet Nara 5e46712dc8 Add native view config for experimental_layoutConformance
Summary:
experimental_layoutConformance was added in this diff: D47940100

Changelog: [Internal]

Reviewed By: javache

Differential Revision: D56849869

fbshipit-source-id: 2346a869aa9d87916d074e54306d3c1230b7a91c
2024-05-02 12:46:05 -07:00
Ramanpreet Nara 3ffdace137 Fix comments in LayoutShadowNode!
Summary: Changelog: [Internal]

Reviewed By: javache

Differential Revision: D56831755

fbshipit-source-id: 04b8c131355d711224085caeb6a26eb4c17db755
2024-05-02 12:46:05 -07:00
Jesse Sahli 1ca35bb211 Revert D56857738: Update hermes-parser and related packages in fbsource to 0.21.0
Differential Revision:
D56857738

Original commit changeset: 6027f529df8a

Original Phabricator Diff: D56857738

fbshipit-source-id: e2725cd97bc6954ddd2494cad28ef34eccc5d104
2024-05-02 12:09:53 -07:00
aleqsio 00b366159d Hotfix privacy manifest aggregation script (#44390)
Summary:
As pointed out by liamjones here:
https://github.com/facebook/react-native/pull/44214#discussion_r1587755403

The original PR did introduce a bug in the `find/first` check, but in my testing, we do need to look at `group.name`, so let's make sure we check both.

This also makes it play nice with an existing file even if it is added to a different directory, by appending to it instead of forcing it to exist in the main group.

## Changelog:

[IOS] [FIXED] - Fix privacy aggregation

Pull Request resolved: https://github.com/facebook/react-native/pull/44390

Test Plan: Tested on rn-tester

Reviewed By: cipolleschi

Differential Revision: D56893594

Pulled By: philIip

fbshipit-source-id: b92589bc2bed9d07e9af20c56a8b9f6c61d864f0
2024-05-02 11:40:07 -07:00
George Zahariev 55dc853d07 Update hermes-parser and related packages in fbsource to 0.21.0
Summary:
Bump hermes-parser and related packages to [0.21.0](https://github.com/facebook/hermes/blob/main/tools/hermes-parser/js/CHANGELOG.md).

Changelog: [internal]

Reviewed By: pieterv

Differential Revision: D56857738

fbshipit-source-id: 6027f529df8a5e1e3cf3b2d383f399f9e1050e96
2024-05-02 10:30:44 -07:00
Alex Hunt 185f63b0db Add experiment to configure internal debugger branding (#44388)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44388

Towards the open source rollout of the `rn_fusebox.ts` entry point.

NOTE: Requires https://github.com/facebookexperimental/rn-chrome-devtools-frontend/pull/59, but can (and should) be landed safely beforehand.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D56883040

fbshipit-source-id: acee5d53c0f93ef9dc2d498001291b1e35237824
2024-05-02 09:15:30 -07:00
Alex Hunt 817f610983 Update debugger-frontend from 24b0c81...141c8c93
Summary:
This is a major sync, featuring our recent rebase of `chromium/6344`.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D56884975

fbshipit-source-id: bc91f66bfc92464ab8fa99893ab0181077041b79
2024-05-02 09:15:24 -07:00
Blake Friedman b38f80aeb6 update shared build to strip Babel wrapper (#44339)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44339

We require the wrapper code for in repository calls to these packages directly from node (i.e. using CommonJS).  This wrapper code typically sits at the entrypoint of the build packages (i.e. `index.js`).

NOTE: This unblocks an issue preventing me from landing further work on the `helloworld` cli replacing the community template.

## Problem:
The [flow-api-translator](https://www.npmjs.com/package/flow-api-translator) library doesn't allow CommonJS `module.exports` when generating TypeScript Type Defintions.

## Change
1. At the built time, this strips out our wrapper code and sets up the dist/ folder appropriately for npm distribution.
2. Updated the `package.json` files to consistently share Flow types

Changelog: [Internal] refactor build packages output to remove wrapper.

NOTE: Added better error messages when users deviated from the current pattern:
{F1501571608}

Reviewed By: huntie

Differential Revision: D56762162

fbshipit-source-id: f110b31e4ad780998dbc81a2482891ac8d8c6458
2024-05-02 04:00:21 -07:00
Pieter De Baets d280772ea4 Remove manual flattening of pointerEvents in View (#44352)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44352

Confirmed in https://github.com/facebook/react/commit/d779eba4b375134f373b7dfb9ea98d01c84bc48e that style properties already take priority over direct props, so we can avoid flattening style here.

Changelog: [General][Fixed] Small performance tweak to View wrapper to avoid unnecessary style flattening.

Reviewed By: sammy-SC

Differential Revision: D56740899

fbshipit-source-id: ceec3e9665e2f69637c832af7dc59ce2feb65e24
2024-05-01 22:50:10 -07:00
Arushi Kesarwani 63043b79be Fix shouldShowDevMenuOrReload in RELEASE
Summary:
In RELEASE mode, the `devSupportManager` received is ReleaseDevSupportManager for which `showDevOptionsDialog()` & `handleReloadJS()` is a no-op
https://github.com/facebook/react-native/blob/main/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.java

Which is expected since this is a capability only in Dev mode(useDeveloperSupport = true). However, ATM `shouldShowDevMenuOrReload()` returns true in RELEASE as well which is a bug.

Since there is no need for `shouldShowDevMenuOrReload()` in RELEASE, changing it's logic to introduce that check, early exit and return false in case of RELEASE.

Changelog:
[Android][Fixed] shouldShowDevMenuOrReload() in RELEASE mode

Reviewed By: RSNara

Differential Revision: D56851473

fbshipit-source-id: e9e12b0bec8aead5e9227fcd676459ca54490b61
2024-05-01 21:27:58 -07:00
Arushi Kesarwani bdcc979bab Fix onKeyLongPress() in RELEASE
Summary:
In RELEASE mode, the `devSupportManager` received is ReleaseDevSupportManager for which `showDevOptionsDialog()` is a no-op
https://github.com/facebook/react-native/blob/main/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/ReleaseDevSupportManager.java#L66

Which is expected since this is a capability only in Dev mode(useDeveloperSupport = true). However, ATM `onKeyLongPresss()` returns true in RELEASE as well which is a bug.

Since there is no need for `onKeyLongPress()` in RELEASE, changing it's logic to introduce that check and return false in case of RELEASE.

Changelog:
[Android][Fixed] onKeyLongPress() in RELEASE mode

Reviewed By: christophpurrer, RSNara

Differential Revision: D56850466

fbshipit-source-id: 92d2c8572b32d065f5f9d54e22588bb085b9dcc9
2024-05-01 21:27:58 -07:00
Eric Rozell 67bc65df85 Add C++ header for default TurboModules and cross-platform reuse (#44361)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44361

In order to keep all platforms in sync (Android, iOS, Windows, etc.), it makes sense to consolidate all C++ TurboModules that we want available by default on all platforms to a shared C++ header / implementation.

This moves the duplicated code from Android and iOS to such a shared module provider and updates relevant build specs.

## Changelog

[Internal]

Reviewed By: christophpurrer

Differential Revision: D56835783

fbshipit-source-id: 7322ed054ded5749973885c63257e5caf23b3fc3
2024-05-01 20:16:16 -07:00
John Ward 0383669a4b Only schedule Choreographer callbacks if there's an active animation
Summary:
Changelog: [Internal]
A very similar diff was attempted with D50647971 and reverted in D51617862. The main difference here is all behavior is gated behind the feature flag. Before, we were enqueuing the extra frame callback on start_animating_node even if ondemand choreographer was disabled.

Reviewed By: javache

Differential Revision: D56085369

fbshipit-source-id: fa6335303fe98199b18fa2b4819110afb8efcc0d
2024-05-01 16:41:53 -07:00
Arushi Kesarwani dfa6519749 getJavaScriptContextHolder() in BridgelessReactContext (#44360)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44360

Support `getJavaScriptContextHolder()` in BridgelessReactContext

Changelog:
[Android][Added] - getJavaScriptContextHolder() supported in BridgelessReactContext since it's supported in ReactContext[Bridge]

Reviewed By: philIip, RSNara

Differential Revision: D56834958

fbshipit-source-id: e274adc01b0993012f36224d5afaa3918997c13c
2024-05-01 16:10:04 -07:00