Commit Graph
6083 Commits
Author SHA1 Message Date
Ramanpreet Nara b5097c8dcd Back out "Back out "[TM][JS] Forward NativeModule schema to __turboModuleProxy""
Summary:
**Note:** This is a carbon copy of D22832730 (https://github.com/facebook/react-native/commit/3df6f5fb2c6176a809cdfef69a91792d3dce7d86). The fixes are stacked on top of this diff, in D22888030.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D22888032

fbshipit-source-id: 2f1b7ecd39437a3c5ee9c3214419716fde2bbdff
2020-08-04 15:49:52 -07:00
Aniket Kumar bb7aef2dd7 Update ActivityIndicator component (#29523)
Summary:
Fixes https://github.com/MLH-Fellowship/react-native/issues/34

The PR is part of an effort to update the code comments to match the current documentation on the React Native website. The project is a part of the MLH Fellowship program and involves the automatic generation of the website docs from code comments and flow types as the end result.

To learn more about the project you can visit the project wiki:
- [Project Details](https://github.com/MLH-Fellowship/0.4.x-projects/wiki/React-Native-Flowtype-API-Docs-Generator)
- [RN Docs Standards](https://github.com/MLH-Fellowship/react-native/wiki/RN-Docs-standards)

Link to the documentation(the source of truth):
- [activityindicator.md](https://github.com/MLH-Fellowship/react-native-website/blob/master/docs/activityindicator.md)

## Changes
* Update the title and prop description from docs.
* Remove unnecessary `*` from the code comments.
* Add Snack player example specified in the docs to the code comments as JSDoc.
* Add `type` annotation to parse supported datatype by the prop.
* Add `platform` annotation to specify platforms supported by a prop.
* Add `default` annotation to parse default value of prop.

## Changelog
[Internal]

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

Test Plan:
All changes are made to the code comments and thus there is no need for testing.

Reviewed by jevakallio

Reviewed By: cpojer

Differential Revision: D22921419

Pulled By: motiz88

fbshipit-source-id: 3701bf3e3f4e0762529c8a5597263354d5243f07
2020-08-04 08:40:57 -07:00
Aniket Kumar 44cb09ac46 Update Switch component (#29546)
Summary:
Fixes https://github.com/MLH-Fellowship/react-native/issues/60

The PR is part of an effort to update the code comments to match the current documentation on the React Native website. The project is a part of the MLH Fellowship program and involves the automatic generation of the website docs from code comments and flow types as the end result.

To learn more about the project you can visit the project wiki:
- [Project Details](https://github.com/MLH-Fellowship/0.4.x-projects/wiki/React-Native-Flowtype-API-Docs-Generator)
- [RN Docs Standards](https://github.com/MLH-Fellowship/react-native/wiki/RN-Docs-standards)

Link to the documentation(the source of truth):
- [switch.md](https://github.com/MLH-Fellowship/react-native-website/blob/master/docs/switch.md)

## Changes
* Update the title and prop description from docs.
* Remove unnecessary `*` from the code comments.
* Add Snack player example specified in the docs to the code comments as JSDoc.
* Add `type` annotation to parse supported datatype by the prop.
* Add `platform` annotation to specify platforms supported by a prop.
* Add `default` annotation to parse default value of prop.

## Changelog
[Internal]

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

Test Plan:
All changes are made to the code comments and thus there is no need for testing.

Reviewed by jevakallio

Reviewed By: cpojer

Differential Revision: D22921438

Pulled By: motiz88

fbshipit-source-id: eaab1e04252c15d7d3dd18a2b162fa97a4478dd6
2020-08-04 08:22:53 -07:00
Ayush Jain 6b7014ab04 Update the documentation of the Button component (#29155)
Summary:
Fixes https://github.com/MLH-Fellowship/react-native/issues/33

The PR is part of an effort to update the code comments to match the current documentation on the React Native website. The project is a part of MLH fellowship program and involves automatic generation of the website docs from code comments and flow types as the end result.

To learn more about the project you can visit the project wiki:
- [Project details](https://github.com/MLH-Fellowship/0.4.x-projects/wiki/React-Native-Flowtype-API-Docs-Generator)
- [RN Docs Standards](https://github.com/MLH-Fellowship/react-native/wiki/RN-Docs-standards)

Link to the documentation(the source of truth):
- [button.md](https://github.com/MLH-Fellowship/react-native-website/blob/master/docs/button.md)

## Changes
* Update the title and prop description from docs.
* Remove unnecessary `*` from the code comments.
*  Add default value to props.
   * Specify the default value of a prop in the code comments with `default` annotation.
   * For multiple defaults (different devices) use `default {platform android/ios}`.
* Update platforms in props.
  * Use comma separated string with `platform` decorator.
* Add Snack player example specified in the docs to the code comments with `example` annotation.

## Changelog
[Internal]

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

Test Plan:
All changes are made to the code comments and thus there is no need for testing.

[Reviewed by jevakallio](https://github.com/MLH-Fellowship/react-native/pull/18)

Reviewed By: cpojer

Differential Revision: D22767877

Pulled By: motiz88

fbshipit-source-id: ccad8d58dc2888d44d34fdbb94b3c187542e9f2b
2020-08-04 05:50:03 -07:00
Samuel Susla cc0cca60c1 Animated: queue all NativeAnimated operations until mounting effects are finished on iOS
Summary: Changelog: [Internal]

Reviewed By: JoshuaGross

Differential Revision: D22843292

fbshipit-source-id: f31a243f4f2b7b87f4bd2a1f0a453c42cc70acee
2020-08-04 01:43:05 -07:00
Samuel Susla 629e10e91b Fix "Cannot read property 'getNativeScrollRef' of undefined" in createAnimatedComponent
Summary: Changelog: Fix "Cannot read property 'getNativeScrollRef' of undefined" error in createAnimatedComponent

Reviewed By: JoshuaGross

Differential Revision: D22897211

fbshipit-source-id: d4f5161ac908fd137b2332a6860e62ad1cfd8856
2020-08-04 01:43:05 -07:00
Joshua Gross 777957c6fb LayoutAnimations: Allow user-configurable failure function
Summary:
There's currently a hidden parameter passed to the LayoutAnimation engine for "failure". It's not been used anywhere, ever, since it's a hidden parameter... and it's probably not called from the native side in non-Fabric. But it's been added to the native side of Fabric for feature-completeness and we might as well expose it, the cost seems minimal.

Changelog: [Internal]

Reviewed By: shergin

Differential Revision: D22889455

fbshipit-source-id: 73322776ed21e58a370500ccfde89285f07a9d50
2020-08-02 16:37:03 -07:00
Gijs Weterings f8f53e595c Back out "Forward NativeModule schema to __turboModuleProxy"
Summary:
Original commit changeset: aecaf9943f9b

Changelog: [Internal]

Reviewed By: jimmy623

Differential Revision: D22885708

fbshipit-source-id: 6839266653ad33ea8fb53c9f4664ed773c57443d
2020-08-01 06:25:26 -07:00
Ramanpreet Nara 3df6f5fb2c Forward NativeModule schema to __turboModuleProxy
Summary:
`babel-plugin-codegen` will run the NativeModules codegen on each NativeModule spec, and inline the generated schema into the spec's `TurboModuleRegistry.get(Enforcing)?` call. This diff will forward that schema to `__turboModuleProxy` function (i.e: the TurboModule C++ infra).

**Note:** Both this and D2280384 can't be landed until D22743294 (https://github.com/facebook/react-native/commit/650c0f64f1262d26a31b61d2a7576c485f3efa13) hits production (1-2 weeks).

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D22832730

fbshipit-source-id: aecaf9943f9b01be805ff6b90249a6cbc6abdd20
2020-07-31 18:29:53 -07:00
Ramanpreet Nara a30fbc28c9 Give NativeAnimatedTurboModule its own TurboModule interface
Summary:
Unfortunately, the new codegen doesn't allow us to import types from other files. Therefore, I've inlined the interface specification of NativeAnimatedModule into NativeAnimatedTurboModule.

Changelog: [Internal]

Reviewed By: JoshuaGross

Differential Revision: D22858790

fbshipit-source-id: 759bb960240afaba6b70c2730c3359b7e8c46c83
2020-07-31 13:48:41 -07:00
Samuel Susla 799654b105 Make sticky header position type relative
Summary:
Changelog: [Internal]

Since D22098586 (https://github.com/facebook/react-native/commit/476ab7481e23070fc4db3f584e45a95eb2f9f7e1) zIndex is only applied to views with position other than static.
Sticky header however needs to have its zIndex applied otherwise it goes below the content.

Reviewed By: mdvacca

Differential Revision: D22843134

fbshipit-source-id: d2e3a21441795b82c44b6d4245ccf89620fd9a8e
2020-07-31 08:48:09 -07:00
Joshua Gross 9e6ba9ddb8 Animated: queue all NativeAnimated operations until mounting effects are finished
Summary:
In Fabric, there are two subtle differences in Animated:

1) On the native side, queued NativeAnimated operations are executed more frequently
2) On the JS side there seems to be a bigger gap between AnimatedNodes being set up, and the final `componentDidMount`/`componentDidUpdate` that results in `_attachNativeEvents` being called.

This results in some visual glitching for certain features like StickyScrollViewHeader and other animations that are frequently rerendered. Rerendering an animated component relies on sync-like behavior
(new animations must be set up in the same frame that old animations are torn down, and the UI must flush any updates in the same frame). This sync-like behavior is trickier to achieve in Fabric, so
we introduce this mechanism, in Fabric only, to queued operations more aggressively on the JS side and only flush them when `componentDidMount`/`componentDidUpdate` have been called on all relevant nodes.

This seems to resolve longstanding issues with animations in Fabric on Android.

There are unrelated issues on iOS that make this difficult to test currently, so I'll keep the new path Android-only for now.

Changelog: [Internal]

Reviewed By: sammy-SC

Differential Revision: D22801173

fbshipit-source-id: 3db2235483636c9074df941cfac0a30f3f97545a
2020-07-29 12:39:10 -07:00
Andrey Tserkus db474a47b7 RN: Fixed performanceNow() to allow debugging in Chrome
Summary:
Discovered when debugging a React Native app in Chrome. The function `performanceNow` was recently changed, so that in Chrome it now refers to `performance.now()` method. However, `now()` cannot be called standalone without a context.

Reproduced by a synthetic example in Chrome:
```
const performanceNow = window.performance.now;
performanceNow();

Uncaught TypeError: Illegal invocation
    at <anonymous>:1:1
```

Changelog:
[General] [Fixed] - Fix failure when debugging code in a browser; was caused by `performanceNow()` function.

Reviewed By: cpojer

Differential Revision: D22739176

fbshipit-source-id: f89b8a215b7b4c430ffd72a1d23539c4f1b31d24
2020-07-28 17:20:54 -07:00
Paito Anderson 0bcc686c1c Fix iOS Image.getSizeWithHeaders (#29338)
Summary:
Fixes https://github.com/facebook/react-native/issues/28632

Image.getSizeWithHeaders() was not working as intended on iOS.

## Changelog

[iOS] [Fixed] - Fixed headers in `Image.getSizeWithHeaders`.

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

Test Plan:
Used RNTester and an Image URL requiring a Bearer token to test.

Code:
<img width="720" alt="Screen Shot 2020-07-10 at 3 00 58 PM" src="https://user-images.githubusercontent.com/4108718/87189376-850cba00-c2be-11ea-851c-d9fa37d88de4.png">

With Bearer Token:
<img width="456" alt="Screen Shot 2020-07-10 at 3 02 48 PM" src="https://user-images.githubusercontent.com/4108718/87189349-7de5ac00-c2be-11ea-8d82-c74cae6d904b.png">

Without Bearer Token:
<img width="559" alt="Screen Shot 2020-07-10 at 3 04 32 PM" src="https://user-images.githubusercontent.com/4108718/87189458-aff70e00-c2be-11ea-82b7-34a14ec465f1.png">

Reviewed By: cpojer

Differential Revision: D22783037

Pulled By: PeteTheHeat

fbshipit-source-id: 3ad5026e71607c61d42316784844c5295bc1dcae
2020-07-28 13:16:28 -07:00
Rick Hanlon 4b935ae95f Correctly mock all components by setting the displayName
Summary:
In the next react sync we removed the `displayName` from forwardRef and useMemo components ([PR here](https://github.com/facebook/react/pull/18495 )).

This means we need to manually add the displayName in the mock.

Changelog: [General] [Fixed] Fix test renderer mocks to use the displayName more often.

Reviewed By: TheSavior

Differential Revision: D22775470

fbshipit-source-id: 1390dc325e34f7ccea32bbdf1c6a8f6efea3a080
2020-07-28 13:09:06 -07:00
Rick Hanlon 7af3f6e934 Add React integration tests for LogBox
Summary:
This diff adds some integration tests that throw read React errors and asserts on the LogBox data.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D22752147

fbshipit-source-id: eb2e1542524d67558f2450130015164acd4d6093
2020-07-28 13:09:06 -07:00
Rick Hanlon 4720ee9aa7 Support component stack frames formatted as call stack frames in LogBox
Summary:
In the next version of React they've changed the format of component stacks from a custom format to the same format as call stacks. This diff adds handling (and test) for the new format.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D22752034

fbshipit-source-id: 38d74bffd9ed623cbdd71e70103d66d8f0765fd9
2020-07-28 13:09:06 -07:00
Samuel Susla ffc90c7f92 Remove requestToken being nil check from [RCTNetworkTask validateRequestToken]
Summary:
Changelog: Fix [TypeError: Network request failed] on file upload

# Problem
In https://github.com/facebook/react-native/commit/31980094107ed37f8de70972dbcc319cc9a26339 I made method `loadImageForURL` blocking and nil returning since it was no longer cancellable.

However inside `[RCTNetworkTask validateRequestToken]` was a logic counting on request token being non nil.
This diff removes this check and adds `nullable` to `[RCTImageURLLoader loadImageForURL]` making it explicit.

Reviewed By: PeteTheHeat

Differential Revision: D22767174

fbshipit-source-id: 04d5562e381912233b9c14e8156cbf145288f063
2020-07-28 12:00:57 -07:00
bill2004158 fd85b84a86 Update RCTSRWebSocket.m (#29419)
Summary:
Only add Sec-WebSocket-Protocol header if has _requestedProtocols.

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

[iOS] [Fixed] - when Sec-WebSocket-Protocol header is empty vaulue, IIS server will return error 502.

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

Reviewed By: cpojer

Differential Revision: D22782867

Pulled By: PeteTheHeat

fbshipit-source-id: d588997a345929b0c11c554d4452e612a336901a
2020-07-28 11:10:14 -07:00
Peter Argany d1c3c2d084 Fork RCTAnimatedModule to unblock brideless mode
Summary:
The Animated native module cannot be converted to a TM because it has perf regressions when used in conjunction with Paper renderer. Instead of fixing these complicated perf issues (which will disappear when Fabric ships this half), temporarily fork the native module. The new fork is converted to a TM, and only used to unblock bridgeless mode testing.

Changelog:[Internal]

Reviewed By: RSNara

Differential Revision: D22651010

fbshipit-source-id: 912123ef38ac8c66025b7bba34a65ec6d98f330d
2020-07-27 15:09:33 -07:00
Luna Wei 509e9dbd5f Change signature for addTimestamp for performance logger
Summary:
Changelog:
[Internal][Added] - Change signature of `addTimestamp` for IPerformanceLogger and rename old implementation to addTimeAnnotation

Adding this because there is no current ability to add a timespan to our perf logging with pre-defined start and end timestamps. The naming is a bit confusing because the current implementation of `addTimespan` in FB doesn't add a timespan, it adds an annotation of duration. We rename the old implementation to `addTimeAnnotation/s` and update `addTimespan` to suit our needs.

Reviewed By: rubennorte

Differential Revision: D22633202

fbshipit-source-id: 0e32099241f1f3835257cbb4ad108a4f437869e6
2020-07-27 14:28:56 -07:00
Rick Hanlon 9edfc43aad Only pass Error.stack to parseErrorStack
Summary:
I want to be able parse error stacks in contexts where I have a call stack string but no error object.

This diff changes parseErrorStack to only accept the stack, instead of a whole error object.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D22752048

fbshipit-source-id: b4b1cd58802eefe736130d48a82bc091241a11ee
2020-07-27 13:57:58 -07:00
Samuel Susla b08fff6f86 Fix race condition in KeyboardAvoidingView
Summary:
Changelog: Fix possible race condition inside `KeyboardAvoidingView`

Fabric has different order of events

In Fabric, `keyboardWillChangeFrame` event is fired before `onLayout`, but in Paper it is the other way around.
`KeyboardAvoidingView` depends on the order of events to function properly. Inside `_relativeKeyboardHeight` 0 is returned if `this._frame` is null.

To fix this, `bottom` margin is recalculated whenever `keyboardWillChangeFrame` or `onLayout` is triggered.

Reviewed By: shergin

Differential Revision: D22764192

fbshipit-source-id: 591ac59af4395a4d43c4e78e4fbc0ff118b292f8
2020-07-27 13:16:38 -07:00
Christoph Nakazawa ab56ed7d96 Create @react-native/normalize-color package
Summary: Changelog: [Internal]

Reviewed By: TheSavior

Differential Revision: D22644750

fbshipit-source-id: f1b24c7e72819650517b7b42f93eeeed9c1e627b
2020-07-24 08:36:37 -07:00
Christoph Nakazawa 63377fa66b Add @react-native/assets package for Asset Registry related code
Summary: Changelog: [Internal]

Reviewed By: GijsWeterings

Differential Revision: D22628865

fbshipit-source-id: 66ff311b2dab4e0c42f906d5a2642997b1570ae4
2020-07-23 05:07:40 -07:00
Peter Argany 91d16bbd9f Hardcode @available(iOS 10) to YES
Summary:
RN removed support for iOS 9 last year, therefore iOS10+ is always available.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D22655069

fbshipit-source-id: 77e85e0403ea7ea0febc8766c10bb6f94ea417ad
2020-07-22 11:00:32 -07:00
Rubén Norte 4409642811 Migrate large amount of modules to flow strict and strict-local
Summary:
| Group | Before | After | Change |
| Untyped | 50 | 49 | -1 |
| flow | 197 | 155 | -42 |
| flow strict-local | 226 | 185 | -41 |
| flow strict | 33 | 117 | +84

Changelog: [Changed] Improved Flow typing of multiple modules (with migrations to `flow strict` and `flow strict-local`

Reviewed By: motiz88

Differential Revision: D22549140

fbshipit-source-id: ed29415332cfce15b244ee4dea9e13d035543175
2020-07-22 09:46:16 -07:00
Christoph Nakazawa 09a11202e5 Clean up assetPathUtils code
Summary:
Cleaning up a bunch of legacy JS (var) and removing some variable names for stuff that is just used once.

Changelog: [Internal]

Reviewed By: GijsWeterings

Differential Revision: D22627397

fbshipit-source-id: 783af84b17cbf37df3b8e2ae10bb39d50dd8180d
2020-07-22 03:02:45 -07:00
Christoph Nakazawa a77f2c40d1 Create @react-native/polyfills package.
Summary: Changelog: [Internal]

Reviewed By: GijsWeterings

Differential Revision: D22625944

fbshipit-source-id: 1d97550c92115eb637da57e8f38c28e8139f3a8b
2020-07-22 03:02:45 -07:00
Tom Cheung 123423c2a9 Fix image cannot show in iOS 14 (#29420)
Summary:
This PR is to fix https://github.com/facebook/react-native/issues/29279, which image cannot show in iOS 14
As https://github.com/facebook/react-native/issues/29279#issuecomment-658244428 mention, this issue can be fixed by calling ` [super displayLayer:layer];` it it is still image, to let `UIImageView` handle still image rendering

## Changelog

[iOS] [Fixed] - Fix image cannot show in iOS 14

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

Test Plan:
Image can be shown in iOS 14 build with Xcode 12 beta, using
```js
<Image source={require('./images/some_local_image.jpg')}/>
```

It may also need to test gif image is render correctly
```js
<Image source={{uri: 'https://some_remote_gif_image.gif'}}/>
```

Reviewed By: p-sun

Differential Revision: D22619448

Pulled By: shergin

fbshipit-source-id: f4d0ad83af945a6b8099d4eaea5a5f1933c7bfd2
2020-07-19 21:35:22 -07:00
Jayesh Kawli b78d7051e5 Moved ART iOS files to FB internal
Summary:
As a part of the "Lean Core" effort we are moving many React Native open source modules into React Native. Through this task, we reduced the app size of all React Native applications!

For this task, I moved the ART iOS files to Facebook internal.

Changelog:
[iOS][Changed] - Moved ART iOS files from React Native to Facebook internal

Reviewed By: PeteTheHeat

Differential Revision: D22560856

fbshipit-source-id: 4ed982b0361fef3e875374b6c3df0204037c2bfa
2020-07-19 13:59:06 -07:00
Tommy Nguyen 15dda0ab5a Fix multiline TextInput crash when inserting/removing lots of text (#29307)
Summary:
Multiline `TextInput` can crash when really long texts are inserted and removed quickly. This is caused by the fact that [`-[NSAttributedString string]`](https://developer.apple.com/documentation/foundation/nsattributedstring/1412616-string?language=objc) doesn't really return a copy, and may mutate the string while it is being used by `convertIdToFollyDynamic`. See https://github.com/microsoft/react-native-macos/pull/489#discussion_r451789471 for more details on the issue.

This issue was originally reported in https://github.com/microsoft/react-native-macos/issues/486 and was fixed in https://github.com/microsoft/react-native-macos/pull/489.

## Changelog

[iOS] [Fixed] - Fix multiline TextInput crash when inserting/removing lots of text

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

Test Plan:
1. Open RNTester > TextInput
2. Search for a multiline example
3. Copy some large text and paste it into the text input view
4. Remove some (or all) text
5. Repeat steps 3-4

Reviewed By: shergin

Differential Revision: D22488854

Pulled By: JoshuaGross

fbshipit-source-id: 6fab7818d68538450d93460361ff5934caf86c10
2020-07-16 22:29:19 -07:00
Peter Argany 3137c443f4 Use more inclusive language in Animated
Summary:
This appears to be the only usage of whitelist/blacklist in react-native-github, let's use some more inclusive language.

Changelog: [JS][Internal]

Reviewed By: kacieb

Differential Revision: D22539431

fbshipit-source-id: 21d4cd54a5a2a676996ccec7b02ef15c421efee1
2020-07-16 16:01:51 -07:00
Joshua Gross d61a8b7bb8 Pressable Views should not be flattened
Summary:
In Fabric if you use a Pressable or PressableBackground and only provide an `onPress` but don't provide background color or anything else, the View might be flattened away and with it the event handlers.

We assume that if the product engineer is using a Pressable, they want it to do something in the View hierarchy, so force it to never be flattened.

Changelog: [Internal]

Reviewed By: shergin

Differential Revision: D22557026

fbshipit-source-id: 171c5b51e8d828fbb2816685d188286179a10af9
2020-07-15 18:50:54 -07:00
David Vacca 61cd596137 Remove unused dependency
Summary:
Remove unused dependency

changelog: [Internal]

Reviewed By: JoshuaGross

Differential Revision: D22470766

fbshipit-source-id: e49180d1a9eb01e8380fb2bde16b8d4378018693
2020-07-14 21:27:38 -07:00
simek e5a8f4270e fix StatusBar showHideTransition flow type issue (#29034)
Summary:
This small PR adds third, missing [`StatusBarAnimation`](https://github.com/facebook/react-native/blob/master/Libraries/Components/StatusBar/StatusBar.js#L45) possible value to the `showHideTransition` prop validation - `'none'`.

This fixes the following issue when `<StatusBar showHideTransition="none" />` code  is used:

<img width="970" alt="Screenshot 2020-06-02 at 22 39 37" src="https://user-images.githubusercontent.com/719641/83567510-f6b85200-a521-11ea-9f1c-48825d0285bf.png">

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

[iOS] [Fixed] - fix StatusBar showHideTransition flow type issue

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

Test Plan: I have run the `flow` check in the test project which uses local working copy of `react-native` with this change included.

Reviewed By: GijsWeterings

Differential Revision: D22493825

Pulled By: cpojer

fbshipit-source-id: 463badec67e6725cb8711a79aa43d84f9b09f796
2020-07-14 08:38:39 -07:00
simek 1c634a9218 move Hermes badge from template to NewAppScreen library (#28783)
Summary:
Refs https://github.com/facebook/react-native/issues/28711

This PR moves Hermes badge component from the template to the `NewAppScreen` library. The main motivation behind this change was to simplify a bit template code.

I assumed that it is not important to expose `global.HermesInternal` to the template users:
* If this assumption is true, I think that there are no other reason to leave this component inside `App` in comparison to other `NewAppScreen` components,
* If this assumption is false, I can adjust this PR and move `HermesInternal` check from the badge component to the `App`.

I was trying to avoid calling `useColorScheme` when Hermes is disabled, but placing hook inside the conditional branch causes ESLint warning (react-hooks/rules-of-hooks).

This PR includes also small style tweaks for the badge - since there are no background padding can be omitted and spacing can be added adjusted tweaking `top` and `left` properties and `fontSize` has been adjusted just for the readability.

In the last commit, I have gone a bit further and moved `HermesBadge` to the `Header` component and I have also changed slightly the `Header` title (React -> React Native) and it's styling.
> I'm not sure if after this change `HermesBadge` export in `NewAppScreen` components list is still required, but maybe this badge will be useful for someone. If it's a mistake I can update the PR and remove this export.

## Changelog

[Internal][Changed] move Hermes badge from the template to the NewAppScreen library

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

Test Plan:
Template app do not redbox on Android emulator with and without Hermes enabled.

## Preview
Android with Hermes enabled and adjusted header:

![Screenshot_1588164908](https://user-images.githubusercontent.com/719641/80599357-16dc8900-8a2b-11ea-8b3e-9a2cb26d3470.png)

iOS with adjusted header:

![IMG_6551](https://user-images.githubusercontent.com/719641/80599445-3bd0fc00-8a2b-11ea-8215-318625ddad13.PNG)

Reviewed By: GijsWeterings

Differential Revision: D22493822

Pulled By: cpojer

fbshipit-source-id: 3440e10f2d59f268ca8851a6e002f0ff23fa839c
2020-07-14 06:29:00 -07:00
makitake2013 320398afe5 Test fixes related to changes in Jest's Fake Timer behavior (#29011)
Summary:
Fixed tests related to changing Jest's fake timer behavior.
And some of the test code in LogBoxData-test.js itself was incorrect so I am fixing it.

LogBoxData-test.js fails when I try to build a new local development environment and fork the React Native source to run a JavaScript test.
The error message is:
runAllImmediates is not available when using modern timers

After checking, runAllImmediates could not be used with the following modification.
https://github.com/facebook/jest/commit/71631f6bf9ccf8937f02a5ecfb64b62712b86c19

## Changelog

[Internal] [Fixed] - Test fixes related to changes in Jest's Fake Timer behavior

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

Test Plan: Ran JavaScript Tests locally.

Reviewed By: cpojer

Differential Revision: D22494991

Pulled By: rickhanlonii

fbshipit-source-id: 4deeaf82b5092ff8b60c4606eb45549beb452a5f
2020-07-12 00:28:53 -07:00
Rick Hanlon 8e6e83be0c Switch to react-shallow-renderer
Summary:
Replace react-test-renderer/shallow with react-shallow-renderer.

We should follow up with teams to remove these tests because they will no longer be supported. I would have just removed them but test like `BillingReauthorizeCreditCardContainer-test` seem important.

Changelog: [Internal]

Reviewed By: cpojer

Differential Revision: D22225642

fbshipit-source-id: a6bd559311422cb14576a574165ed7dc0279919d
2020-07-10 14:06:38 -07:00
David Vacca d5bc0a7bff Fix inconsistency on AndroidTextInput view configs
Summary:
BubblingEventTypes are inconsistent between AndroidTextInputViewConfig.js and ReactTextInputManager.java, this diff fixes this inconsistency

changelog: [internal]

Reviewed By: JoshuaGross

Differential Revision: D22470096

fbshipit-source-id: 3940dcc0ae67a42ac070c06ec2d54bc365eab6b7
2020-07-09 22:20:53 -07:00
Tim Yung caf010914c RN: Remove fbjs/performanceNow Dependency
Summary:
Replaces `fbjs/performanceNow` call sites in React Native with `performance.now`.

We did not originally polyfill this in `InitializeCore`, but now we do (and back it with a proper `nativePerformanceNow` implementation). Also, added the missing polyfill to our Jest setup.

Changelog:
[Internal]

Reviewed By: cpojer

Differential Revision: D22445948

fbshipit-source-id: dcfd9867c050617f6e2a3d0a1eb6f48a44771dda
2020-07-09 11:40:57 -07:00
Tim Yung ae193942fe RN: Remove fbjs/{keyMirror,keyOf} Dependencies
Summary:
Removes `fbjs/keyMirror` and `fbjs/keyOf` call sites from React Native.

Changelog:
[Internal]

Reviewed By: cpojer

Differential Revision: D22438238

fbshipit-source-id: 0f84b6e9d81811f95a2a24886f38ad16b8e6e74f
2020-07-09 11:40:57 -07:00
Rick Hanlon f28c7505fa Fix LogBox.ignoreAllLogs used with no argument (#29310)
Summary:
When you call `LogBox.ignoreAllLogs()` it should ignore logs.

This fixes a bug that made this equivalent to `LogBox.ignoreAllLogs(false)`

## Changelog

[General] [Fixed] - LogBox.ignoreAllLogs() should ignore logs

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

Test Plan: Added tests

Reviewed By: TheSavior

Differential Revision: D22448436

Pulled By: rickhanlonii

fbshipit-source-id: 6ba12b9d9c1f29cf3ac503946ac5ca0097425a7a
2020-07-08 18:51:58 -07:00
Hein Rutjes cfa4260598 Add support for shadowColor on Android (API >= 28) (#28650)
Summary:
This PR adds support for the `shadowColor` style on Android.

This is possible as of Android P using the `setOutlineAmbientShadowColor` and `setOutlineSpotShadowColor` View methods. The actual rendered color is a multiplication of the color-alpha, shadow-effect and elevation-value.

## Changelog

`[Android] [Added] - Add support for shadowColor on API level >= 28`
Pull Request resolved: https://github.com/facebook/react-native/pull/28650

Test Plan:
- Only execute code on Android P
- Added Android `BoxShadow` tests to RNTester app

![image](https://user-images.githubusercontent.com/6184593/79457137-fe627c80-7fef-11ea-8e88-3d9423a4f264.png)

Reviewed By: mdvacca

Differential Revision: D21125479

Pulled By: shergin

fbshipit-source-id: 14dcc023977d7a9d304fabcd3c90bcf34482f137
2020-07-07 23:32:38 -07:00
Ramanpreet Nara a27c295f53 Rename RCTTurboModuleLookupDelegate to RCTTurboModuleRegistry
Summary:
## Why?
1. RCTTurboModuleLookupDelegate sounds a bit nebulous.
2. In JS and Java, we use a `TurboModuleRegistry` interface to require TurboModules. So, this diff will make JS, Java, and ObjC consistent.

Changelog:
[Internal]

Reviewed By: PeteTheHeat

Differential Revision: D22405754

fbshipit-source-id: 30c85c246b39d198c5b8c6ca4432a3196ca0ebfd
2020-07-07 16:25:11 -07:00
Sean Wang 824d3a9770 Move iOS CameraRoll files into FB internal
Summary:
This moves ios CameraRoll files from React Native open source into FB internal as part of the Lean Core effort.

Changelog: [Breaking][ios] Remove CameraRoll from React Native

Reviewed By: cpojer

Differential Revision: D22208352

fbshipit-source-id: 894d6aff34ece94648dad68060c13b44974c93bb
2020-07-06 20:22:25 -07:00
Christoph Nakazawa 6d6c68c2c6 "The Metro Server" -> Metro
Summary:
Pet Peeve: Metro is a brand name. You don't say "the Metro server" just like you don't say "the iPhone phone". This is a leftover from when it used to be called "the packager server".

Note: It makes sense to refer to "the Metro server" when talking about it in the context of Metro's features, like if you are discussing "Metro's bundling" and "Metro's server". However, when talking about the tool itself, just Metro is enough.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D22330966

fbshipit-source-id: 667618363c641884df543d88cac65d1e44956ad3
2020-07-02 14:51:18 -07:00
Riley Dulin 3c3f8ca270 Add a special case for assert in installConsoleFunction
Summary:
The Hermes inspector always logged the message for `console.assert`.
It instead should check the first argument, and only if that argument
is false should it log.

Also remove the polyfill code that tried to avoid this situation.

Changelog: [Internal]

Reviewed By: mhorowitz

Differential Revision: D22299186

fbshipit-source-id: cdf4f8957d4db3d171d6673a82c7fc32b7152af3
2020-06-30 21:15:52 -07:00
Lulu Wu 0471f90f16 Change onAssetDidLoad to bubbling event
Summary:
onAssetDidLoad is defined as bubbling event in iOS, change it to bubbling event and adde it to bubblingEventTypes to fix "missing: topAssetDidLoad" error in Viewpoints iOS.

Changelog: [Internal]

Reviewed By: JoshuaGross, mdvacca

Differential Revision: D22209406

fbshipit-source-id: 5da779d9d1d62c70d85d84ad80807ff688e29e2f
2020-06-30 06:40:23 -07:00
Samuel Susla 3d4535a2bb Introduce InputAccessoryView
Summary:
Changelog: [Internal]

Introducing InputAccessoryView.

There is one big difference between Fabric's implementation and Paper's implementation.

Fabric searches for text input from InputAccessoryView, unlike Paper where it is the other way around.

Reviewed By: shergin

Differential Revision: D22160445

fbshipit-source-id: 55313fe50afeced7aead5b57137d711dd1cfd3ae
2020-06-30 01:36:04 -07:00