Skip to content
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

Support custom android buildPatch with react-native link #15451

Closed
wants to merge 479 commits into from
Closed

Support custom android buildPatch with react-native link #15451

wants to merge 479 commits into from

Conversation

chrisbianca
Copy link

@chrisbianca chrisbianca commented Aug 10, 2017

This PR: 5f14088 added support for more complex compile statements in build.gradle such as:

compile(project(':example') { … }

However, whilst react-native link can now detect the presence of such a compile statement, there is no way for a library developer to specify a compile statement of this format as part of their library linking. In our react-native-firebase library, we have such a requirement and need to be able to add the following:

    compile(project(':react-native-firebase')) {
        transitive = false
    }

This change adds an additional buildPatch option for the rnpm settings in a library's package.json file as follows:

  "rnpm": {
    "android": {
      "buildPatch": "    compile(project(':react-native-firebase')) {\n        transitive = false\n    }\n"
    }
  }

Test Plan

This commit adds additional test cases to makeBuildPatch.spec.js to validate that the buildPatch is correctly built in the instance where a buildPatch is supplied and to ensure backwards compatibility when it is not supplied.

I have also manually validated that the configuration works for react-native-firebase by applying the patch locally and running react-native link.

@facebook-github-bot facebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. GH Review: review-needed labels Aug 10, 2017
javache and others added 27 commits September 11, 2017 04:30
Reviewed By: fromcelticpark

Differential Revision: D5536063

fbshipit-source-id: b0f19bebea839c7da84890c338ad4d38293bc99c
Reviewed By: leebyron

Differential Revision: D5748304

fbshipit-source-id: c66df45f1f35333f994c41eb8ff4cfccc1bb04d4
Summary:
Apps targeting Android 8.0 (API level 26) cannot use `TYPE_SYSTEM_OVERLAY ` and `TYPE_SYSTEM_OVERLAY `. Targeting 26 will cause the app to crash when in `DEV_MODE`.

https://developer.android.com/about/versions/oreo/android-8.0-changes.html#cwt

This PR replaces uses of these overlay flags with the new `TYPE_APPLICATION_OVERLAY` when running on a device with Android 8.0 or later.

When using `TYPE_APPLICATION_OVERLAY` it still requires the `SYSTEM_ALERT_WINDOW` permission, just like previous android versions.
https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#TYPE_APPLICATION_OVERLAY

https://github.com/AndrewJack/react-native-android-oreo tested here
Closes #15601

Reviewed By: achen1

Differential Revision: D5801619

Pulled By: shergin

fbshipit-source-id: 27d1b9bb64018e7f12f9c3d3d222f1fda468b124
Reviewed By: raluca-elena, TheSavior

Differential Revision: D5638532

fbshipit-source-id: 8db8210d0d0d08b9423b0a77f6b8e4e290f2eef0
Summary:
ReactRawTextShadowNode represents "raw" text node (aka textContent), so it cannot have layout or styling, it is just a line of text, a pure string.
So, we must not interit it from HUGE ReactTextShadowNode (which represents <Text> node with ReactRawTextShadowNode instance inside).
We need this change to make future fancy (and valuable from product perspective) refactoring possible. Stay tuned!

Reviewed By: achen1

Differential Revision: D5712961

fbshipit-source-id: 009e48046bdf34ddfd40b93175934969af64b98b
Summary:
Abstract class `ReactBaseTextShadowNode` was decoupled from `ReactTextShadowNode` to separate two goals/roles:
 * `ReactBaseTextShadowNode` represents spanned `<Text>` nodes, which can bear text attributes (both `RCTText` and `RCTVirtualText`);
 * `ReactTextShadowNode` represents anchor `<Text>` view in Yoga terms, which can bear layout attributes (`RCTText` and `RCTTextInput`).

`ReactVirtualTextShadowNode` now inherits `ReactBaseTextShadowNode`.
The same architectural changes was applited to view managers.

Why?
 * This is just a better architecture which represents the nature of this objects.
 * Bunch of "negative" logic which turn off excessive features for some suclasses was removed.
 * Memory efficiency.
 * Now we can improve `<TextInput>` component using right inheritance. Yay!

Reviewed By: achen1

Differential Revision: D5715830

fbshipit-source-id: ecc0764a03b5b7586fe77ad31f149cd840f4da41
Reviewed By: achen1

Differential Revision: D5807055

fbshipit-source-id: f79579d4cffb9792f49f89a7fb8f7df8e082a3a9
Summary:
Hi guys,

A small typo found in the doc :)
Closes #15888

Differential Revision: D5809251

Pulled By: TheSavior

fbshipit-source-id: 7a2ca8f2cbca81aa2059ee619a8c6087256e39a6
Summary:
This line accidentally became a no-op when the Map was converted to an Object.
Closes #15891

Differential Revision: D5811069

Pulled By: TheSavior

fbshipit-source-id: 43ac1835d15e2bee67ee45646bc238f917013836
Summary:
This diff renames all the stragglers in comments and strings from variations of "packager" to "Metro Bundler". I did one of three:

* Rename "packager" to "Metro Bundler"
* Rename "react-native-packager" to "Metro Bundler"
* Remove "packager" when code inside of Metro implies that it's about Metro

I also removed `Glossary.md` because it is unmaintained and very old. mjesun is currently starting to write documentation for Metro which will supersede whatever was there before.

Reviewed By: mjesun

Differential Revision: D5802993

fbshipit-source-id: ba99cb5ed04d84b0f7b7a8a0bf28ed99280a940a
Summary:
Previously type Options had excludeActivityTypes property, but in RCTActionSheetManager.m and docs this property is named excludedActivityTypes.

<!--
Thank you for sending the PR! We appreciate you spending the time to work on these changes.

Help us understand your motivation by explaining why you decided to make this change.

You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html

Happy contributing!

-->

Want to fix error in flow types

Actually, it seems there aren't any need for test plan for this PR. Just fix a mistyping error.
Closes #15881

Differential Revision: D5813539

Pulled By: ericnakagawa

fbshipit-source-id: 7d1269d4c177f920869bf6554f14af6db7a741ee
Summary:
Updates the flow typing to return Promise\<string\> instead of Promise\<Object\>. To validate that it actually does return a string, see https://github.com/facebook/react-native/blob/6493a857542c0985470311511c1be80982fcd474/Libraries/CameraRoll/RCTCameraRollManager.m#L98 and https://github.com/facebook/react-native/blob/6493a857542c0985470311511c1be80982fcd474/Libraries/CameraRoll/RCTCameraRollManager.m#L116
Closes #15631

Differential Revision: D5714842

Pulled By: shergin

fbshipit-source-id: fb141b014c262bc4fb44419515e56bbe0641d8bf
Summary:
Node 8 is stable and newer and also gives us test coverage for npm 5, which is probably better to use for the E2E tests.
Closes #15904

Differential Revision: D5814784

Pulled By: hramos

fbshipit-source-id: 5b57293e804e1626fd20c200ed54c7210a6ad915
Summary:
**PR changes**
The RCTText class originally overrode the accessibilityLabel and returned the raw text of the class ignoring if the accessibilityLabel was set explicitly in code.
Example:
  <Text accessibilityLabel="Example"> Hello World </Text> // returns "Hello World" instead of "Example" for the accessibility label

My update checks if the super's accessibilityLabel is not nil and returns the value else it returns the raw text itself as a default to mirror what a UIKit's UILabel does. The super's accessibilityLabel is nil if the accessibilityLabel is not ever set in code. I don't check the length of the label because if the value was set to an empty purposely then it will respect that and return whatever was set in code.
With the new changes:
  <Text accessibilityLabel="Example"> Hello World </Text> // returns "Example" for the accessibilityLabel

This change doesn't support nested <Text> components with both accessibilityLabel's value set respectively. The parent's value will return.
Example:

  // returns "Example" instead of "Example Test" for the accessibility label
  <Text accessibilityLabel="Example">
    Hello
    <Text accessibilityLabel="Test">
      World
    </Text>
  </Text>

The workaround is just to set the only the parent view's accessibilityLabel with the label desired for it and all its nested views or just not nest the views if possible.
I believe a bigger change would be needed to support accessibility for nested views, for now the changes I have made should satisfy the requirements.

Reviewed By: shergin

Differential Revision: D5806097

fbshipit-source-id: aef2d7cec4657317fcd7dd557448905e4b767f1a
Summary:
Minor documentation correction for the native components iOS API section.

Before: "Sometimes your native component will have some special properties that you don't want to them to be part of the API"

After: "Sometimes your native component will have some special properties that you don't want to be part of the API"

Confirm section renders correctly via markdown.
Closes #15914

Reviewed By: TheSavior

Differential Revision: D5817146

Pulled By: buymeasoda

