Commit Graph
21474 Commits
Author SHA1 Message Date
Emily Janzer d435d26d87 Check if result from native UIManager is null before accessing view config
Summary:
As titled - attempt to mitigate a JS error on iOS while we work on getting JS view configs. It seems like this happens when the bridge is invalid.

Changelog: [Fixed][iOS] Don't throw an error if the UIManager returns null when fetching a view config

Reviewed By: kacieb

Differential Revision: D25247203

fbshipit-source-id: e2003f99b818f9657c60ff95b266be74fe18a94b
2020-12-01 15:02:20 -08:00
Samuel Susla ae6f4f308e Align format of touch events with Paper
Summary:
Changelog: [internal]

Touch events should be of a type PressEvent. Fabric only provided touches, changedTouches and targetTouches and leaves out force, identifier, locationX, locationY, pageX, pageY and timestamp.

Reviewed By: shergin

Differential Revision: D25243347

fbshipit-source-id: e824558bd43f51c0c6dcca62bfc98318aa61678e
2020-12-01 09:23:36 -08:00
Samuel Susla e28b25cd99 Avoid sending NaN as force of Touch
Summary:
Changelog: [internal]

This avoids getting NaN in JS. Paper does it as well.

Reviewed By: shergin

Differential Revision: D25243147

fbshipit-source-id: 48dd1aa6daa7de23550850bd5d30fc3b20e6828d
2020-12-01 09:23:36 -08:00
Samuel Susla 8656919bf0 Remove duplicate declaration
Summary:
Changelog: [internal]

This is already defined in Touch.h

Reviewed By: shergin

Differential Revision: D25242843