fbshipit-source-id: 075441cf7f5f23a4ca512bae48ca8fc319762b1e
Summary:
Currently, having the property `pointerEvents={'box-only'}` marks a view as layoutOnly. For optimization reasons, layoutOnly nodes are [not added to the node hierarchy](https://github.com/facebook/react-native/blob/b103903ec869bc48dfcaf001dc926957d0b5200a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java#L99) The problem is that should this box ever need to be [transitioned to not-layout-only](https://github.com/facebook/react-native/blob/b103903ec869bc48dfcaf001dc926957d0b5200a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java#L394) (for example, because you add the a CSS transform property),  it must be added to the hierarchy. To add it to the hierarchy the [React Styles Diff Map](https://github.com/facebook/react-native/blob/b103903ec869bc48dfcaf001dc926957d0b5200a/ReactAndroid/src/main/java/com/facebook/react/uimanager/NativeViewHierarchyOptimizer.java#L396) is passed along with the backing shadowNode to create the node. The problem is that at no point were the original `pointerEvents` and so the new node will be created with `pointerEvents =  'auto'`.

A more correct fix to this problem might be to have shadowNodes carry around their pointerEvents, although this is likely a greater design decision which is why am I proposing the quick fix now.

Will also resolve: react-native-modal/react-native-modal#11
Closes #15529

Reviewed By: AaaChiuuu

Differential Revision: D5792012

Pulled By: tomasreimers

fbshipit-source-id: 625242c53e16cb293c64811a57f6c3905b3483e0
Summary:
Remove fallback logic.
It is hard to test whether a bundle is good or bad on device, since it does the fallback, remove the fallback logic now.

Reviewed By: javache

Differential Revision: D5773542

fbshipit-source-id: 8bb4fdad4c5761ccce915f9f1c2577464e8d37d8
…red.

Summary:
**Problem:**

It was observed that in [this code path](https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java#L292) (i.e. horizontal, paging-enabled scroll view) if you tried to programmatically call the scrollTo method within ~1s of the onMomentumScrollEnd event (which should only be called after all scrolling has ended), the scrollView would scroll to the new location, and then scroll BACK to the original location.

For example, assume you had released the scrollView at location B, and the nearest page boundary is A. Then, 1000ms later, you call scrollTo position C. The order of operations would be:

1. Begin scrolling to A from position B (as it is the nearest page boundary)
2. Reach position A
3. Fire onMomentumScrollEnd
4. 1000ms later call scrollTo C
5. scrollView scrolls to C
6. scrollView scrolls BACK to position A (for no apparent reason).

**Reason:**

I suspect this is because the [smoothlyScrollTo](https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java#L292) will continue to animate towards A, but the [scrollEvents will not fire](https://github.com/facebook/react-native/blob/f954f3d9b674b13977f722bc3b8dc6c1b99fe6c7/ReactAndroid/src/main/java/com/facebook/react/views/scroll/OnScrollDispatchHelper.java#L45) as they are too close to each other. So the true order of events is:

1. Begin scrolling to A from position B (as it is the nearest page boundary)

[begin smoothlyScrollTo]
[scroll towards position A]
[mActivelyScrolling is true]

2. Reach position A

[mActivelyScrolling is true]
[scroll towards position A]
[mActivelyScrolling is false, as there is another scrollEvent, but because it is close enough to the same location it is ignored]

3. Fire onMomentumScrollEnd
4. 1000ms later call scrollTo C

[scroll towards position C]

5. scrollView scrolls to C

[scroll towards position A as the original smoothlyScrollTo animation was never completed]

6. scrollView scrolls BACK to position A.

This is an untested hypothesis, but seems to explain the behavior, and the solution is more semantically correct anyway. If there is an easy way to rebuild the android binaries happy to test it myself! Just let me know!

**Solution:**

 Move the mActivelyAnimating outside the mOnScrollDispatchHelper.onScrollChanged helper, because the HorizontalScrollView event should be considered to be animating so long as onScrollChanged events are being fired.
Closes #15146

Reviewed By: AaaChiuuu

Differential Revision: D5792026

Pulled By: tomasreimers

fbshipit-source-id: 9654fda038d4a687cc32f4c32dc312baa34627ed
Summary:
<!--
Thank you for sending the PR! We appreciate you spending the time to work on these changes.

Help us understand your motivation by explaining why you decided to make this change.

You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html

Happy contributing!

-->

Adding example with [react-native-web-player](https://github.com/dabbott/react-native-web-player)

Screenshot on http://localhost:8079/react-native/docs/touchableopacity.html
![react-native-touchableopacity](https://user-images.githubusercontent.com/13135332/30335218-bd32fb0e-9807-11e7-976d-5235402fdba8.png)
Closes #15911

Differential Revision: D5817180

Pulled By: TheSavior

fbshipit-source-id: 6399a53dabf8e3f0cf680aeb41d8afbaa2ce11e8
Reviewed By: dinhviethoa

Differential Revision: D5802851

fbshipit-source-id: 78e4b375bd0a0ed48d30bfb7fc746de6a2bd999e
Reviewed By: yungsters, TheSavior

Differential Revision: D5813153

fbshipit-source-id: f086e1fc5ea3d6fd9e6aa5fbd150d1ae9787cced
Summary:
This fixes the regression recently introduced during refactoring of text-related classes.
So, added fragment of code was lost in D5715830.
See how it looked before:
https://github.com/facebook/react-native/blob/9f5bdd7b497427506dab753ed12017900cb5ffe7/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java#L424-L431

Reviewed By: TheSavior

Differential Revision: D5827424

fbshipit-source-id: 5df99620057ff6a27105dd05903c7f5def85c5d2
Summary:
Fixing #13578

<!--
Thank you for sending the PR! We appreciate you spending the time to work on these changes.

Help us understand your motivation by explaining why you decided to make this change.

You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html

Happy contributing!

-->

(Write your motivation here.)

(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work. Bonus points for screenshots and videos!)
Closes #15419

Reviewed By: sahrens

Differential Revision: D5795844

Pulled By: tomasreimers

fbshipit-source-id: 4cdf97a2f5e83e38f4e12af771b512e7dddd212a
Summary:
iOS 11 now requires this to be accessed on the main thread.
I think this is causing tests to fail, as the Main Thread Checker is turned on there.

Reviewed By: javache

Differential Revision: D5826570

fbshipit-source-id: 6acb7174c756a2ad657602f14c666f71b1ee8fe9
Reviewed By: rachit-siamwalla

Differential Revision: D5828898

fbshipit-source-id: 23fa587bcd1d1b6c612cc816f1aa7b03da0c187d
…ules

Summary:
This PR refactors the symlink finding logic in local-cli in order to support nested symlinked modules as well as symlinked scoped NPM modules.

Run tests, or try project with `npm link`'ed or `yarn link`'ed dependencies.
Closes #15776

Reviewed By: cpojer

Differential Revision: D5823008

Pulled By: jeanlauliac

fbshipit-source-id: f2daeceef37bed2f8a136a0a5918730f9832884c
Summary: babel-plugin-react-transform@3 includes support for HMR on `React.PureComponent`: gaearon/babel-plugin-react-transform#106

Reviewed By: davidaurelio

Differential Revision: D5814322

fbshipit-source-id: 36e83ffa00f9d4ff079665aec1e8341725811a8e
@facebook-github-bot
Copy link
Contributor

@chrisbianca I tried to find reviewers for this pull request and wanted to ping them to take another look. However, based on the blame information for the files in this pull request I couldn't find any reviewers. This sometimes happens when the files in the pull request are new or don't exist on master anymore. Is this pull request still relevant? If yes could you please rebase? In case you know who has context on this code feel free to mention them in a comment (one person is fine). Thanks for reading and hope you will continue contributing to the project.

shergin and others added 20 commits October 9, 2017 10:46
Summary: It saves 8 bytes per shadowView instance, and it is more logical because it does nothing by default.

Reviewed By: javache

Differential Revision: D5997804

fbshipit-source-id: c985a11aeea881e95911469e10c8c27429a2718a
Reviewed By: rsnara

Differential Revision: D6015068

fbshipit-source-id: 3c2cd902457e32dab843764267a1475a078eb64d
Summary:
RCTWrapper is a library that allows turn any UIView/UIViewController-based widget into React Native component
which will respect layout constrains of native (wrapped) view.
So, you don't need to explicitly specify width and hight in styling.

Take a look at examples to see how to use RCTWrapper.

Reviewed By: mmmulani

Differential Revision: D5868763

fbshipit-source-id: 0a503b42be166d547ca6cbf0829eea9c75a8e364
Summary: It was deprecated awhile ago.

Reviewed By: javache

Differential Revision: D5990505

fbshipit-source-id: 68deefb76fee31a49bfe832e281dc8ee11061cb8
Summary: It was deprecated awhile ago.

Reviewed By: javache

Differential Revision: D5990504

fbshipit-source-id: a218410d17f5f450d573338522b689e035106aba
Summary:
CI is currently failing because of a lint issue, this fixes it and a bunch of other warnings that are auto-fixable.

**Test plan**
Quick manual test, cosmetic changes only.
Closes #16229

Differential Revision: D6009748

Pulled By: TheSavior

fbshipit-source-id: cabd44fed99dd90bd0b35626492719c139c89f34
Summary:
<!--
Thank you for sending the PR! We appreciate you spending the time to work on these changes.

Help us understand your motivation by explaining why you decided to make this change.

You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html

Happy contributing!

-->

Current documentation was outdated.

Follow the swift section with a recent version of RN and see that it works?
Closes #16260

Differential Revision: D6017759

Pulled By: hramos

fbshipit-source-id: 5d3ea56b08427694016c39b7ace5b2d5c63c1f4c
Summary:
When Jest is mocking native components that are assigned a ref with an arrow function, a warning is generated about stateless components which can not have a ref. This does not happen when the ref is assigned directly.

Fixes #16045.
<!--
Thank you for sending the PR! We appreciate you spending the time to work on these changes.

Help us understand your motivation by explaining why you decided to make this change.

You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html

Happy contributing!

-->

The test provided in the related issue is used to validate the fix. I don't know how to detect console warnings in a Jest test.
Closes #16046

Differential Revision: D6017903

Pulled By: ericnakagawa

fbshipit-source-id: a7ed61c39f141a4094f08fc875289a7a79ebe9e8
Summary:
This information could be found already in older docs see https://facebook.github.io/react-native/releases/0.21/docs/running-on-device-android.html#accessing-development-server-from-device. It is missing from latest.

I think it's important alternative since shaking my device all the time borked my USB port
Closes #16241

Differential Revision: D6017905

Pulled By: shergin

fbshipit-source-id: 9426b4068a6bc60aed50f85b2f596d0494def52a
Summary:
The `finally` method definition was missing, while it really exists causing a flow error when using it.

Added the method definition and make sure flow doesn't throw any error anymore on a real-life example.
Closes #16115

Differential Revision: D6017950

Pulled By: shergin

fbshipit-source-id: 296f3467152eb6eedac817a89cf075e9f906a389
Summary:
Issue #16255

Remove broken links
Closes #16262

Differential Revision: D6017751

Pulled By: hramos

fbshipit-source-id: a9465a8a8212dc7b5e1aae21c73b46e60e24c10e
Summary:
Since alignItem works on the secondary axis, in the example, the value heigth: 50 should be deleted so that alignItem: 'stretch' can work. Not width: 50. In fact, width needs to be there, or else no component will be shown at all.

<!--
Thank you for sending the PR! We appreciate you spending the time to work on these changes.

Help us understand your motivation by explaining why you decided to make this change.

You can learn more about contributing to React Native here: http://facebook.github.io/react-native/docs/contributing.html

Happy contributing!

-->

(Write your motivation here.)

I'm going through the docs, that's why I found this. It's already tested!

Apologize if I'm contributing the wrong way. I read the instructions, but this is my first time ever, and will try to do it again correctly if needed.
Closes #16109

Differential Revision: D6017969

Pulled By: shergin

fbshipit-source-id: af37b831f1bb6206dabdaff36d4cb9e88fb1a496
Summary:
FIX #11142

This fixes #11142 and supersedes #11155 as I was unsure how to add/change commits in that PR.

Wrote up a bunch of unit tests for the ImageStore module. The added tests showed that there was indeed a problem with the flags used for the Base64OutputStream, and they also show that that has been fixed now.
Closes #13856

Differential Revision: D6017764

Pulled By: shergin

fbshipit-source-id: adf667dc722ddfe31449afd8cd20a0a192eacff6
Summary:
RCTImageStoreManager and RCTBlobManager have the same priority, hence in certain cases, both are able to handle the request, but this causes non-deterministic behavior. Hence increased ImageStoreManager's Priority to 1 and thereby increasing RCTImageLoader's Priority to 2 to prevent similar issue of same priorities.

Issue: #16159
Closes #16160

Differential Revision: D6017931

Pulled By: shergin

fbshipit-source-id: 91f2737af4f2f97197734b696105e1cdc5683365
Reviewed By: furdei

Differential Revision: D5958119

fbshipit-source-id: 79b431a8422d60134890d44e99c358a07a5adc5b
Summary:
I noticed that section headers in SectionList don't stick at correct position in case of using with contentInset and contentOffset. (See the demo below. It looks that contentInset.top is ignored.)
This is a common case of use of NavigationBar and TableView on iOS.

![](https://user-images.githubusercontent.com/143255/29018708-1e2f98aa-7b97-11e7-9599-19dbb832266d.gif)

Here is a demo and an example code:

![](https://user-images.githubusercontent.com/143255/29018753-4201f660-7b97-11e7-9d31-28413d1b6269.gif)

```jsx
import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  SectionList,
} from 'react-native';

export default class RNScrollExample extends Component {
  renderSectionHeader(title) {
    return (
      <View style={styles.sectionHeader}>
        <Text>{title}</Text>
      </View>
    )
  }

  renderItem(content) {
    return (
      <View style={styles.cell}>
        <Text>{`Item ${content}`}</Text>
      </View>
    )
  }

  renderSeparator() {
    return <View style={styles.separator} />
  }

  renderSectionList() {
    const sections = Array.from(Array(10), (e, i) => ({ title: `Section ${i+1}`, data: Array.from(Array(10)).map((e, i) => i+1) }))
    const navigationBarHeight = 64
    return (
      <SectionList
        contentInset={{ top: navigationBarHeight }}
        contentOffset={{ y: -navigationBarHeight }}
        sections={sections}
        keyExtractor={(item, index) => index}
        renderSectionHeader={({ section }) => this.renderSectionHeader(section.title)}
        renderItem={({ item }) => this.renderItem(item)}
        ItemSeparatorComponent={this.renderSeparator}
      />
    )
  }

  renderHeader() {
    return (
      <View style={styles.header}>
        <Text style={styles.headerText}>Contents</Text>
      </View>
    )
  }

  render() {
    return (
      <View>
        {this.renderSectionList()}
        {this.renderHeader()}
      </View>
    )
  }
}

const styles = StyleSheet.create({
  header: {
    position: 'absolute',
    top: 0,
    left: 0,
    right: 0,
    height: 64,
    paddingTop: 20,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#ffffffcc',
  },
  headerText: {
    fontSize: 16,
    fontWeight: 'bold',
  },
  sectionHeader: {
    paddingHorizontal: 8,
    paddingVertical: 4,
    backgroundColor: '#05bbd3',
  },
  cell: {
    paddingHorizontal: 8,
    paddingVertical: 16,
    backgroundColor: '#82dde9',
  },
  separator: {
    height: 1,
    backgroundColor: '#7d888d',
  },
});

AppRegistry.registerComponent('RNScrollExample', () => RNScrollExample);
```
Closes #15395

Differential Revision: D5988720

Pulled By: shergin

fbshipit-source-id: d33f6ee943d4f913970e26c322b66b3c9c948a02
Summary: We can't use spread syntax here.  Prefer Array.concat().

Reviewed By: sahrens

Differential Revision: D6014142

fbshipit-source-id: d2759893ea2df69975843ae821fb08b16b1d5d7c
facebook-github-bot pushed a commit that referenced this pull request May 3, 2019
Summary:
This sync includes the following changes:
- **[ec6691a68](facebook/react@ec6691a68 )**: Event API: remove isTargetDirectlyWithinEventComponent (#15546) //<Dominic Gannaway>//
- **[a6e30001f](facebook/react@a6e30001f )**: Delete duplicate Focus.js (#15540) //<Dominic Gannaway>//
- **[f7993d547](facebook/react@f7993d547 )**: Delete duplicate Hover.js (#15539) //<Dominic Gannaway>//
- **[c8ee10037](facebook/react@c8ee10037 )**: Delete duplicate Swipe.js (#15541) //<Dominic Gannaway>//
- **[494716c9b](facebook/react@494716c9b )**: Delete duplicate Drag.js (#15537) //<Dominic Gannaway>//
- **[377846fef](facebook/react@377846fef )**: Delete duplicate Press.js (#15538) //<Dominic Gannaway>//
- **[379515e83](facebook/react@379515e83 )**: Follow up to 15535 (#15536) //<Dominic Gannaway>//
- **[bd88982fb](facebook/react@bd88982fb )**: Event API: use `capture` for all event listeners using experimental responder system (#15526) //<Dominic Gannaway>//
- **[72ca3c60e](facebook/react@72ca3c60e )**: Bump scheduler version to 0.14.0 (#15395) //<Andrew Clark>//
- **[7882c41f6](facebook/react@7882c41f6 )**: Use lowercase entry points for event modules (#15535) //<Andrew Clark>//
- **[43c4e5f34](facebook/react@43c4e5f34 )**: Add method for forcing a lower framerate //<Nathan Schloss>//
- **[1b752f191](facebook/react@1b752f191 )**: Fixed potential interaction tracing leak in Suspense thennable memoization (#15531) //<Brian Vaughn>//
- **[12e5a13cf](facebook/react@12e5a13cf )**: [React Native] Inline calls to FabricUIManager in shared code (#15490) //<Eli White>//
- **[2cca18728](facebook/react@2cca18728 )**: React Events: add onFocusVisibleChange to Focus (#15516) //<Nicolas Gallagher>//
- **[cc5a49379](facebook/react@cc5a49379 )**: React Events: FocusScope tweaks and docs (#15515) //<Nicolas Gallagher>//
- **[796c67a25](facebook/react@796c67a25 )**: Event API: responder event types should not re-register on EventComponent update (#15514) //<Dominic Gannaway>//
- **[c4d1dcb53](facebook/react@c4d1dcb53 )**: React Events: core API documentation followup (#15506) //<Dominic Gannaway>//
- **[41ef1961c](facebook/react@41ef1961c )**: Update TopLevelEventTypes.js (#15511) //<Dan Nate>//
- **[7a482af5d](facebook/react@7a482af5d )**: Event API: Fix bug where Press root events were not being cleared (#15507) //<Dominic Gannaway>//
- **[a14e24efa](facebook/react@a14e24efa )**: React Events: core API documentation (#15505) //<Nicolas Gallagher>//
- **[8658611b6](facebook/react@8658611b6 )**: Event API: ensure event keys are unique + add validation (#15501) //<Dominic Gannaway>//
- **[d9839740e](facebook/react@d9839740e )**: React events: remove unused types (#15503) //<Nicolas Gallagher>//
- **[0b3431170](facebook/react@0b3431170 )**: React events: fix press end event dispatching (#15500) //<Nicolas Gallagher>//
- **[d1f667acc](facebook/react@d1f667acc )**: Event API: follow up fixes for FocusScope + context changes (#15496) //<Dominic Gannaway>//
- **[c530639dd](facebook/react@c530639dd )**: Minor code structure adjustments to the bundles.js file (#15079) //<Kunuk Nykjær>//
- **[ed36df46c](facebook/react@ed36df46c )**: add --watch mode to "yarn build" (#15116) //<Alec Larson>//
- **[793ef9b85](facebook/react@793ef9b85 )**: test(eslint-plugin-react-hooks): add coverage for unused custom hook (#15130) //<Redmond Tran>//
- **[d61da9387](facebook/react@d61da9387 )**: test(accumulate): add test suite for accumulate function (#15159) //<Jeffrey Berry>//
- **[a187e9b5e](facebook/react@a187e9b5e )**: React Native: Allow Views to be nested inside of Text (#15464) //<Adam Comella>//
- **[f85aadefc](facebook/react@f85aadefc )**: ADD: disablePictureInPicture attribute for HTML5 videos (#15334) //<Radu-Sebastian Amarie>//
- **[1eb2b892d](facebook/react@1eb2b892d )**: give  `canUseDOM` with a possibility to be a constant (#14194) //<FUJI Goro>//
- **[de26d6dd3](facebook/react@de26d6dd3 )**: typo fix (#15493) //<shubham>//
- **[64e3da286](facebook/react@64e3da286 )**: Event API: Add `FocusScope` surface (#15487) //<Dominic Gannaway>//
- **[3f058debc](facebook/react@3f058debc )**: Event API: various bug fixes (#15485) //<Dominic Gannaway>//
- **[fb28e9048](facebook/react@fb28e9048 )**: Add missing word to code comment for clarity (#15443) //<Brendan McLoughlin>//
- **[fa2fa3564](facebook/react@fa2fa3564 )**: Experimental event API: adds context.isTargetDirectlyWithinEventComponent (#15481) //<Dominic Gannaway>//
- **[d3af2f2a5](facebook/react@d3af2f2a5 )**: Experimental Event API: add event component mount phase callback (#15480) //<Dominic Gannaway>//
- **[ce126fbb2](facebook/react@ce126fbb2 )**: Fix priority inference of next level of work (#15478) //<Andrew Clark>//
- **[71c8759ce](facebook/react@71c8759ce )**: Measure callback timeout relative to current time (#15479) //<Andrew Clark>//
- **[9c6ff136c](facebook/react@9c6ff136c )**: Remove timeout from performance flamegraph (#15477) //<Andrew Clark>//
- **[299a2714c](facebook/react@299a2714c )**: Use stricter equality check (#15474) //<Dan Abramov>//
- **[017d6f14b](facebook/react@017d6f14b )**: Experimental Event API: add `rootEventTypes` support to event responders (#15475) //<Dominic Gannaway>//
- **[784ebd8fa](facebook/react@784ebd8fa )**: Experimental event API: rework the propagation system for event components (#15462) //<Dominic Gannaway>//
- **[587676900](facebook/react@587676900 )**: React events: initial implementation of disabled prop (#15458) //<Nicolas Gallagher>//
- **[59c7aef91](facebook/react@59c7aef91 )**: React events: add a test for focusable descendants (#15457) //<Nicolas Gallagher>//
- **[0a8da3391](facebook/react@0a8da3391 )**: React events: README update types and remove stopPropagation prop (#15456) //<Nicolas Gallagher>//
- **[d584fcdc6](facebook/react@d584fcdc6 )**: React events: use passive events where possible (#15454) //<Nicolas Gallagher>//
- **[051513bfa](facebook/react@051513bfa )**: React Events: consolidate logic for Press event component (#15451) //<Nicolas Gallagher>//
- **[cdfce1ad2](facebook/react@cdfce1ad2 )**: React events: consolidate logic of Hover event component (#15450) //<Nicolas Gallagher>//
- **[5857c89da](facebook/react@5857c89da )**: React events: extract common helper functions (#15449) //<Nicolas Gallagher>//
- **[0b50fb29f](facebook/react@0b50fb29f )**: Include rootEventTypes in DOMEventResponderSystem stopPropagation tests (#15433) //<Nicolas Gallagher>//
- **[1ae409d2c](facebook/react@1ae409d2c )**: React events: fix nested Hover components error (#15428) //<Nicolas Gallagher>//
- **[c73ab39c1](facebook/react@c73ab39c1 )**: React events: make nested Focus work as expected (#15421) //<Nicolas Gallagher>//
- **[4221565e1](facebook/react@4221565e1 )**: Cancel pending commit before starting on root //<Andrew Clark>//
- **[9ebe1768a](facebook/react@9ebe1768a )**: Experimental Event API: Redesign event responder propagation (#15408) //<Dominic Gannaway>//
- **[a30e7d992](facebook/react@a30e7d992 )**: act() tests - Reuse and properly unmount containers (#14974) //<Philipp Spiess>//
- **[8cf963c6c](facebook/react@8cf963c6c )**: React events: ignore device buttons that aren't for primary interactions (#15402) //<Nicolas Gallagher>//
- **[38bd570d4](facebook/react@38bd570d4 )**: Stop tracking bundle sizes (#15404) //<Andrew Clark>//
- **[3438e5ce8](facebook/react@3438e5ce8 )**: Experimental Event API: Add Hover onUnmount support (#15394) //<Dominic Gannaway>//
- **[805e7f873](facebook/react@805e7f873 )**: React events: add unmounting to Focus (#15396) //<Nicolas Gallagher>//
- **[543353a04](facebook/react@543353a04 )**: Experimental Event API: Remove "listener" from event objects (#15391) //<Dominic Gannaway>//
- **[9055e31e5](facebook/react@9055e31e5 )**: Replace old Fiber Scheduler with new one (#15387) //<Andrew Clark>//
- **[4e59d4f5d](facebook/react@4e59d4f5d )**: React events: add onHoverMove support (#15388) //<Nicolas Gallagher>//
- **[de7590327](facebook/react@de7590327 )**: Fix CI (#15393) //<Andrew Clark>//
- **[687e4fb6f](facebook/react@687e4fb6f )**: Bump scheduler version to 0.14.0 //<Andrew Clark>//
- **[45473c94c](facebook/react@45473c94c )**: React events: Press event fixes (#15386) //<Nicolas Gallagher>//
- **[9672cf621](facebook/react@9672cf621 )**: Experimental Event API: adds `stopPropagation` by default to Press (#15384) //<Dominic Gannaway>//
- **[a9eff329c](facebook/react@a9eff329c )**: Remove TouchHitTarget SSR logic to prevent issues with mouse events (#15381) //<Dominic Gannaway>//
- **[c9841001b](facebook/react@c9841001b )**: Experimental Event API: preventDefault handling for anchors (#15383) //<Dominic Gannaway>//
- **[c25c59c80](facebook/react@c25c59c80 )**: Apply the Just Noticeable Difference to suspense timeouts (#15367) //<Sebastian Markbåge>//
- **[3e2e930d6](facebook/react@3e2e930d6 )**: Fixes a Flow type merge conflict (#15378) //<Dominic Gannaway>//
- **[7fc91f17c](facebook/react@7fc91f17c )**: React events: add onPressMove and pressRetentionOffset to Press (#15374) //<Nicolas Gallagher>//
- **[dd9cef9fc](facebook/react@dd9cef9fc )**: Experimental Event API: Add targets and responder utility method for finding targets (#15372) //<Dominic Gannaway>//
- **[c64b33003](facebook/react@c64b33003 )**: Move EventTypes to ReactTypes (#15364) //<Dominic Gannaway>//
- **[4c78ac0b9](facebook/react@4c78ac0b9 )**: Track Event Time as the Start Time for Suspense (#15358) //<Sebastian Markbåge>//
- **[875d05d55](facebook/react@875d05d55 )**: Include full error messages in React Native build (#15363) //<Andrew Clark>//
- **[1b2159acc](facebook/react@1b2159acc )**: [React Native] measure calls will now call FabricUIManager (#15324) //<Eli White>//
- **[c7a959982](facebook/react@c7a959982 )**: [React Native] Add tests to paper renderer for measure, measureLayout (#15323) //<Eli White>//
- **[aece8119c](facebook/react@aece8119c )**: Refactor EventComponent logic + add onOwnershipChange callback (#15354) //<Dominic Gannaway>//
- **[183d1f42e](facebook/react@183d1f42e )**: Fix: Measure expiration times relative to module initialization (#15357) //<Andrew Clark>//
- **[b4bc33a58](facebook/react@b4bc33a58 )**: Fix areHookInputsEqual method  warning params order (#15345) //<砖家>//
- **[29fb5862f](facebook/react@29fb5862f )**: Move EventComponent state creation to complete phase + tests (#15352) //<Dominic Gannaway>//
- **[745baf2e0](facebook/react@745baf2e0 )**: Provide new jsx transform target for reactjs/rfcs#107 (#15141) //<Ricky Vetter>//
- **[81a61b1d1](facebook/react@81a61b1d1 )**: React events: add delay props to Press module (#15340) //<Nicolas Gallagher>//
- **[4064ea9fa](facebook/react@4064ea9fa )**: Experimental event API: Support EventComponent onUnmount responder callback (#15335) //<Dominic Gannaway>//
- **[4fbbae8af](facebook/react@4fbbae8af )**: Add full TouchHitTarget hit slop (experimental event API) to ReactDOM (#15308) //<Dominic Gannaway>//
- **[958b6173f](facebook/react@958b6173f )**: Add delay props to Hover event module (#15325) //<Nicolas Gallagher>//
- **[c3cc936da](facebook/react@c3cc936da )**: Add Hover,Focus,Press docs to REAMDE (#15328) //<Nicolas Gallagher>//
- **[49595e921](facebook/react@49595e921 )**: [New Scheduler] Fix: Suspending an expired update (#15326) //<Andrew Clark>//
- **[b93a8a9bb](facebook/react@b93a8a9bb )**: Experimental event API: refactor responder modules for lifecycle inclusion (#15322) //<Dominic Gannaway>//
- **[937d262f5](facebook/react@937d262f5 )**: React events: keyboard press, types, tests (#15314) //<Nicolas Gallagher>//
- **[7a2dc4853](facebook/react@7a2dc4853 )**: Allow DevTools to toggle Suspense fallbacks (#15232) //<Dan Abramov>//
- **[43b1f74c8](facebook/react@43b1f74c8 )**: Alternate fix for #14198 //<Andrew Clark>//
- **[41aa345d2](facebook/react@41aa345d2 )**: Fix a crash in Suspense with findDOMNode //<Dan Abramov>//
- **[6d0effad7](facebook/react@6d0effad7 )**: Expose extra internals in FB build of react-dom/unstable-new-scheduler (#15311) //<Andrew Clark>//
- **[3a44ccefe](facebook/react@3a44ccefe )**: Fix feature flags react-dom/unstable-new-scheduler (#15309) //<Andrew Clark>//
- **[92a1d8fea](facebook/react@92a1d8fea )**: mark react-events as private so we publish script skips it for now (#15307) //<Sunil Pai>//
- **[e5c59359c](facebook/react@e5c59359c )**: Prevent bundling of Node polyfills when importing TestUtils/TestRenderer (#15305) //<Dan Abramov>//
- **[73187239a](facebook/react@73187239a )**: writing unit tests in experimental event Drag API (#15297) //<Behzad Abbasi>//
- **[89064fe68](facebook/react@89064fe68 )**: Adds displayName to EventComponent and EventTarget (#15268) //<Dominic Gannaway>//
- **[fc6a9f1a1](facebook/react@fc6a9f1a1 )**: Add test for async event dispatching (#15300) //<Nicolas Gallagher>//
- **[38fa84088](facebook/react@38fa84088 )**: Experiemental event API - wrap async dispatched events (#15299) //<Dominic Gannaway>//
- **[4d5cb64aa](facebook/react@4d5cb64aa )**: Rewrite ReactFiberScheduler for better integration with Scheduler package (#15151) //<Andrew Clark>//
- **[aed0e1c30](facebook/react@aed0e1c30 )**: await act(async () => ...) (#14853) //<Sunil Pai>//
- **[4c75881ee](facebook/react@4c75881ee )**: Remove maxDuration from tests (#15272) //<Sebastian Markbåge>//
- **[9307932fe](facebook/react@9307932fe )**: Refactor event object creation for the experimental event API (#15295) //<Dominic Gannaway>//
- **[6a1e6b2f7](facebook/react@6a1e6b2f7 )**: Experimental event API: loosen EventTarget constraints and warnings (#15292) //<Dominic Gannaway>//
- **[f243deab8](facebook/react@f243deab8 )**: Add tests for Press responder event module (#15290) //<Nicolas Gallagher>//
- **[296c4393d](facebook/react@296c4393d )**: Add Press event prop types and fix a check in Safari (#15288) //<Nicolas Gallagher>//
- **[4482fdded](facebook/react@4482fdded )**: Fix host context issues around EventComponents and EventTargets (#15284) //<Dominic Gannaway>//
- **[5ef0d1d29](facebook/react@5ef0d1d29 )**: Rename hover props in experimental event API and write unit tests (#15283) //<Behzad Abbasi>//
- **[9444a5472](facebook/react@9444a5472 )**: Warn on nested EventTragets in experimental event API (#15287) //<Dominic Gannaway>//
- **[7f1f5ddc3](facebook/react@7f1f5ddc3 )**: Rename press props in experimental event API (#15263) //<Nicolas Gallagher>//
- **[2e02469fa](facebook/react@2e02469fa )**: ReactNative's ref.measureLayout now takes a ref (#15126) //<Eli White>//
- **[1b94fd215](facebook/react@1b94fd215 )**: Make setNativeProps a no-op with Fabric renderer (#15094) //<Eli White>//
- **[08055a625](facebook/react@08055a625 )**: Fix Press module in experimental event API (#15262) //<Nicolas Gallagher>//
- **[f4625f518](facebook/react@f4625f518 )**: Fix on(Long)PressChange events in experimental press event API (#15256) //<Nicolas Gallagher>//
- **[a41b21770](facebook/react@a41b21770 )**: Add additional event API responder surfaces (#15248) //<Dominic Gannaway>//
- **[700f17be6](facebook/react@700f17be6 )**: Fix longpress in experimental Press event module (#15246) //<Nicolas Gallagher>//
- **[5d336df70](facebook/react@5d336df70 )**: Allow for null targetFiber for root event handling (#15247) //<Dominic Gannaway>//
- **[c6f3524df](facebook/react@c6f3524df )**: Adds React event component and React event target support to SSR renderer (#15242) //<Dominic Gannaway>//
- **[c7a2dce50](facebook/react@c7a2dce50 )**: Disable JS urls at build level for www (#15230) //<Sebastian Markbåge>//
- **[fb6b50871](facebook/react@fb6b50871 )**: Update versions for 16.8.6 //<Dan Abramov>//
- **[1cfd25668](facebook/react@1cfd25668 )**: Fix circular module imports causing file size increase (#15231) //<Dominic Gannaway>//
- **[669cafb36](facebook/react@669cafb36 )**: Adds experimental event component responder surfaces (#15228) //<Dominic Gannaway>//
- **[d8cb10f11](facebook/react@d8cb10f11 )**: Enabled warnAboutDeprecatedLifecycles flag by default (#15186) //<Brian Vaughn>//
- **[80f8b0d51](facebook/react@80f8b0d51 )**: Add part of the event responder system for experimental event API (#15179) //<Dominic Gannaway>//
- **[5c2b2c085](facebook/react@5c2b2c085 )**: Warn about async infinite useEffect loop (#15180) //<Dan Abramov>//
- **[8e9a013c0](facebook/react@8e9a013c0 )**: Release 16.8.5 //<Dan Abramov>//
- **[f33e5790b](facebook/react@f33e5790b )**: [email protected] //<Dan Abramov>//
- **[b1cccd1ed](facebook/react@b1cccd1ed )**: Warn about setState directly in dep-less useEffect (#15184) //<Dan Abramov>//
- **[78f2775ed](facebook/react@78f2775ed )**: Flip event passive logic on passiveBrowserEventsSupported (#15190) //<Dominic Gannaway>//
- **[f161ee2eb](facebook/react@f161ee2eb )**: React.warn() and React.error() (#15170) //<Brian Vaughn>//
- **[78968bb3d](facebook/react@78968bb3d )**: Validate useEffect without deps too (#15183) //<Dan Abramov>//
- **[4b8e1641b](facebook/react@4b8e1641b )**: Fork performWork instead of using boolean flag (#15169) //<Sebastian Markbåge>//
- **[56035dac6](facebook/react@56035dac6 )**: unstable_Profiler -> Profiler (#15172) //<Brian Vaughn>//
- **[31518135c](facebook/react@31518135c )**: Strengthen nested update counter test coverage (#15166) //<Dan Abramov>//
- **[66f280c87](facebook/react@66f280c87 )**: Add internal logic for listening to event responders (#15168) //<Dominic Gannaway>//
- **[b1a56abd6](facebook/react@b1a56abd6 )**: Fork ReactFiberScheduler with feature flag //<Andrew Clark>//
- **[45f571736](facebook/react@45f571736 )**: ReactFiberScheduler -> ReactFiberScheduler.old //<Andrew Clark>//
- **[c05b4b81f](facebook/react@c05b4b81f )**: Link to useLayoutEffect gist in a warning (#15158) //<Dan Abramov>//
- **[061d6ce3c](facebook/react@061d6ce3c )**: fix(react-dom): access iframe contentWindow instead of contentDocument (#15099) //<Renan Valentin>//
- **[b83e01cad](facebook/react@b83e01cad )**: Adds more scaffolding for experimental event API (#15112) //<Dominic Gannaway>//
- **[daeda44d8](facebook/react@daeda44d8 )**: Follow up to 15150 (#15152) //<Dominic Gannaway>//
- **[acd65db5b](facebook/react@acd65db5b )**: Deprecate module pattern (factory) components (#15145) //<Sebastian Markbåge>//
- **[55cc921c5](facebook/react@55cc921c5 )**: Adds react-events package for internal testing (#15150) //<Dominic Gannaway>//
- **[7ad738630](facebook/react@7ad738630 )**: Improve warning for invalid class contextType (#15142) //<Dan Abramov>//
- **[1e3364e76](facebook/react@1e3364e76 )**: Test that we don't suspend when disabling yielding (#15143) //<Sebastian Markbåge>//
- **[42c3c967d](facebook/react@42c3c967d )**: Compile invariant directly to throw expressions (#15071) //<Andrew Clark>//
- **[df7b87d25](facebook/react@df7b87d25 )**: Warn for Context.Consumer with contextType (#14831) //<Brandon Dail>//
- **[2b93d686e](facebook/react@2b93d686e )**: Add more info to invalid hook call error message (#15139) //<Jared Palmer>//
- **[d926936f0](facebook/react@d926936f0 )**: Eager bailout optimization should always compare to latest reducer (#15124) //<Andrew Clark>//
- **[4162f6026](facebook/react@4162f6026 )**: Add feature flag to disable yielding (#15119) //<Sebastian Markbåge>//
- **[8d60bd4dc](facebook/react@8d60bd4dc )**: [Shallow] Implement setState for Hooks and remount on type change (#15120) //<Dan Abramov>//
- **[035e4cffb](facebook/react@035e4cffb )**: Change passive checker to use defineProperty (#15121) //<Dominic Gannaway>//
- **[b283d75c1](facebook/react@b283d75c1 )**: Support React.memo in ReactShallowRenderer (#14816) //<Brandon Dail>//
- **[f0621fe23](facebook/react@f0621fe23 )**: Use same example code for async effect warning (#15118) //<Dan Abramov>//
- **[52c870c8d](facebook/react@52c870c8d )**: Fix shallow renderer not allowing hooks in forwardRef render functions (#15100) //<Sebastian Silbermann>//
- **[f1ff4348c](facebook/react@f1ff4348c )**: Don't suggest a function as its own dep (#15115) //<Dan Abramov>//
- **[371bbf36b](facebook/react@371bbf36b )**: Add infrastructure for passive/non-passive event support for future API exploration (#15036) //<Dominic Gannaway>//
- **[ab5fe174c](facebook/react@ab5fe174c )**: Don't set the first option as selected in select tag with `size` attribute  (#14242) //<Mateusz>//
- **[935f60083](facebook/react@935f60083 )**: [email protected] //<Dan Abramov>//
- **[0c03a4743](facebook/react@0c03a4743 )**: Adds experimental event API scaffolding (#15108) //<Dominic Gannaway>//
- **[1204c7897](facebook/react@1204c7897 )**: [eslint] Wording tweaks (#15078) //<Sophie Alpert>//
- **[9d77a317b](facebook/react@9d77a317b )**: Improve async useEffect warning (#15104) //<Dan Abramov>//
- **[103378b1e](facebook/react@103378b1e )**: Warn for javascript: URLs in DOM sinks (#15047) //<Sebastian Markbåge>//
- **[5d0c3c6c7](facebook/react@5d0c3c6c7 )**: [Partial Hydration] Render client-only content at normal priority (#15061) //<Sebastian Markbåge>//
- **[6a4a261ee](facebook/react@6a4a261ee )**: Test suspended children are hidden before layout in persistent mode (#15030) //<Andrew Clark>//
- **[bc8bd24c1](facebook/react@bc8bd24c1 )**: Run persistent mode tests in CI (#15029) //<Andrew Clark>//
- **[3f4852fa5](facebook/react@3f4852fa5 )**: Run Placeholder tests in persistent mode, too (#15013) //<Andrew Clark>//
- **[d0289c7e3](facebook/react@d0289c7e3 )**: [email protected] //<Dan Abramov>//
- **[03ad9c73e](facebook/react@03ad9c73e )**: [ESLint] Tweak setState updater message and add useEffect(async) warning (#15055) //<Dan Abramov>//
- **[eb6247a9a](facebook/react@eb6247a9a )**: More concise messages (#15053) //<Dan Abramov>//
- **[197703ecc](facebook/react@197703ecc )**: [ESLint] Add more hints to lint messages (#15046) //<Dan Abramov>//
- **[6d2666bab](facebook/react@6d2666bab )**: Fix ESLint rule crash (#15044) //<Dan Abramov>//
- **[9b7e1d138](facebook/react@9b7e1d138 )**: [ESLint] Suggest moving inside a Hook or useCallback when bare function is a dependency (#15026) //<Dan Abramov>//
- **[1e3b6192b](facebook/react@1e3b6192b )**: Import Scheduler directly, not via host config (#14984) //<Andrew Clark>//
- **[5d49dafac](facebook/react@5d49dafac )**: Enforce deps array in useMemo and useCallback (#15025) //<Dan Abramov>//
- **[a9aa24ed8](facebook/react@a9aa24ed8 )**: 16.8.4 and changelog //<Brian Vaughn>//
- **[fa5d4ee43](facebook/react@fa5d4ee43 )**: [ESLint] Treat functions that don't capture anything as static (#14996) //<Dan Abramov>//
- **[fd557d453](facebook/react@fd557d453 )**: Warn on mount when deps are not an array (#15018) //<Dan Abramov>//
- **[ce45ca9ba](facebook/react@ce45ca9ba )**: Prettier //<Andrew Clark>//
- **[757a70b25](facebook/react@757a70b25 )**: ReactNoop.yield -> Scheduler.yieldValue (#15008) //<Andrew Clark>//
- **[9d756d903](facebook/react@9d756d903 )**: Revert #14756 changes to ReactFiberScheduler (#14992) //<Andrew Clark>//
- **[f16442a10](facebook/react@f16442a10 )**: [email protected] //<Dan Abramov>//
- **[e1e45fb36](facebook/react@e1e45fb36 )**: [ESLint] Suggest to destructure props when they are only used as members (#14993) //<Dan Abramov>//
- **[59ef28437](facebook/react@59ef28437 )**: Warn about dependencies outside of render scope (#14990) //<Dan Abramov>//
- **[df7b4768c](facebook/react@df7b4768c )**: [ESLint] Deduplicate suggested dependencies (#14982) //<Dan Abramov>//
- **[02404d793](facebook/react@02404d793 )**: Avoid dynamic dispatch for scheduler calls (#14968) //<Dan Abramov>//
- **[bb2939ccc](facebook/react@bb2939ccc )**: Support editable useState hooks in DevTools (#14906) //<Brian Vaughn>//
- **[69060e1da](facebook/react@69060e1da )**: Swap expect(ReactNoop) for expect(Scheduler) (#14971) //<Andrew Clark>//
- **[ccb2a8a44](facebook/react@ccb2a8a44 )**: Replace test renderer's fake Scheduler implementation with mock build (#14970) //<Andrew Clark>//
- **[53e787b45](facebook/react@53e787b45 )**: Replace noop's fake Scheduler implementation with mock Scheduler build (#14969) //<Andrew Clark>//
- **[3ada82b74](facebook/react@3ada82b74 )**: Allow extraneous effect dependencies (#14967) //<Dan Abramov>//
- **[00748c53e](facebook/react@00748c53e )**: Add new mock build of Scheduler with flush, yield API (#14964) //<Andrew Clark>//
- **[4186952a6](facebook/react@4186952a6 )**: Fixed incompatibility between react-debug-tools and useContext() (#14940) //<Brian Vaughn>//
- **[0b8efb229](facebook/react@0b8efb229 )**: Allow omitting constant primitive deps (#14959) //<Dan Abramov>//

Changelog:
[General][Changed] - React sync for revisions 8e25ed2...ec6691a

Follow steps in the [React Native test plan](https://our.intern.facebook.com/intern/dex/react/test-workflows-react-native/).

Reviewed By: shergin

Differential Revision: D15171103

fbshipit-source-id: d16b54dfd575b3a1fa38e6a132633f42c715b4fd
calebmer pushed a commit to calebmer/react-native that referenced this pull request May 24, 2019
Summary:
This sync includes the following changes:
- **[ec6691a68](facebook/react@ec6691a68 )**: Event API: remove isTargetDirectlyWithinEventComponent (facebook#15546) //<Dominic Gannaway>//
- **[a6e30001f](facebook/react@a6e30001f )**: Delete duplicate Focus.js (facebook#15540) //<Dominic Gannaway>//
- **[f7993d547](facebook/react@f7993d547 )**: Delete duplicate Hover.js (facebook#15539) //<Dominic Gannaway>//
- **[c8ee10037](facebook/react@c8ee10037 )**: Delete duplicate Swipe.js (facebook#15541) //<Dominic Gannaway>//
- **[494716c9b](facebook/react@494716c9b )**: Delete duplicate Drag.js (facebook#15537) //<Dominic Gannaway>//
- **[377846fef](facebook/react@377846fef )**: Delete duplicate Press.js (facebook#15538) //<Dominic Gannaway>//
- **[379515e83](facebook/react@379515e83 )**: Follow up to 15535 (facebook#15536) //<Dominic Gannaway>//
- **[bd88982fb](facebook/react@bd88982fb )**: Event API: use `capture` for all event listeners using experimental responder system (facebook#15526) //<Dominic Gannaway>//
- **[72ca3c60e](facebook/react@72ca3c60e )**: Bump scheduler version to 0.14.0 (facebook#15395) //<Andrew Clark>//
- **[7882c41f6](facebook/react@7882c41f6 )**: Use lowercase entry points for event modules (facebook#15535) //<Andrew Clark>//
- **[43c4e5f34](facebook/react@43c4e5f34 )**: Add method for forcing a lower framerate //<Nathan Schloss>//
- **[1b752f191](facebook/react@1b752f191 )**: Fixed potential interaction tracing leak in Suspense thennable memoization (facebook#15531) //<Brian Vaughn>//
- **[12e5a13cf](facebook/react@12e5a13cf )**: [React Native] Inline calls to FabricUIManager in shared code (facebook#15490) //<Eli White>//
- **[2cca18728](facebook/react@2cca18728 )**: React Events: add onFocusVisibleChange to Focus (facebook#15516) //<Nicolas Gallagher>//
- **[cc5a49379](facebook/react@cc5a49379 )**: React Events: FocusScope tweaks and docs (facebook#15515) //<Nicolas Gallagher>//
- **[796c67a25](facebook/react@796c67a25 )**: Event API: responder event types should not re-register on EventComponent update (facebook#15514) //<Dominic Gannaway>//
- **[c4d1dcb53](facebook/react@c4d1dcb53 )**: React Events: core API documentation followup (facebook#15506) //<Dominic Gannaway>//
- **[41ef1961c](facebook/react@41ef1961c )**: Update TopLevelEventTypes.js (facebook#15511) //<Dan Nate>//
- **[7a482af5d](facebook/react@7a482af5d )**: Event API: Fix bug where Press root events were not being cleared (facebook#15507) //<Dominic Gannaway>//
- **[a14e24efa](facebook/react@a14e24efa )**: React Events: core API documentation (facebook#15505) //<Nicolas Gallagher>//
- **[8658611b6](facebook/react@8658611b6 )**: Event API: ensure event keys are unique + add validation (facebook#15501) //<Dominic Gannaway>//
- **[d9839740e](facebook/react@d9839740e )**: React events: remove unused types (facebook#15503) //<Nicolas Gallagher>//
- **[0b3431170](facebook/react@0b3431170 )**: React events: fix press end event dispatching (facebook#15500) //<Nicolas Gallagher>//
- **[d1f667acc](facebook/react@d1f667acc )**: Event API: follow up fixes for FocusScope + context changes (facebook#15496) //<Dominic Gannaway>//
- **[c530639dd](facebook/react@c530639dd )**: Minor code structure adjustments to the bundles.js file (facebook#15079) //<Kunuk Nykjær>//
- **[ed36df46c](facebook/react@ed36df46c )**: add --watch mode to "yarn build" (facebook#15116) //<Alec Larson>//
- **[793ef9b85](facebook/react@793ef9b85 )**: test(eslint-plugin-react-hooks): add coverage for unused custom hook (facebook#15130) //<Redmond Tran>//
- **[d61da9387](facebook/react@d61da9387 )**: test(accumulate): add test suite for accumulate function (facebook#15159) //<Jeffrey Berry>//
- **[a187e9b5e](facebook/react@a187e9b5e )**: React Native: Allow Views to be nested inside of Text (facebook#15464) //<Adam Comella>//
- **[f85aadefc](facebook/react@f85aadefc )**: ADD: disablePictureInPicture attribute for HTML5 videos (facebook#15334) //<Radu-Sebastian Amarie>//
- **[1eb2b892d](facebook/react@1eb2b892d )**: give  `canUseDOM` with a possibility to be a constant (facebook#14194) //<FUJI Goro>//
- **[de26d6dd3](facebook/react@de26d6dd3 )**: typo fix (facebook#15493) //<shubham>//
- **[64e3da286](facebook/react@64e3da286 )**: Event API: Add `FocusScope` surface (facebook#15487) //<Dominic Gannaway>//
- **[3f058debc](facebook/react@3f058debc )**: Event API: various bug fixes (facebook#15485) //<Dominic Gannaway>//
- **[fb28e9048](facebook/react@fb28e9048 )**: Add missing word to code comment for clarity (facebook#15443) //<Brendan McLoughlin>//
- **[fa2fa3564](facebook/react@fa2fa3564 )**: Experimental event API: adds context.isTargetDirectlyWithinEventComponent (facebook#15481) //<Dominic Gannaway>//
- **[d3af2f2a5](facebook/react@d3af2f2a5 )**: Experimental Event API: add event component mount phase callback (facebook#15480) //<Dominic Gannaway>//
- **[ce126fbb2](facebook/react@ce126fbb2 )**: Fix priority inference of next level of work (facebook#15478) //<Andrew Clark>//
- **[71c8759ce](facebook/react@71c8759ce )**: Measure callback timeout relative to current time (facebook#15479) //<Andrew Clark>//
- **[9c6ff136c](facebook/react@9c6ff136c )**: Remove timeout from performance flamegraph (facebook#15477) //<Andrew Clark>//
- **[299a2714c](facebook/react@299a2714c )**: Use stricter equality check (facebook#15474) //<Dan Abramov>//
- **[017d6f14b](facebook/react@017d6f14b )**: Experimental Event API: add `rootEventTypes` support to event responders (facebook#15475) //<Dominic Gannaway>//
- **[784ebd8fa](facebook/react@784ebd8fa )**: Experimental event API: rework the propagation system for event components (facebook#15462) //<Dominic Gannaway>//
- **[587676900](facebook/react@587676900 )**: React events: initial implementation of disabled prop (facebook#15458) //<Nicolas Gallagher>//
- **[59c7aef91](facebook/react@59c7aef91 )**: React events: add a test for focusable descendants (facebook#15457) //<Nicolas Gallagher>//
- **[0a8da3391](facebook/react@0a8da3391 )**: React events: README update types and remove stopPropagation prop (facebook#15456) //<Nicolas Gallagher>//
- **[d584fcdc6](facebook/react@d584fcdc6 )**: React events: use passive events where possible (facebook#15454) //<Nicolas Gallagher>//
- **[051513bfa](facebook/react@051513bfa )**: React Events: consolidate logic for Press event component (facebook#15451) //<Nicolas Gallagher>//
- **[cdfce1ad2](facebook/react@cdfce1ad2 )**: React events: consolidate logic of Hover event component (facebook#15450) //<Nicolas Gallagher>//
- **[5857c89da](facebook/react@5857c89da )**: React events: extract common helper functions (facebook#15449) //<Nicolas Gallagher>//
- **[0b50fb29f](facebook/react@0b50fb29f )**: Include rootEventTypes in DOMEventResponderSystem stopPropagation tests (facebook#15433) //<Nicolas Gallagher>//
- **[1ae409d2c](facebook/react@1ae409d2c )**: React events: fix nested Hover components error (facebook#15428) //<Nicolas Gallagher>//
- **[c73ab39c1](facebook/react@c73ab39c1 )**: React events: make nested Focus work as expected (facebook#15421) //<Nicolas Gallagher>//
- **[4221565e1](facebook/react@4221565e1 )**: Cancel pending commit before starting on root //<Andrew Clark>//
- **[9ebe1768a](facebook/react@9ebe1768a )**: Experimental Event API: Redesign event responder propagation (facebook#15408) //<Dominic Gannaway>//
- **[a30e7d992](facebook/react@a30e7d992 )**: act() tests - Reuse and properly unmount containers (facebook#14974) //<Philipp Spiess>//
- **[8cf963c6c](facebook/react@8cf963c6c )**: React events: ignore device buttons that aren't for primary interactions (facebook#15402) //<Nicolas Gallagher>//
- **[38bd570d4](facebook/react@38bd570d4 )**: Stop tracking bundle sizes (facebook#15404) //<Andrew Clark>//
- **[3438e5ce8](facebook/react@3438e5ce8 )**: Experimental Event API: Add Hover onUnmount support (facebook#15394) //<Dominic Gannaway>//
- **[805e7f873](facebook/react@805e7f873 )**: React events: add unmounting to Focus (facebook#15396) //<Nicolas Gallagher>//
- **[543353a04](facebook/react@543353a04 )**: Experimental Event API: Remove "listener" from event objects (facebook#15391) //<Dominic Gannaway>//
- **[9055e31e5](facebook/react@9055e31e5 )**: Replace old Fiber Scheduler with new one (facebook#15387) //<Andrew Clark>//
- **[4e59d4f5d](facebook/react@4e59d4f5d )**: React events: add onHoverMove support (facebook#15388) //<Nicolas Gallagher>//
- **[de7590327](facebook/react@de7590327 )**: Fix CI (facebook#15393) //<Andrew Clark>//
- **[687e4fb6f](facebook/react@687e4fb6f )**: Bump scheduler version to 0.14.0 //<Andrew Clark>//
- **[45473c94c](facebook/react@45473c94c )**: React events: Press event fixes (facebook#15386) //<Nicolas Gallagher>//
- **[9672cf621](facebook/react@9672cf621 )**: Experimental Event API: adds `stopPropagation` by default to Press (facebook#15384) //<Dominic Gannaway>//
- **[a9eff329c](facebook/react@a9eff329c )**: Remove TouchHitTarget SSR logic to prevent issues with mouse events (facebook#15381) //<Dominic Gannaway>//
- **[c9841001b](facebook/react@c9841001b )**: Experimental Event API: preventDefault handling for anchors (facebook#15383) //<Dominic Gannaway>//
- **[c25c59c80](facebook/react@c25c59c80 )**: Apply the Just Noticeable Difference to suspense timeouts (facebook#15367) //<Sebastian Markbåge>//
- **[3e2e930d6](facebook/react@3e2e930d6 )**: Fixes a Flow type merge conflict (facebook#15378) //<Dominic Gannaway>//
- **[7fc91f17c](facebook/react@7fc91f17c )**: React events: add onPressMove and pressRetentionOffset to Press (facebook#15374) //<Nicolas Gallagher>//
- **[dd9cef9fc](facebook/react@dd9cef9fc )**: Experimental Event API: Add targets and responder utility method for finding targets (facebook#15372) //<Dominic Gannaway>//
- **[c64b33003](facebook/react@c64b33003 )**: Move EventTypes to ReactTypes (facebook#15364) //<Dominic Gannaway>//
- **[4c78ac0b9](facebook/react@4c78ac0b9 )**: Track Event Time as the Start Time for Suspense (facebook#15358) //<Sebastian Markbåge>//
- **[875d05d55](facebook/react@875d05d55 )**: Include full error messages in React Native build (facebook#15363) //<Andrew Clark>//
- **[1b2159acc](facebook/react@1b2159acc )**: [React Native] measure calls will now call FabricUIManager (facebook#15324) //<Eli White>//
- **[c7a959982](facebook/react@c7a959982 )**: [React Native] Add tests to paper renderer for measure, measureLayout (facebook#15323) //<Eli White>//
- **[aece8119c](facebook/react@aece8119c )**: Refactor EventComponent logic + add onOwnershipChange callback (facebook#15354) //<Dominic Gannaway>//
- **[183d1f42e](facebook/react@183d1f42e )**: Fix: Measure expiration times relative to module initialization (facebook#15357) //<Andrew Clark>//
- **[b4bc33a58](facebook/react@b4bc33a58 )**: Fix areHookInputsEqual method  warning params order (facebook#15345) //<砖家>//
- **[29fb5862f](facebook/react@29fb5862f )**: Move EventComponent state creation to complete phase + tests (facebook#15352) //<Dominic Gannaway>//
- **[745baf2e0](facebook/react@745baf2e0 )**: Provide new jsx transform target for reactjs/rfcs#107 (facebook#15141) //<Ricky Vetter>//
- **[81a61b1d1](facebook/react@81a61b1d1 )**: React events: add delay props to Press module (facebook#15340) //<Nicolas Gallagher>//
- **[4064ea9fa](facebook/react@4064ea9fa )**: Experimental event API: Support EventComponent onUnmount responder callback (facebook#15335) //<Dominic Gannaway>//
- **[4fbbae8af](facebook/react@4fbbae8af )**: Add full TouchHitTarget hit slop (experimental event API) to ReactDOM (facebook#15308) //<Dominic Gannaway>//
- **[958b6173f](facebook/react@958b6173f )**: Add delay props to Hover event module (facebook#15325) //<Nicolas Gallagher>//
- **[c3cc936da](facebook/react@c3cc936da )**: Add Hover,Focus,Press docs to REAMDE (facebook#15328) //<Nicolas Gallagher>//
- **[49595e921](facebook/react@49595e921 )**: [New Scheduler] Fix: Suspending an expired update (facebook#15326) //<Andrew Clark>//
- **[b93a8a9bb](facebook/react@b93a8a9bb )**: Experimental event API: refactor responder modules for lifecycle inclusion (facebook#15322) //<Dominic Gannaway>//
- **[937d262f5](facebook/react@937d262f5 )**: React events: keyboard press, types, tests (facebook#15314) //<Nicolas Gallagher>//
- **[7a2dc4853](facebook/react@7a2dc4853 )**: Allow DevTools to toggle Suspense fallbacks (facebook#15232) //<Dan Abramov>//
- **[43b1f74c8](facebook/react@43b1f74c8 )**: Alternate fix for facebook#14198 //<Andrew Clark>//
- **[41aa345d2](facebook/react@41aa345d2 )**: Fix a crash in Suspense with findDOMNode //<Dan Abramov>//
- **[6d0effad7](facebook/react@6d0effad7 )**: Expose extra internals in FB build of react-dom/unstable-new-scheduler (facebook#15311) //<Andrew Clark>//
- **[3a44ccefe](facebook/react@3a44ccefe )**: Fix feature flags react-dom/unstable-new-scheduler (facebook#15309) //<Andrew Clark>//
- **[92a1d8fea](facebook/react@92a1d8fea )**: mark react-events as private so we publish script skips it for now (facebook#15307) //<Sunil Pai>//
- **[e5c59359c](facebook/react@e5c59359c )**: Prevent bundling of Node polyfills when importing TestUtils/TestRenderer (facebook#15305) //<Dan Abramov>//
- **[73187239a](facebook/react@73187239a )**: writing unit tests in experimental event Drag API (facebook#15297) //<Behzad Abbasi>//
- **[89064fe68](facebook/react@89064fe68 )**: Adds displayName to EventComponent and EventTarget (facebook#15268) //<Dominic Gannaway>//
- **[fc6a9f1a1](facebook/react@fc6a9f1a1 )**: Add test for async event dispatching (facebook#15300) //<Nicolas Gallagher>//
- **[38fa84088](facebook/react@38fa84088 )**: Experiemental event API - wrap async dispatched events (facebook#15299) //<Dominic Gannaway>//
- **[4d5cb64aa](facebook/react@4d5cb64aa )**: Rewrite ReactFiberScheduler for better integration with Scheduler package (facebook#15151) //<Andrew Clark>//
- **[aed0e1c30](facebook/react@aed0e1c30 )**: await act(async () => ...) (facebook#14853) //<Sunil Pai>//
- **[4c75881ee](facebook/react@4c75881ee )**: Remove maxDuration from tests (facebook#15272) //<Sebastian Markbåge>//
- **[9307932fe](facebook/react@9307932fe )**: Refactor event object creation for the experimental event API (facebook#15295) //<Dominic Gannaway>//
- **[6a1e6b2f7](facebook/react@6a1e6b2f7 )**: Experimental event API: loosen EventTarget constraints and warnings (facebook#15292) //<Dominic Gannaway>//
- **[f243deab8](facebook/react@f243deab8 )**: Add tests for Press responder event module (facebook#15290) //<Nicolas Gallagher>//
- **[296c4393d](facebook/react@296c4393d )**: Add Press event prop types and fix a check in Safari (facebook#15288) //<Nicolas Gallagher>//
- **[4482fdded](facebook/react@4482fdded )**: Fix host context issues around EventComponents and EventTargets (facebook#15284) //<Dominic Gannaway>//
- **[5ef0d1d29](facebook/react@5ef0d1d29 )**: Rename hover props in experimental event API and write unit tests (facebook#15283) //<Behzad Abbasi>//
- **[9444a5472](facebook/react@9444a5472 )**: Warn on nested EventTragets in experimental event API (facebook#15287) //<Dominic Gannaway>//
- **[7f1f5ddc3](facebook/react@7f1f5ddc3 )**: Rename press props in experimental event API (facebook#15263) //<Nicolas Gallagher>//
- **[2e02469fa](facebook/react@2e02469fa )**: ReactNative's ref.measureLayout now takes a ref (facebook#15126) //<Eli White>//
- **[1b94fd215](facebook/react@1b94fd215 )**: Make setNativeProps a no-op with Fabric renderer (facebook#15094) //<Eli White>//
- **[08055a625](facebook/react@08055a625 )**: Fix Press module in experimental event API (facebook#15262) //<Nicolas Gallagher>//
- **[f4625f518](facebook/react@f4625f518 )**: Fix on(Long)PressChange events in experimental press event API (facebook#15256) //<Nicolas Gallagher>//
- **[a41b21770](facebook/react@a41b21770 )**: Add additional event API responder surfaces (facebook#15248) //<Dominic Gannaway>//
- **[700f17be6](facebook/react@700f17be6 )**: Fix longpress in experimental Press event module (facebook#15246) //<Nicolas Gallagher>//
- **[5d336df70](facebook/react@5d336df70 )**: Allow for null targetFiber for root event handling (facebook#15247) //<Dominic Gannaway>//
- **[c6f3524df](facebook/react@c6f3524df )**: Adds React event component and React event target support to SSR renderer (facebook#15242) //<Dominic Gannaway>//
- **[c7a2dce50](facebook/react@c7a2dce50 )**: Disable JS urls at build level for www (facebook#15230) //<Sebastian Markbåge>//
- **[fb6b50871](facebook/react@fb6b50871 )**: Update versions for 16.8.6 //<Dan Abramov>//
- **[1cfd25668](facebook/react@1cfd25668 )**: Fix circular module imports causing file size increase (facebook#15231) //<Dominic Gannaway>//
- **[669cafb36](facebook/react@669cafb36 )**: Adds experimental event component responder surfaces (facebook#15228) //<Dominic Gannaway>//
- **[d8cb10f11](facebook/react@d8cb10f11 )**: Enabled warnAboutDeprecatedLifecycles flag by default (facebook#15186) //<Brian Vaughn>//
- **[80f8b0d51](facebook/react@80f8b0d51 )**: Add part of the event responder system for experimental event API (facebook#15179) //<Dominic Gannaway>//
- **[5c2b2c085](facebook/react@5c2b2c085 )**: Warn about async infinite useEffect loop (facebook#15180) //<Dan Abramov>//
- **[8e9a013c0](facebook/react@8e9a013c0 )**: Release 16.8.5 //<Dan Abramov>//
- **[f33e5790b](facebook/react@f33e5790b )**: [email protected] //<Dan Abramov>//
- **[b1cccd1ed](facebook/react@b1cccd1ed )**: Warn about setState directly in dep-less useEffect (facebook#15184) //<Dan Abramov>//
- **[78f2775ed](facebook/react@78f2775ed )**: Flip event passive logic on passiveBrowserEventsSupported (facebook#15190) //<Dominic Gannaway>//
- **[f161ee2eb](facebook/react@f161ee2eb )**: React.warn() and React.error() (facebook#15170) //<Brian Vaughn>//
- **[78968bb3d](facebook/react@78968bb3d )**: Validate useEffect without deps too (facebook#15183) //<Dan Abramov>//
- **[4b8e1641b](facebook/react@4b8e1641b )**: Fork performWork instead of using boolean flag (facebook#15169) //<Sebastian Markbåge>//
- **[56035dac6](facebook/react@56035dac6 )**: unstable_Profiler -> Profiler (facebook#15172) //<Brian Vaughn>//
- **[31518135c](facebook/react@31518135c )**: Strengthen nested update counter test coverage (facebook#15166) //<Dan Abramov>//
- **[66f280c87](facebook/react@66f280c87 )**: Add internal logic for listening to event responders (facebook#15168) //<Dominic Gannaway>//
- **[b1a56abd6](facebook/react@b1a56abd6 )**: Fork ReactFiberScheduler with feature flag //<Andrew Clark>//
- **[45f571736](facebook/react@45f571736 )**: ReactFiberScheduler -> ReactFiberScheduler.old //<Andrew Clark>//
- **[c05b4b81f](facebook/react@c05b4b81f )**: Link to useLayoutEffect gist in a warning (facebook#15158) //<Dan Abramov>//
- **[061d6ce3c](facebook/react@061d6ce3c )**: fix(react-dom): access iframe contentWindow instead of contentDocument (facebook#15099) //<Renan Valentin>//
- **[b83e01cad](facebook/react@b83e01cad )**: Adds more scaffolding for experimental event API (facebook#15112) //<Dominic Gannaway>//
- **[daeda44d8](facebook/react@daeda44d8 )**: Follow up to 15150 (facebook#15152) //<Dominic Gannaway>//
- **[acd65db5b](facebook/react@acd65db5b )**: Deprecate module pattern (factory) components (facebook#15145) //<Sebastian Markbåge>//
- **[55cc921c5](facebook/react@55cc921c5 )**: Adds react-events package for internal testing (facebook#15150) //<Dominic Gannaway>//
- **[7ad738630](facebook/react@7ad738630 )**: Improve warning for invalid class contextType (facebook#15142) //<Dan Abramov>//
- **[1e3364e76](facebook/react@1e3364e76 )**: Test that we don't suspend when disabling yielding (facebook#15143) //<Sebastian Markbåge>//
- **[42c3c967d](facebook/react@42c3c967d )**: Compile invariant directly to throw expressions (facebook#15071) //<Andrew Clark>//
- **[df7b87d25](facebook/react@df7b87d25 )**: Warn for Context.Consumer with contextType (facebook#14831) //<Brandon Dail>//
- **[2b93d686e](facebook/react@2b93d686e )**: Add more info to invalid hook call error message (facebook#15139) //<Jared Palmer>//
- **[d926936f0](facebook/react@d926936f0 )**: Eager bailout optimization should always compare to latest reducer (facebook#15124) //<Andrew Clark>//
- **[4162f6026](facebook/react@4162f6026 )**: Add feature flag to disable yielding (facebook#15119) //<Sebastian Markbåge>//
- **[8d60bd4dc](facebook/react@8d60bd4dc )**: [Shallow] Implement setState for Hooks and remount on type change (facebook#15120) //<Dan Abramov>//
- **[035e4cffb](facebook/react@035e4cffb )**: Change passive checker to use defineProperty (facebook#15121) //<Dominic Gannaway>//
- **[b283d75c1](facebook/react@b283d75c1 )**: Support React.memo in ReactShallowRenderer (facebook#14816) //<Brandon Dail>//
- **[f0621fe23](facebook/react@f0621fe23 )**: Use same example code for async effect warning (facebook#15118) //<Dan Abramov>//
- **[52c870c8d](facebook/react@52c870c8d )**: Fix shallow renderer not allowing hooks in forwardRef render functions (facebook#15100) //<Sebastian Silbermann>//
- **[f1ff4348c](facebook/react@f1ff4348c )**: Don't suggest a function as its own dep (facebook#15115) //<Dan Abramov>//
- **[371bbf36b](facebook/react@371bbf36b )**: Add infrastructure for passive/non-passive event support for future API exploration (facebook#15036) //<Dominic Gannaway>//
- **[ab5fe174c](facebook/react@ab5fe174c )**: Don't set the first option as selected in select tag with `size` attribute  (facebook#14242) //<Mateusz>//
- **[935f60083](facebook/react@935f60083 )**: [email protected] //<Dan Abramov>//
- **[0c03a4743](facebook/react@0c03a4743 )**: Adds experimental event API scaffolding (facebook#15108) //<Dominic Gannaway>//
- **[1204c7897](facebook/react@1204c7897 )**: [eslint] Wording tweaks (facebook#15078) //<Sophie Alpert>//
- **[9d77a317b](facebook/react@9d77a317b )**: Improve async useEffect warning (facebook#15104) //<Dan Abramov>//
- **[103378b1e](facebook/react@103378b1e )**: Warn for javascript: URLs in DOM sinks (facebook#15047) //<Sebastian Markbåge>//
- **[5d0c3c6c7](facebook/react@5d0c3c6c7 )**: [Partial Hydration] Render client-only content at normal priority (facebook#15061) //<Sebastian Markbåge>//
- **[6a4a261ee](facebook/react@6a4a261ee )**: Test suspended children are hidden before layout in persistent mode (facebook#15030) //<Andrew Clark>//
- **[bc8bd24c1](facebook/react@bc8bd24c1 )**: Run persistent mode tests in CI (facebook#15029) //<Andrew Clark>//
- **[3f4852fa5](facebook/react@3f4852fa5 )**: Run Placeholder tests in persistent mode, too (facebook#15013) //<Andrew Clark>//
- **[d0289c7e3](facebook/react@d0289c7e3 )**: [email protected] //<Dan Abramov>//
- **[03ad9c73e](facebook/react@03ad9c73e )**: [ESLint] Tweak setState updater message and add useEffect(async) warning (facebook#15055) //<Dan Abramov>//
- **[eb6247a9a](facebook/react@eb6247a9a )**: More concise messages (facebook#15053) //<Dan Abramov>//
- **[197703ecc](facebook/react@197703ecc )**: [ESLint] Add more hints to lint messages (facebook#15046) //<Dan Abramov>//
- **[6d2666bab](facebook/react@6d2666bab )**: Fix ESLint rule crash (facebook#15044) //<Dan Abramov>//
- **[9b7e1d138](facebook/react@9b7e1d138 )**: [ESLint] Suggest moving inside a Hook or useCallback when bare function is a dependency (facebook#15026) //<Dan Abramov>//
- **[1e3b6192b](facebook/react@1e3b6192b )**: Import Scheduler directly, not via host config (facebook#14984) //<Andrew Clark>//
- **[5d49dafac](facebook/react@5d49dafac )**: Enforce deps array in useMemo and useCallback (facebook#15025) //<Dan Abramov>//
- **[a9aa24ed8](facebook/react@a9aa24ed8 )**: 16.8.4 and changelog //<Brian Vaughn>//
- **[fa5d4ee43](facebook/react@fa5d4ee43 )**: [ESLint] Treat functions that don't capture anything as static (facebook#14996) //<Dan Abramov>//
- **[fd557d453](facebook/react@fd557d453 )**: Warn on mount when deps are not an array (facebook#15018) //<Dan Abramov>//
- **[ce45ca9ba](facebook/react@ce45ca9ba )**: Prettier //<Andrew Clark>//
- **[757a70b25](facebook/react@757a70b25 )**: ReactNoop.yield -> Scheduler.yieldValue (facebook#15008) //<Andrew Clark>//
- **[9d756d903](facebook/react@9d756d903 )**: Revert facebook#14756 changes to ReactFiberScheduler (facebook#14992) //<Andrew Clark>//
- **[f16442a10](facebook/react@f16442a10 )**: [email protected] //<Dan Abramov>//
- **[e1e45fb36](facebook/react@e1e45fb36 )**: [ESLint] Suggest to destructure props when they are only used as members (facebook#14993) //<Dan Abramov>//
- **[59ef28437](facebook/react@59ef28437 )**: Warn about dependencies outside of render scope (facebook#14990) //<Dan Abramov>//
- **[df7b4768c](facebook/react@df7b4768c )**: [ESLint] Deduplicate suggested dependencies (facebook#14982) //<Dan Abramov>//
- **[02404d793](facebook/react@02404d793 )**: Avoid dynamic dispatch for scheduler calls (facebook#14968) //<Dan Abramov>//
- **[bb2939ccc](facebook/react@bb2939ccc )**: Support editable useState hooks in DevTools (facebook#14906) //<Brian Vaughn>//
- **[69060e1da](facebook/react@69060e1da )**: Swap expect(ReactNoop) for expect(Scheduler) (facebook#14971) //<Andrew Clark>//
- **[ccb2a8a44](facebook/react@ccb2a8a44 )**: Replace test renderer's fake Scheduler implementation with mock build (facebook#14970) //<Andrew Clark>//
- **[53e787b45](facebook/react@53e787b45 )**: Replace noop's fake Scheduler implementation with mock Scheduler build (facebook#14969) //<Andrew Clark>//
- **[3ada82b74](facebook/react@3ada82b74 )**: Allow extraneous effect dependencies (facebook#14967) //<Dan Abramov>//
- **[00748c53e](facebook/react@00748c53e )**: Add new mock build of Scheduler with flush, yield API (facebook#14964) //<Andrew Clark>//
- **[4186952a6](facebook/react@4186952a6 )**: Fixed incompatibility between react-debug-tools and useContext() (facebook#14940) //<Brian Vaughn>//
- **[0b8efb229](facebook/react@0b8efb229 )**: Allow omitting constant primitive deps (facebook#14959) //<Dan Abramov>//

Changelog:
[General][Changed] - React sync for revisions 8e25ed2...ec6691a

Follow steps in the [React Native test plan](https://our.intern.facebook.com/intern/dex/react/test-workflows-react-native/).

Reviewed By: shergin

Differential Revision: D15171103

fbshipit-source-id: d16b54dfd575b3a1fa38e6a132633f42c715b4fd

# Conflicts:
#	package.json
#	yarn.lock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.
Projects
None yet
Development

Successfully merging this pull request may close these issues.