fbshipit-source-id: 23bac2a60f3d995e34d342c3a189760875f4bc77
2020-12-01 09:23:35 -08:00
Su Min Kim 5cf4ab8dd2 Remove filter pills from example page (#30198)
Summary:
rickhanlonii
Removes filter pills from example page in RNTester app.

## Changelog
Removed filter pills from example page by changing hideFilterPills property to true in RNTesterExampleList.js
<div>
<img src="https://user-images.githubusercontent.com/43835229/96194048-88e05600-0f17-11eb-9262-660a7a4bb170.png" width="200" height="400" style="float:left" />
<img src="https://user-images.githubusercontent.com/43835229/96194345-26d42080-0f18-11eb-9af2-bbf9fcc9518a.png" width="200" height="400" />
</div>

[Android] [Removed] - Remove filter pills
[iOS] [Removed] - Remove filter pills

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

Test Plan:
RNTester app builds and runs as expected and filter pills are removed from the screen.
<div>
<img src="https://user-images.githubusercontent.com/43835229/96194077-9564ae80-0f17-11eb-821e-13da51d37581.png" width="200" height="400" style="float:left"/>
<img src="https://user-images.githubusercontent.com/43835229/96194532-8fbb9880-0f18-11eb-9ecf-48e1b4a9ac25.png" width="200" height="400" />
</div>

Reviewed By: cpojer

Differential Revision: D24395513

Pulled By: rickhanlonii

fbshipit-source-id: 7351ce8972185f973ad302d70929491cc6f56907
2020-12-01 09:06:23 -08:00
Xiaoyu Yin b9b2215174 Add DoNotStrip annotations to TurboModulePerfLogger
Summary:
Prevent proguard from stripping these methods

Changelog: [Internal] Add DoNotStrip annotations to TurboModulePerfLogger

Reviewed By: RSNara

Differential Revision: D25101027

fbshipit-source-id: 673e97446a36fe0e8c10916aa7eb4c39c2187ba8
2020-11-30 14:15:24 -08:00
Samuel Susla 8478f461df Simplify interface of LayoutAnimationKeyFrameManager::getAndEraseConflictingAnimations
Summary:
Changelog: [internal]

Return value from `LayoutAnimationKeyFrameManager::getAndEraseConflictingAnimations` was a tuple with 3 elements. Two of them are not being used so let's get rid of them.

Reviewed By: JoshuaGross

Differential Revision: D25220601

fbshipit-source-id: 35781e735b6a2e518337fdeaf956c18bb370993b
2020-11-30 12:27:46 -08:00
Samuel Susla 5677d812aa Disable assert in StubViewTree until it is resolved
Summary:
Changelog: [internal]

The assert is still firing, let's disable it until we can investigate why layout animations creates two delete mount instructions.

Reviewed By: majak

Differential Revision: D25216794

fbshipit-source-id: 6328a2afb5eaf7fceebdc05bc75804f2eb44ddd2
2020-11-30 07:55:13 -08:00
Tim Yung aa03c836b4 RN: Migrate View to NativeComponentRegistry
Summary:
Migrates `View` to use `NativeComponentRegistry`, which enables configuring it to avoid reflection by using a static `ViewConfig`.

Changelog:
[Internal]

Reviewed By: JoshuaGross

Differential Revision: D25136054

fbshipit-source-id: f2abda1105bd2a8b396db6f1a640430b62bbcdaf
2020-11-28 21:49:58 -08:00
Shelly Willard bb1dcc182e Migrate jsi wrapper + pass markerId to get next instance key
Summary:
Migrating jsi wrapper userflow v2. Also pass markerId to the method that gets instance key

Changelog: [internal]

Differential Revision: D25184462

fbshipit-source-id: c316720b0b3d47b345156bb71d51d6f4c473ceef
2020-11-27 11:15:00 -08:00
Kevin Lin 9528ef27b9 Avoid accessing self.component on background thread
Summary: Changelog: [Internal] `self.component` is main thread affined so we need to dispatch to main queue before using it.

Reviewed By: shergin

Differential Revision: D25163182

fbshipit-source-id: a7da0324982354215e0ccb47615f7f121200f12a
2020-11-26 04:06:59 -08:00
Dulmandakh 0675beee11 include android in npm package (#30451)
Summary:
RN app expects **android** folder with maven artifacts in NPM package, and *test-manual-e2e.sh* fails on **0.64-stable** because it couldn't find **android** folder, therefore looks into remote repos and finds 0.20.1 version on bintray.

See https://github.com/facebook/react-native/blob/e99b8bbb404f8cd1f11b6c7998083be530d7b8a4/template/android/build.gradle#L27

This PR will change npm pack to include **android** folder with maven artifacts in NPM package, thus RN android apps can find RN in node_modules.

## Changelog

[Internal] [Changed] - include *android* in npm package

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

Test Plan: With this change  *test-manual-e2e.sh* will run successfully, previous it was failing due to duplicate classes error.

Reviewed By: MichaReiser

Differential Revision: D25157286

Pulled By: cpojer

fbshipit-source-id: 42fcd09d417560ebd9d3fc8fc52e1e291fca152e
2020-11-24 04:27:17 -08:00
Tim Yung baa824826d RN: Call NativeComponentRegistry in Codegen
Summary:
Changes `react-native/babel-plugin-codegen` to generate calls to `NativeComponentRegistry` instead of `registerGeneratedViewConfig`.

The only notable changes in behavior from this will be:

1. In bridgeless mode, all components using `codegenNativeComponent` will no longer access `UIManager`.
2. In bridge mode, all components using `codegenNativeComponent` will no longer verify equivalence in production. Only in `__DEV__`. (This may improve performance slightly.)

This also changes the `ViewConfig` to be lazily allocated and drops support for `__INTERNAL_VIEW_CONFIG`, which we no longer need.

Changelog:
[Internal]

Reviewed By: JoshuaGross

Differential Revision: D25135881

fbshipit-source-id: ca2191872c02622ab2279b808102eeb1f664d207
2020-11-22 01:32:08 -08:00
Héctor Ramos e99b8bbb40 Use react-native-codegen@0.0.6 in new app template
Summary:
Use pre-built react-native-codegen library from npm in the iOS app template.
Built react-native-codegen from source when used with RNTester.
Published react-native-codegen@0.0.6.

Changelog:
[iOS][Added] - Use react-native-codegen in iOS app template
[Internal] - Bump react-native-codegen: 0.0.6

Reviewed By: fkgozali

Differential Revision: D25128036

fbshipit-source-id: f294c23b9b911aae6f404edc01b62426fb578477
2020-11-20 20:11:59 -08:00
Tim Yung f638aff434 RN: Add NativeComponentRegistry.getWithFallback_DEPRECATED
Summary:
Creates `NativeComponentRegistry.getWithFallback_DEPRECATED`. This is deprecated from inception because it exists only to support a pattern that should not be necessary.

For any given `NativeX` component, the JavaScript module that calls `NativeComponentRegistry.get('NativeX', …)` should only exist in the JavaScript bundle if the native binary actually supports that native component.

But in today's transitional state of the world, there are JavaScript modules that use `UIManager.getViewManagerConfig('NativeX')` as a means of feature detection.

The purpose of `NativeComponentRegistry.getWithFallback_DEPRECATED` is to bridge this transitional gap. Component should migrate toward initializing the `NativeComponentRegistry` with a runtime configuration provider that enumerates all supported native components. If the native component is not supported, it should return null.

Changelog:
[Internal]

Reviewed By: fkgozali

Differential Revision: D25109988

fbshipit-source-id: 76f7077904594ca63495d8338905c43712ea02e0
2020-11-20 18:53:14 -08:00
Tim Yung a865bd89d7 RN: Migrate ImageView to NativeComponentRegistry
Summary:
Migrates `ImageView` to use `NativeComponentRegistry`, which enables configuring it to avoid reflection by using a static `ViewConfig`.

Changelog:
[Internal]

Reviewed By: JoshuaGross

Differential Revision: D25104446

fbshipit-source-id: dd01bf01ead94ca6632b2653b45becf408953bcf
2020-11-20 18:53:14 -08:00
Tim Yung 9dfefa8da0 RN: Rename to ScrollViewNativeComponent
Summary:
There may be assumptions that `Native*.js` contains TurboModule. In order to avoid introducing unplanned breaking changes (especially right before the holidays), roll this back for now.

In doing so, I also realized that I forgot to migrate over `ScrollContentViewNativeComponent`. This does that, too.

Changelog:
[Internal]

Reviewed By: RSNara

Differential Revision: D25129324

fbshipit-source-id: 343c4b800969dab91f7cd9f2bf253788c94d38e6
2020-11-20 18:53:14 -08:00
Joshua Gross f9a4cafa20 LayoutAnimations: Remove unnecessary optionals in config
Summary:
These configs are never actually empty, so they shouldn't be optionals.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D25129254

fbshipit-source-id: 626119fefad0440732541c680286ebbbfab6aeba
2020-11-20 17:30:11 -08:00
Emily Janzer c0a2998387 Move TurboModuleManager to use RuntimeExecutor instead of jsContext (#30416)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/30416

This diff changes the constructor param for TurboModuleManager from jsContext (a long representing the `jsi::Runtime` pointer) to a RuntimeExecutor. It also updates callsites to use the new RuntimeExecutor created by CatalystInstance. This is only used for installing the TurboModule JSI binding; it's not currently used for JS invocation in TurboModules, which is handled separately by JSCallInvoker. Ultimately we may be able to implement JSCallInvoker *with* the provided RuntimeExecutor, but there's some additional logic in JSCallInvoker that we don't have here yet.

Changelog: [Internal]

Reviewed By: RSNara

Differential Revision: D21338930

fbshipit-source-id: 1480c328f1a1776ddf22752510c0f3b35168a489
2020-11-20 14:32:59 -08:00
Samuel Susla 29bbeaf8ac Fix race condition in LayoutAnimationKeyFrameManager::currentAnimation_
Summary:
Changelog: [internal]

`currentAnimation_` is accessed on multiple threads and has dedicated mutex, but it was not acquiring the mutex in `LayoutAnimationKeyFrameManager::shouldAnimateFrame`

Reviewed By: JoshuaGross

Differential Revision: D25121654

fbshipit-source-id: 38b1c82eaabab283beab18dc210ea21379edbe93
2020-11-20 13:23:47 -08:00
Samuel Susla f6fb1d0936 Use auto and implicit type conversion to improve readability in LayoutAnimationKeyFrameManager
Summary:
Changelog: [internal]

Readability improvements.

Reviewed By: JoshuaGross

Differential Revision: D25121829

fbshipit-source-id: f2937150ca078cc07befd873e91779cb960529a2
2020-11-20 13:05:38 -08:00
Samuel Susla 8aae407b6f Fix race condition in LayoutAnimationCallbackWrapper
Summary:
Changelog: [Internal]

Contents of `callComplete_` are accessed from JavaScript thread and main thread and there is possible race condition. This diff changes `bool` to `atomic_bool` to prevent the race.

Reviewed By: JoshuaGross

Differential Revision: D25094907

fbshipit-source-id: 6a2c6e33ab5ba0c6ab728e175f2e5c11fdd0a579
2020-11-20 09:54:00 -08:00
generatedunixname89002005325676 a023ff0bd4 Daily arc lint --take CLANGFORMAT
Reviewed By: zertosh

Differential Revision: D25117167

fbshipit-source-id: 1eb415aa139a9be92676202ffdc1a901043122b9
2020-11-20 06:44:11 -08:00
Samuel Susla 246ddc72be Reset imageSource in ImageRequest's move constructor
Summary:
Changelog: [Internal]

General improvements. Behaviour should be exactly the same.

Reviewed By: JoshuaGross

Differential Revision: D25092505

fbshipit-source-id: 584640ece3e02d468f6bcb84577d7a6c899cc253
2020-11-20 06:40:24 -08:00
Mike Vitousek 7f53bb95f7 Suppress errors and switch to new-generics in xplat
Summary:
The Flow team has been building a new implementation of the system that typechecks the body of generic functions and classes. This system is more sound than the previous approach and detects errors that were uncaught previously. This diff turns on the new generic system by setting generate_tests=false in the .flowconfig, and suppresses newly discovered errors.

This diff modifies and re-signs some generated modules, because syncing from www pulled in a ton of other changes that have runtime differences, and I'm not equipped to verify that the changes are safe to land.

Changelog: [Internal]

Reviewed By: panagosg7

Differential Revision: D24801184

fbshipit-source-id: bb31fe4c5a4107d183649b436a548df5ff42e217
2020-11-20 00:50:30 -08:00
Jesse Katsumata 4421a64ac1 chore: updated url of deprecated modules (#30422)
Summary:
Part of https://github.com/react-native-community/releases/issues/207

Migrate warnings in index.js to point to new lean core repos

NOTE: some npm modules has been transferred to new nom namespace, such as `react-native-picker/picker` `react-native-async-storage/async-storage` `react-native-masked-view/masked-view`.
Some lean core repo has been transferred to new repo, but its npm namespace remains the same. ex: clipboard module exists in react-native-clipboard/clipboard repo, but npm package name is still `react-native-community/clipboard` (they're planned to be migrated in the future)

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->

[General] [Changed] - Migrate warnings in index.js to point to new lean core repos

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

Test Plan:
- Updated repo URL can be accessed
- Updated npm package can be installed

Reviewed By: rickhanlonii

Differential Revision: D25077750

Pulled By: cpojer

fbshipit-source-id: b736ea449835bdf3d2a2f85e5c86e5253b90db78
2020-11-19 20:36:07 -08:00
Tim Yung 00e623ddbb RN: Migrate ScrollView to NativeComponentRegistry
Summary:
Migrates `ScrollView` (and its related native components) to use `NativeComponentRegistry`. This will enable it to be configured using experiments to conditionally use the native `ViewConfig` or verify the static `ViewConfig`.

This also cleans up a bunch of the modules and types related to defining the native `ScrollView` component.

This also proposes adopting the same module naming protocol was has been adopted for TurboModules (i.e. `NativeScrollView` instead of `ScrollViewNativeComponent`).

Changelog:
[Internal]

Reviewed By: JoshuaGross

Differential Revision: D25098530

fbshipit-source-id: ff1394bfac023daf58e85d5f9068e4f8da3538be
2020-11-19 15:55:23 -08:00
Tim Yung d4e29ecdaa RN: Fix ScrollView Type Errors
Summary:
Fixes some of the type errors in `ScrollView` that were previously being suppressed by comments. This also slightly simplifies the implementation of `ScrollView`.

Changelog:
[Internal]

Reviewed By: kacieb

Differential Revision: D25097225

fbshipit-source-id: a444db8179c91e264671d8f32431b93c4da8dfc4
2020-11-19 15:55:23 -08:00
Tim Yung 54a067e61e RN: Refactor ScrollView Style Splitting
Summary:
Rewrites `splitLayoutProps`, which is only used by `ScrollView`.

- Improve type safety by avoiding `DangerouslyImpreciseStyle`.
- Avoid allocating objects when it is not necessary.
- Avoid allocating a object enumeratig layout props by using a switch statement.

Changelog:
[Internal]

Reviewed By: JoshuaGross, kacieb

Differential Revision: D25097226

fbshipit-source-id: 2050c03b681024212c06a48b7eb05f28c14415f9
2020-11-19 15:55:23 -08:00
Tim Yung 7e7527e7db RN: Preserve Style Type in flattenStyle
Summary:
Refactors `flattenStyle` so that it preserves the style type of the argument. This lets us avoid using `DangerouslyImpreciseStyleProp` where we can.

Changelog:
[Internal]

Reviewed By: JoshuaGross, nadiia, kacieb

Differential Revision: D25097227

fbshipit-source-id: df6af6fefab25dbb62e3c81897c3cef98619a9c7
2020-11-19 15:55:23 -08:00
Joshua Gross b3865a9143 LayoutAnimations: attempt to re-queue animations if an UPDATE conflicts with a REMOVE+INSERT (move) without a corresponding Update
Summary:
Imagine the scenario in which there's an ongoing UPDATE animation; a REMOVE+INSERT (move) is queued up for the same tag, but there's no
new corresponding UPDATE - so maybe the indices of the view have changed, but the layout stays the same. Under the old model, the previous animation would be canceled and the node would jump to the final position. In theory, if there's no new UPDATE, we should continue animating the node to its final position.

I'm much happier with this - conflicting animations transition into each other super seamlessly now, and I think the logic is more straightforward as well.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D25071664

fbshipit-source-id: fcefc4619dc34cdafdc4d8e8e730b935e5528290
2020-11-19 14:53:23 -08:00
Joshua Gross 0423eab4ee LayoutAnimations: remove noisy, non-useful log
Summary:
This is noisy when enabled, and not very useful.

Changelog: [Internal]

Reviewed By: PeteTheHeat

Differential Revision: D25071584

fbshipit-source-id: 7205b5fa39622feccaf315ccebb181dbdac4281d
2020-11-19 14:53:23 -08:00
Joshua Gross a45c921396 Keep "previous" ShadowView for animations consistent with MOVE sequences (UPDATE/REMOVE/INSERT)
Summary:
See comments, hopefully they explain this situation. This fixes the last remaining case that I have repro'd where StubViewTree asserts fire.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D25062135

fbshipit-source-id: a28afba21f4094200aa0502b1e085dcbc10f9835
2020-11-19 14:53:23 -08:00
Joshua Gross 5bd5fcdd38 LayoutAnimations: ensure that all mutations retain the correct "old" node
Summary:
The current implementation of LayoutAnimations assumed that the "previous/old" ShadowView passed into the diff mutation didn't matter except for purposes of diffing.

As it turns out, iOS components could possibly use the "old" version of props, state, etc - so we should try to keep track of the current value in the tree as much as possible.

This diff accomplishes that by keeping track of the "previous" view, which the AnimationDriver will update over time. This also allows us to simplify logic around conflicting animations.

I'm also adding a few additional asserts to assist in debugging.

This doesn't totally eliminate all asserts hit on iOS, yet, but it does reduce the number of times the asserts are hit in StubViewTree.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D25048644

fbshipit-source-id: d00aeece5af04624d8193063be453c7ce4a6e565
2020-11-19 14:53:23 -08:00
Nick Gerleman 6d2a527984 Avoid eating clicks/taps into ScrollView when using physical keyboard (#30374)
Summary:
This is an extension of https://github.com/facebook/react-native/issues/29798 which was reverted due to cases where the soft keyboard could not be dismissed.

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->

[General] [Fixed] - Avoid eating clicks/taps into ScrollView when using physical keyboard

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

Test Plan: Validated with iOS simulator that taps on default ScrollView will dismiss soft keyboard and be eaten if open, but taps are not eaten when emulating a connected physical keyboard.

Reviewed By: kacieb

Differential Revision: D24935077

Pulled By: lyahdav

fbshipit-source-id: 19d9cf64547e40a35f9363896e3abbdccb95b546
2020-11-19 13:12:41 -08:00
Samuel Susla eaab64764e Do not remove oldChildShadowView from mutation
Summary:
Changelog: [internal]

This diff reverts some changes in D23886519 (https://github.com/facebook/react-native/commit/9f00752a97db3fe0b03cb412c5357eeebc3e2b16), I was not able to repro the issues that D23886519 (https://github.com/facebook/react-native/commit/9f00752a97db3fe0b03cb412c5357eeebc3e2b16) is fixing.
`oldChildShadowView` must be defined for update mutation.

Reviewed By: JoshuaGross

Differential Revision: D25088008

fbshipit-source-id: 956d0cc536e35376ce0e1cc09f7c5b66cb89fc77
2020-11-19 11:57:55 -08:00
Samuel Susla 5af6a44de3 Back out "Back out "[RN] Fabric: Strengthening StubView mutating validation""
Summary:
Changelog: [internal]

Original commit changeset: b6109a45f153

Reviewed By: JoshuaGross

Differential Revision: D25020497

fbshipit-source-id: c52d5ad03dd1049ac66ecb2d82b5018a05bb4f19
2020-11-19 11:57:55 -08:00
Tim Yung 6a547c6c57 RN: Create NativeComponentRegistry
Summary:
Creates `NativeComponentRegistry` which makes native component initialization more declarative and configurable through an optionally configurable provider.

The next diff converts `ScrollView` to use this new abstraction as a demonstration. The plan would be to use this to replace all current manual call sites of `registerGeneratedViewConfig`, and then the ones generated via the Babel plugin.

Migrating to this will not change any production behavior, but it will enable verification of `ViewConfig` in development.

Changelog:
[Internal]

Reviewed By: JoshuaGross

Differential Revision: D25084468

fbshipit-source-id: 9c758ddc279bf937a401a868a066907a94098f37
2020-11-19 10:55:50 -08:00
Michał Pierzchała c797fcf5aa chore: Bump CLI to ^5.0.1-alpha.0 (#30420)
Summary:
Upgrading CLI to latest. This diff is intended to be cherry-picked to 0.64.

cc grabbou kelset alloy

## Changelog

[Internal] [Changed] - Bump CLI to ^5.0.1-alpha.0

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

Test Plan: None

Reviewed By: MichaReiser

Differential Revision: D25063261

Pulled By: cpojer

fbshipit-source-id: e1788fd40db2b00daaf888e7b2afaf708ade5451
2020-11-19 04:50:37 -08:00
Tim Yung f6b8736b09 RN: Update ViewConfig for ScrollView
Summary:
Updates `ReactScrollViewManager` and the `ViewConfig` for `ScrollView` so that they are equivalent.

- `inverted` was missing.
- `contentOffset` was missing differ on Android. (However, there does not seem to be any perceivable behavior difference besides the native `ViewConfig` being different.)

Changelog:
[Internal]

Reviewed By: JoshuaGross

Differential Revision: D25084470

fbshipit-source-id: 8bea3b7a692c1038819a4147b174583a4faa71e9
2020-11-19 02:52:00 -08:00
Tim Yung de92e7405d RN: Refactor ViewConfig Inflation
Summary:
Refactors the conversion of a `PartialViewConfig` into a `ViewConfig` to a separate function so that it can be reused.

Changelog:
[Internal]

Reviewed By: JoshuaGross

Differential Revision: D25084469

fbshipit-source-id: 8a7f53ff2c68860697c791c37a6abbfd3213a0f9
2020-11-19 02:52:00 -08:00
Luna Wei 003d72d80b Provide default device scale
Summary:
Changelog:
[Internal][Fixed] - Provide a default device scale

Reviewed By: kacieb

Differential Revision: D24975788

fbshipit-source-id: 5f2158d7b704713b6a759734943e52228c9cafbc
2020-11-18 21:27:17 -08:00
Tim Yung 5b527fefcb RN: Fix registerGeneratedViewConfig Types
Summary:
Fixes types in `registerGeneratedViewConfig` and also removes some unnecessary hacks for the `ReactNativeViewViewConfig` type.

Changelog:
[Internal]

Reviewed By: JoshuaGross

Differential Revision: D25076608

fbshipit-source-id: 5cb2060e11db598b42fbb7f2f8aecfd7f4b262ef
2020-11-18 21:19:13 -08:00
Tim Yung e136aa3fc4 RN: Cleanup ViewConfig Types
Summary:
Cleans up the Flow types for React Native ViewConfig. After this diff, we will have two new canonical types:

- `ViewConfig` which is what we get from native and what is registered in the `ReactNativeViewConfigRegistry`.
- `PartialViewConfig` which is what we generate statically and augment at runtime before registering with the `ReactNativeViewConfigRegistry`.

Changelog:
[Internal]

Reviewed By: JoshuaGross

Differential Revision: D25075299

fbshipit-source-id: 4b53927b2db437b615447b711e83db355d0cfa55
2020-11-18 21:19:12 -08:00
Tim Yung 69b4611049 RN: Hoist Reflection from Verification
Summary:
Hoists the call to `getNativeComponentAttributes` out of the verification function so that it's easier to keep track of when this function is and is not called.

The purpose of this will become clearer in a future refactor.

Changelog:
[Internal]

Reviewed By: ejanzer

Differential Revision: D25072600

fbshipit-source-id: bc42461baae3476fa7ecb6186c4256dd23921ed5
2020-11-18 21:19:12 -08:00
Tim Yung 9611a7b43e RN: Move RN$Bridgeless Check to Registration
Summary:
Moves the `RN$Bridgeless` check as part of moving more logic out of the verification function.

Changelog:
[Internal]

Reviewed By: ejanzer

Differential Revision: D25072601

fbshipit-source-id: 929230c02a6eaa1b724f7fd2e1a691a7c20c4b11
2020-11-18 21:19:12 -08:00
Luke Walczak a7c1c5aff2 Add possibility to disable buttons in action sheet ios (#28979)
Summary:
_**Fixed**_ version of [the previous PR](https://github.com/facebook/react-native/pull/28792) after reverting [changes](https://github.com/facebook/react-native/commit/c8d678abcf93fd3f6daf4bebfdf25937995c1fdf#commitcomment-39299254)

----

I've noticed that currently there is no option to disable button within the `ActionSheetIOS`. It can be really useful and decided to extend the API to support that functionality.

I added a new option called `disabledButtonsIndices` to `ActionSheetIOS` which is an array of button indices which should be disabled.

`ActionSheetIOS` documentation - PR https://github.com/facebook/react-native-website/pull/1898

## Changelog

[iOS] [Added] - Add disableButtonsIndices option to ActionSheetIOS component

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

Test Plan:
1. Run the `RNTester`
2. Choose `ActionSheetIOS`
3. Check the fourth example `Show Action Sheet with disabled buttons`
4. `Option 1` and `Option 2` should be disabled

screenshot | gif
 --- | ---
<img width="493" alt="Screenshot 2020-04-30 at 15 16 22" src="https://user-images.githubusercontent.com/22746080/80739025-1ec52780-8b16-11ea-8b1c-30bb40ad8c99.png"> | <img src="https://user-images.githubusercontent.com/22746080/80739043-24227200-8b16-11ea-8bcb-af25eb57baac.gif" width="493" />

Reviewed By: sammy-SC

Differential Revision: D21727497

Pulled By: PeteTheHeat

fbshipit-source-id: 749b6c623eb8a44fe2bd96829ce89be5310e2368
2020-11-18 21:11:48 -08:00
Tim Yung 130618fd85 RN: Suppress RCTVirtualText Warning in Bridgeless
Summary:
The `DummyUIManager` module warns whenever `RCTVirtualText` is initialized. This stops that.

Changelog:
[Internal]

Reviewed By: PeteTheHeat

Differential Revision: D25073194

fbshipit-source-id: 8b9052d1cbb9a4defa5efbd110e1a91cd8884c48
2020-11-18 20:59:24 -08:00
Peter Argany bea3495fd0 Fix crash in RCTLegacyViewManagerInteropCoordinator
Summary:
Like the task mentions `strongSelf->_eventInterceptors` was crashing, probably because the coordinator was cleaned up before this block ran.

Check to make sure self is still valid before attempting to access any instance variables.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D25073812

fbshipit-source-id: cdf666f2ac028b5523097f15ff51fbae9f9ffbd8
2020-11-18 19:36:05 -08:00
Samuel Susla 19d4cc2d49 Implement ScrollView.zoomToRect
Summary: Changelog: [internal]

Reviewed By: JoshuaGross

Differential Revision: D24991008

fbshipit-source-id: 6048246a784b94a321281547d966379badd8f6fd
2020-11-18 15:32:30 -08:00