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

Fix inverted FlatList for Android: add perspective transform #14560

Conversation

bartolkaruza
Copy link

On one of our test phones, a Huawei P10 VTR-L09, running Android 7.0 any rotate or scale animations through transforms are not working, unless {"perspective": 1} is added in the transforms array. I found the perspective solution here #13522 .

The new inverted property for FlatList relies on a scaleX/scaleY transform. Because this transform does not work on some Android devices, the FlatList is not displayed at all on those devices. This fix just adds the extra perspective array element. The result is a correctly displayed FlatList when inverted is set to true.

Test Plan

Tested this on inverted FlatList on Android and iOS, on real devices. iOS is unaffected by the addition. Android now displays the FlatList correctly.

Minimal gist for testing: https://gist.github.com/bartolkaruza/87ef49d1b2d0227782739584b110722b

Minimal gist showing the View transform with scaleY issue:
https://gist.github.com/bartolkaruza/42bb9f9d63baaaebb48fc493c8127e1a

@facebook-github-bot facebook-github-bot added GH Review: review-needed CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. labels Jun 16, 2017
const verticalTransform = [{scaleY: -1}];
const horizontalTransform = [{scaleX: -1}];

if(Platform.OS === 'android') {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

identifier Platform Could not resolve name

const verticalTransform = [{scaleY: -1}];
const horizontalTransform = [{scaleX: -1}];

if(Platform.OS === 'android') {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

keyword-spacing: Expected space(s) after "if".

const verticalTransform = [{scaleY: -1}];
const horizontalTransform = [{scaleX: -1}];

if(Platform.OS === 'android') {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no-undef: 'Platform' is not defined.

@janicduplessis
Copy link
Contributor

@bartolkaruza Thanks for figuring out a fix for this issue. I think a better fix would be to always set perspective: 1 for all transforms in the native code, this way it would completely fix the bug instead of just for FlatList.

I think we could always call view.setCameraDistance with whatever camera distance value perspective: 1 gives if no perspective transform is specified. I was thinking just adding an else branch in that code https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java#L195

@bartolkaruza
Copy link
Author

I agree that would be a much better fix. I can look into this today if you are not implementing it @janicduplessis ?

@Feng999
Copy link
Contributor

Feng999 commented Jun 20, 2017

Seems to be same problem with #14462. Need someone to confirm

@janicduplessis
Copy link
Contributor

@bartolkaruza I don't have a Huawei device so if you could look into it it would be great.

@bartolkaruza
Copy link
Author

I opened a new PR for the fix in native code #14646

@yury
Copy link

yury commented Jul 3, 2017

We have Huawei device and {"perspective": 1} doesn't help :(
Works only with deprecated scaleX/Y.

@bartolkaruza
Copy link
Author

@yury Have you tried "perspective": 1280, which I used in the proposed fix at #14646? Both are working on a P9 Huawei device for me.

@yury
Copy link

yury commented Jul 3, 2017

@bartolkaruza I didn't try 1280, but I think it is not good solution either - it is dependant on screen density.

The distance is expressed in "depth pixels." The default distance depends on the screen density. For instance, on a medium density display, the default distance is 1280. On a high density display, the default distance is 1920.
from docs

@bartolkaruza
Copy link
Author

The perspective value is multiplied in native code. So 1280 * density is the actual applied value. By setting 1280 you set it to the default value for all densities respectively.

@yury
Copy link

yury commented Jul 3, 2017

@bartolkaruza will try 1280 later today and let you know about results.

@yury
Copy link

yury commented Jul 3, 2017

@bartolkaruza 1280 works

facebook-github-bot pushed a commit that referenced this pull request Aug 7, 2017
Summary:
This is the better fix for the same issue as mentioned in PR #14560

Certain rotateX, rotateY, scaleX and scaleY animations do not work correctly on some phones in Android 7.0.0, causing issues such as #14462 and #13522.

The issue can be fixed on JS side by setting an additional transform for perspective, eg. `{perspective: 1}` which triggers a `setCameraDistance` call in native code.

The fix in this PR always sets the camera distance on transforms, even when no perspective transform was specified. The default camera distance is set before the scale multiplication, to make sure that the value is appropriate for the phones density. The value calculates to an Android 'default' camera distance of 1280 * scale multiplier; https://developer.android.com/reference/android/view/View.html#setCameraDistance(float)

If a perspective transform is specified, this value will be used correctly still.

This fix was tested on the RNTester. Before the fix, on some devices, the FlatList example, with inverted turned on, will not display the list.

Devices that have been confirmed to have this issue:
FRD-AL10(honor 8) EMUI:5.0 android: 7.0
MHA-AL00(Mate9) EMUI:5.0 android:7.0
Huawei P10 VTR-L09, running Android 7.0

After the fix, the inverted FlatList displays correctly.
Closes #14646

Differential Revision: D5492009

Pulled By: shergin

fbshipit-source-id: d4da3b090a7e65df3b84e48ea32c964f4f8f7c88
hramos added a commit to hramos/react-native that referenced this pull request Feb 6, 2019
Summary:
@public
This sync includes the following changes:
- **[45fc46bfa](facebook/react@45fc46bfa )**: 16.8.1 packages //<Brian Vaughn>//
- **[f2e2637c8](facebook/react@f2e2637c8 )**: Backwards compat fix for ReactCurrentDispatcher on older react versions (facebook#14770) //<Brian Vaughn>//
- **[1107b9673](facebook/react@1107b9673 )**: [TestUtils.act] warn when using TestUtils.act in node (facebook#14768) //<Sunil Pai>//
- **[0975ea327](facebook/react@0975ea327 )**: eslint-plugin-react-hooks v1.0.0 //<Brian Vaughn>//
- **[bc9818f24](facebook/react@bc9818f24 )**: Scheduler.unstable_next (facebook#14756) //<Andrew Clark>//
- **[ce6ecd3fb](facebook/react@ce6ecd3fb )**: Add 16.8.0 changelog and update some READMEs (facebook#14692) //<Dan Abramov>//
- **[008a2ab9c](facebook/react@008a2ab9c )**: 16.8.0 //<Brian Vaughn>//
- **[d1326f466](facebook/react@d1326f466 )**: [TestUtils.act] fix return result checking  (facebook#14758) //<Sunil Pai>//
- **[267ed9814](facebook/react@267ed9814 )**: expose `TestUtils.act()` for batching actions in tests (facebook#14744) //<Sunil Pai>//
- **[fb3f7bfde](facebook/react@fb3f7bfde )**: Avoid importing Scheduler directly (facebook#14757) //<Andrew Clark>//
- **[e602b5291](facebook/react@e602b5291 )**: Use SameValue instead of === to check for dispatchAction equivalence (facebook#14752) //<Jessica Franco>//
- **[e489c3f9c](facebook/react@e489c3f9c )**: Update the version with Hooks proposal in README (facebook#14751) //<SToneX>//
- **[c21c41ecf](facebook/react@c21c41ecf )**: Tweak invalid Hook warning and error (facebook#14747) //<Dan Abramov>//
- **[fec00a869](facebook/react@fec00a869 )**: Typo in comment (facebook#14739) //<Deniz Susman>//
- **[66eb29374](facebook/react@66eb29374 )**: Restrict effect return type to a function or nothing (facebook#14119) //<Andrew Clark>//
- **[51c07912a](facebook/react@51c07912a )**: Warn when second argument is passed to useCallback (facebook#14729) //<Dan Abramov>//
- **[70d407583](facebook/react@70d407583 )**: Move Hook mismatch warning to first mismatch site (facebook#14720) //<Andrew Clark>//
- **[ba6477aa3](facebook/react@ba6477aa3 )**: Improve Reducer Hook's lazy init API (facebook#14723) //<Andrew Clark>//
- **[cb1ff430e](facebook/react@cb1ff430e )**: Phased dispatcher (facebook#14701) //<Andrew Clark>//
- **[9d483dcfd](facebook/react@9d483dcfd )**: Spelling abitrarily -> arbitrarily (facebook#14710) //<Peter Donald>//
- **[e19c9e106](facebook/react@e19c9e106 )**: Fix issue with multiple code branches in hooks linter (facebook#14661) //<Yurick>//
- **[f11a9c1cb](facebook/react@f11a9c1cb )**: State update bug in concurrent mode (facebook#14698) //<Brian Vaughn>//
- **[e679a4b6e](facebook/react@e679a4b6e )**: Fix typo in code comment (facebook#14696) //<Greg Hurrell>//
- **[8bcc88f2e](facebook/react@8bcc88f2e )**: Make all readContext() and Hook-in-a-Hook checks DEV-only (facebook#14677) //<Dan Abramov>//
- **[6cb26774e](facebook/react@6cb26774e )**: Enable hooks! (facebook#14679) //<Brian Vaughn>//
- **[73962c366](facebook/react@73962c366 )**: Revert "Revert "Double-render function components with Hooks in DEV in StrictMode" (facebook#14652)" (facebook#14654) //<Dan Abramov>//
- **[994439228](facebook/react@994439228 )**: Put DEV-only code into DEV blocks (facebook#14673) //<Dan Abramov>//
- **[f0befae65](facebook/react@f0befae65 )**: Tweak context invariant message (facebook#14671) //<Dan Abramov>//
- **[a129259ad](facebook/react@a129259ad )**: Disallow reading context during useMemo etc (facebook#14653) //<Dan Abramov>//
- **[c068d31cc](facebook/react@c068d31cc )**: Add unit tests for concurrent mode event dispatching (facebook#14415) //<Sebastian Markbåge>//
- **[38247cba3](facebook/react@38247cba3 )**: --save is no longer needed (facebook#14302) //<SamCortopassi>//
- **[3f0bcaf0d](facebook/react@3f0bcaf0d )**: Importing React for the first example. (facebook#14346) //<Ramón Chancay Ortega>//
- **[ecd919a2f](facebook/react@ecd919a2f )**: RFC: warn when returning different hooks on subsequent renders (facebook#14585) //<Sunil Pai>//
- **[3fbebb2a0](facebook/react@3fbebb2a0 )**: Revert "Double-render function components with Hooks in DEV in StrictMode" (facebook#14652) //<Dan Abramov>//
- **[5fce6488c](facebook/react@5fce6488c )**: Revert "Disallow reading context during useMemo etc" (facebook#14651) //<Dan Abramov>//
- **[fe2ecd276](facebook/react@fe2ecd276 )**: Add test coverage for readContext() on the server (facebook#14649) //<Dan Abramov>//
- **[8f45a7fdc](facebook/react@8f45a7fdc )**: Warn about incorrect use of useImperativeHandle() (facebook#14647) //<Dan Abramov>//
- **[1fcbd2243](facebook/react@1fcbd2243 )**: Disallow reading context during useMemo etc (facebook#14648) //<Dan Abramov>//
- **[2a084f51a](facebook/react@2a084f51a )**: Warn about refs on lazy function components (facebook#14645) //<Dan Abramov>//
- **[b5a3df6e8](facebook/react@b5a3df6e8 )**: Fix typo (facebook#14560) //<Linchengyi>//
- **[9c146e675](facebook/react@9c146e675 )**: fix typo (facebook#14316) //<liunian>//
- **[baa6d40fc](facebook/react@baa6d40fc )**: Mention forwardRef() in <Fn ref={...} /> errors and warnings (facebook#14644) //<Dan Abramov>//
- **[a1414e894](facebook/react@a1414e894 )**: Double-render function components with Hooks in DEV in StrictMode (facebook#14643) //<Dan Abramov>//
- **[10a7a5b5c](facebook/react@10a7a5b5c )**: Fix synchronous thenable rejection (facebook#14633) //<Dan Abramov>//
- **[a2fa6eb98](facebook/react@a2fa6eb98 )**: Move lazy._result assignment (facebook#14632) //<Dan Abramov>//
- **[9120f6c2d](facebook/react@9120f6c2d )**: Support sync thenables for lazy() (facebook#14626) //<Dan Abramov>//
- **[b66e6e41e](facebook/react@b66e6e41e )**: Add directory details to the package.json of all packages (facebook#14628) //<Grey Baker>//
- **[177fb7635](facebook/react@177fb7635 )**: Warn when second callback is passed to setState/dispatch in Hooks (facebook#14625) //<Dan Abramov>//
- **[d17d0b99c](facebook/react@d17d0b99c )**: Use public context.report interface in eslint rules (facebook#14623) //<Sebastian Silbermann>//
- **[4f332885a](facebook/react@4f332885a )**: Fix shallow renderer set instance state after gDSFP before calling sCU (facebook#14613) //<Yi-Shan, Chen>//
- **[e1cd83e49](facebook/react@e1cd83e49 )**: Throw an error when using hooks inside useMemo/useState/useReducer, or .memo's comparator (facebook#14608) //<Sunil Pai>//
- **[be457ca68](facebook/react@be457ca68 )**: Small tweaks to SSR to match facebook#14594 (facebook#14618) //<Dan Abramov>//
- **[17d70df91](facebook/react@17d70df91 )**: Warn when mixing createRoot() and old APIs (facebook#14615) //<Dan Abramov>//
- **[4feab7fc9](facebook/react@4feab7fc9 )**: Add hooks support to ReactShallowRenderer (facebook#14567) //<Dominic Gannaway>//
- **[1454a8be0](facebook/react@1454a8be0 )**: Don't bother comparing constructor when deps are not provided (facebook#14594) //<Andrew Clark>//
- **[71b64d521](facebook/react@71b64d521 )**: Warn if number of hooks increases (facebook#14591) //<Andrew Clark>//
- **[790c8ef04](facebook/react@790c8ef04 )**: Allow useReducer to bail out of rendering by returning previous state (facebook#14569) //<Andrew Clark>//
- **[7ab8a8e97](facebook/react@7ab8a8e97 )**: Added Flow type to keep hooks dispatchers in-sync (facebook#14599) //<Brian Vaughn>//
- **[4392e3821](facebook/react@4392e3821 )**: useDebugValue should throw if used in a class component (facebook#14601) //<Brian Vaughn>//
- **[153a0b598](facebook/react@153a0b598 )**: Add noop useDebugValue hook to partial/server renderer (facebook#14597) //<Brian Vaughn>//
- **[7ad9806d1](facebook/react@7ad9806d1 )**: Tweak to avoid property read (facebook#14593) //<Brandon Dail>//
- **[0fc154751](facebook/react@0fc154751 )**: Avoid new Set([iterable]) for thenables (facebook#14592) //<Brandon Dail>//
- **[edb1f5956](facebook/react@edb1f5956 )**: Support configurable labels for custom hooks (facebook#14559) //<Brian Vaughn>//
- **[3e15b1c69](facebook/react@3e15b1c69 )**: make a fork for ReactCurrentDispatcher (facebook#14588) //<Sunil Pai>//
- **[0005d1e3f](facebook/react@0005d1e3f )**: Fix typo (facebook#14576) //<Carl Mungazi>//
- **[f290138d3](facebook/react@f290138d3 )**: react-debug-tools accepts currentDispatcher ref as param (facebook#14556) //<Brian Vaughn>//
- **[b4ad8e947](facebook/react@b4ad8e947 )**: rename useImperativeMethods -> useImperativeHandle (facebook#14565) //<Sunil Pai>//
- **[ab03e3d65](facebook/react@ab03e3d65 )**: Inject ReactCurrentDispatcher ref to DevTools (facebook#14550) //<Brian Vaughn>//
- **[19ef0ec11](facebook/react@19ef0ec11 )**: Separate current owner and dispatcher (facebook#14548) //<Brian Vaughn>//
- **[a9b035b0c](facebook/react@a9b035b0c )**: Separate Object.is polyfill (facebook#14334) //<Maksim Markelov>//
- **[547e059f0](facebook/react@547e059f0 )**: Simplify wording of key warning (facebook#14503) //<Sophie Alpert>//
- **[3494ee57e](facebook/react@3494ee57e )**: Update ReactUpdateQueue.js (facebook#14521) //<Carl Mungazi>//
- **[659c13963](facebook/react@659c13963 )**: Update ReactFiberScheduler.js (facebook#14477) //<Carl Mungazi>//
- **[c695b2384](facebook/react@c695b2384 )**: React v16.7.0 //<Andrew Clark>//
- **[1c5aa2f23](facebook/react@1c5aa2f23 )**: Move SchedulerFeatureFlags fork to src directory to fix lint //<Andrew Clark>//
- **[653bc582f](facebook/react@653bc582f )**: Create separate SchedulerFeatureFlags instead of using ReactFeatureFlags (facebook#14455) //<Andrew Clark>//
- **[8bfef0da5](facebook/react@8bfef0da5 )**: Make scheduler debugging feature flag static //<Andrew Clark>//
- **[4a1072194](facebook/react@4a1072194 )**: Memoize promise listeners to prevent exponential growth (facebook#14429) //<Andrew Clark>//
- **[535804f5c](facebook/react@535804f5c )**: Removed Fabric-specific feature flag files and updated Rollup to use the (non-Fabric) React Native flag files. (facebook#14437) //<Brian Vaughn>//
- **[2743fb7b2](facebook/react@2743fb7b2 )**: Enable hooks by default for FB React Native renderer (facebook#14435) //<Brian Vaughn>//
- **[7325ebe4d](facebook/react@7325ebe4d )**: Inject overrideProps() fn to DevTools (facebook#14427) //<Brian Vaughn>//
- **[a22880e5e](facebook/react@a22880e5e )**: Add support for Suspense & lazy() to the react-is package (facebook#14423) //<Pleun Vanderbauwhede>//
- **[947bddd5c](facebook/react@947bddd5c )**: Remove redundant argument of getPlugins function (facebook#14419) //<Heaven>//
- **[8df4d59be](facebook/react@8df4d59be )**: Implement pauseExecution, continueExecution, dumpQueue for Scheduler (facebook#14053) //<Kevin Chavez>//
- **[5bb4ad737](facebook/react@5bb4ad737 )**: Added ErrorBoundary tests for useEffect and useLayoutEffect (facebook#14401) //<Brian Vaughn>//
- **[98eb5ae53](facebook/react@98eb5ae53 )**: TestRenderer toJSON should not expose the Array wrapper Suspense uses for hidden trees (facebook#14392) //<Brian Vaughn>//
- **[39489e767](facebook/react@39489e767 )**: Enable hooks in fabric (facebook#14301) //<Spencer Ahrens>//
- **[1dc108e58](facebook/react@1dc108e58 )**: Tweaked wording for v8 "performance cliff" issue //<Brian Vaughn>//

Release Notes:
[GENERAL] [Changed] - React sync for revisions 6bf5e85...aa94237 (React 16.8.1)

Differential Revision: D13976467

fbshipit-source-id: 728fbf4fecde33184b6b36f863f2dfe940becc27
hramos added a commit to hramos/react-native that referenced this pull request Feb 7, 2019
Summary:
Pull Request resolved: facebook#23320

@public
This sync includes the following changes:
- **[45fc46bfa](facebook/react@45fc46bfa )**: 16.8.1 packages //<Brian Vaughn>//
- **[f2e2637c8](facebook/react@f2e2637c8 )**: Backwards compat fix for ReactCurrentDispatcher on older react versions (facebook#14770) //<Brian Vaughn>//
- **[1107b9673](facebook/react@1107b9673 )**: [TestUtils.act] warn when using TestUtils.act in node (facebook#14768) //<Sunil Pai>//
- **[0975ea327](facebook/react@0975ea327 )**: eslint-plugin-react-hooks v1.0.0 //<Brian Vaughn>//
- **[bc9818f24](facebook/react@bc9818f24 )**: Scheduler.unstable_next (facebook#14756) //<Andrew Clark>//
- **[ce6ecd3fb](facebook/react@ce6ecd3fb )**: Add 16.8.0 changelog and update some READMEs (facebook#14692) //<Dan Abramov>//
- **[008a2ab9c](facebook/react@008a2ab9c )**: 16.8.0 //<Brian Vaughn>//
- **[d1326f466](facebook/react@d1326f466 )**: [TestUtils.act] fix return result checking  (facebook#14758) //<Sunil Pai>//
- **[267ed9814](facebook/react@267ed9814 )**: expose `TestUtils.act()` for batching actions in tests (facebook#14744) //<Sunil Pai>//
- **[fb3f7bfde](facebook/react@fb3f7bfde )**: Avoid importing Scheduler directly (facebook#14757) //<Andrew Clark>//
- **[e602b5291](facebook/react@e602b5291 )**: Use SameValue instead of === to check for dispatchAction equivalence (facebook#14752) //<Jessica Franco>//
- **[e489c3f9c](facebook/react@e489c3f9c )**: Update the version with Hooks proposal in README (facebook#14751) //<SToneX>//
- **[c21c41ecf](facebook/react@c21c41ecf )**: Tweak invalid Hook warning and error (facebook#14747) //<Dan Abramov>//
- **[fec00a869](facebook/react@fec00a869 )**: Typo in comment (facebook#14739) //<Deniz Susman>//
- **[66eb29374](facebook/react@66eb29374 )**: Restrict effect return type to a function or nothing (facebook#14119) //<Andrew Clark>//
- **[51c07912a](facebook/react@51c07912a )**: Warn when second argument is passed to useCallback (facebook#14729) //<Dan Abramov>//
- **[70d407583](facebook/react@70d407583 )**: Move Hook mismatch warning to first mismatch site (facebook#14720) //<Andrew Clark>//
- **[ba6477aa3](facebook/react@ba6477aa3 )**: Improve Reducer Hook's lazy init API (facebook#14723) //<Andrew Clark>//
- **[cb1ff430e](facebook/react@cb1ff430e )**: Phased dispatcher (facebook#14701) //<Andrew Clark>//
- **[9d483dcfd](facebook/react@9d483dcfd )**: Spelling abitrarily -> arbitrarily (facebook#14710) //<Peter Donald>//
- **[e19c9e106](facebook/react@e19c9e106 )**: Fix issue with multiple code branches in hooks linter (facebook#14661) //<Yurick>//
- **[f11a9c1cb](facebook/react@f11a9c1cb )**: State update bug in concurrent mode (facebook#14698) //<Brian Vaughn>//
- **[e679a4b6e](facebook/react@e679a4b6e )**: Fix typo in code comment (facebook#14696) //<Greg Hurrell>//
- **[8bcc88f2e](facebook/react@8bcc88f2e )**: Make all readContext() and Hook-in-a-Hook checks DEV-only (facebook#14677) //<Dan Abramov>//
- **[6cb26774e](facebook/react@6cb26774e )**: Enable hooks! (facebook#14679) //<Brian Vaughn>//
- **[73962c366](facebook/react@73962c366 )**: Revert "Revert "Double-render function components with Hooks in DEV in StrictMode" (facebook#14652)" (facebook#14654) //<Dan Abramov>//
- **[994439228](facebook/react@994439228 )**: Put DEV-only code into DEV blocks (facebook#14673) //<Dan Abramov>//
- **[f0befae65](facebook/react@f0befae65 )**: Tweak context invariant message (facebook#14671) //<Dan Abramov>//
- **[a129259ad](facebook/react@a129259ad )**: Disallow reading context during useMemo etc (facebook#14653) //<Dan Abramov>//
- **[c068d31cc](facebook/react@c068d31cc )**: Add unit tests for concurrent mode event dispatching (facebook#14415) //<Sebastian Markbåge>//
- **[38247cba3](facebook/react@38247cba3 )**: --save is no longer needed (facebook#14302) //<SamCortopassi>//
- **[3f0bcaf0d](facebook/react@3f0bcaf0d )**: Importing React for the first example. (facebook#14346) //<Ramón Chancay Ortega>//
- **[ecd919a2f](facebook/react@ecd919a2f )**: RFC: warn when returning different hooks on subsequent renders (facebook#14585) //<Sunil Pai>//
- **[3fbebb2a0](facebook/react@3fbebb2a0 )**: Revert "Double-render function components with Hooks in DEV in StrictMode" (facebook#14652) //<Dan Abramov>//
- **[5fce6488c](facebook/react@5fce6488c )**: Revert "Disallow reading context during useMemo etc" (facebook#14651) //<Dan Abramov>//
- **[fe2ecd276](facebook/react@fe2ecd276 )**: Add test coverage for readContext() on the server (facebook#14649) //<Dan Abramov>//
- **[8f45a7fdc](facebook/react@8f45a7fdc )**: Warn about incorrect use of useImperativeHandle() (facebook#14647) //<Dan Abramov>//
- **[1fcbd2243](facebook/react@1fcbd2243 )**: Disallow reading context during useMemo etc (facebook#14648) //<Dan Abramov>//
- **[2a084f51a](facebook/react@2a084f51a )**: Warn about refs on lazy function components (facebook#14645) //<Dan Abramov>//
- **[b5a3df6e8](facebook/react@b5a3df6e8 )**: Fix typo (facebook#14560) //<Linchengyi>//
- **[9c146e675](facebook/react@9c146e675 )**: fix typo (facebook#14316) //<liunian>//
- **[baa6d40fc](facebook/react@baa6d40fc )**: Mention forwardRef() in <Fn ref={...} /> errors and warnings (facebook#14644) //<Dan Abramov>//
- **[a1414e894](facebook/react@a1414e894 )**: Double-render function components with Hooks in DEV in StrictMode (facebook#14643) //<Dan Abramov>//
- **[10a7a5b5c](facebook/react@10a7a5b5c )**: Fix synchronous thenable rejection (facebook#14633) //<Dan Abramov>//
- **[a2fa6eb98](facebook/react@a2fa6eb98 )**: Move lazy._result assignment (facebook#14632) //<Dan Abramov>//
- **[9120f6c2d](facebook/react@9120f6c2d )**: Support sync thenables for lazy() (facebook#14626) //<Dan Abramov>//
- **[b66e6e41e](facebook/react@b66e6e41e )**: Add directory details to the package.json of all packages (facebook#14628) //<Grey Baker>//
- **[177fb7635](facebook/react@177fb7635 )**: Warn when second callback is passed to setState/dispatch in Hooks (facebook#14625) //<Dan Abramov>//
- **[d17d0b99c](facebook/react@d17d0b99c )**: Use public context.report interface in eslint rules (facebook#14623) //<Sebastian Silbermann>//
- **[4f332885a](facebook/react@4f332885a )**: Fix shallow renderer set instance state after gDSFP before calling sCU (facebook#14613) //<Yi-Shan, Chen>//
- **[e1cd83e49](facebook/react@e1cd83e49 )**: Throw an error when using hooks inside useMemo/useState/useReducer, or .memo's comparator (facebook#14608) //<Sunil Pai>//
- **[be457ca68](facebook/react@be457ca68 )**: Small tweaks to SSR to match facebook#14594 (facebook#14618) //<Dan Abramov>//
- **[17d70df91](facebook/react@17d70df91 )**: Warn when mixing createRoot() and old APIs (facebook#14615) //<Dan Abramov>//
- **[4feab7fc9](facebook/react@4feab7fc9 )**: Add hooks support to ReactShallowRenderer (facebook#14567) //<Dominic Gannaway>//
- **[1454a8be0](facebook/react@1454a8be0 )**: Don't bother comparing constructor when deps are not provided (facebook#14594) //<Andrew Clark>//
- **[71b64d521](facebook/react@71b64d521 )**: Warn if number of hooks increases (facebook#14591) //<Andrew Clark>//
- **[790c8ef04](facebook/react@790c8ef04 )**: Allow useReducer to bail out of rendering by returning previous state (facebook#14569) //<Andrew Clark>//
- **[7ab8a8e97](facebook/react@7ab8a8e97 )**: Added Flow type to keep hooks dispatchers in-sync (facebook#14599) //<Brian Vaughn>//
- **[4392e3821](facebook/react@4392e3821 )**: useDebugValue should throw if used in a class component (facebook#14601) //<Brian Vaughn>//
- **[153a0b598](facebook/react@153a0b598 )**: Add noop useDebugValue hook to partial/server renderer (facebook#14597) //<Brian Vaughn>//
- **[7ad9806d1](facebook/react@7ad9806d1 )**: Tweak to avoid property read (facebook#14593) //<Brandon Dail>//
- **[0fc154751](facebook/react@0fc154751 )**: Avoid new Set([iterable]) for thenables (facebook#14592) //<Brandon Dail>//
- **[edb1f5956](facebook/react@edb1f5956 )**: Support configurable labels for custom hooks (facebook#14559) //<Brian Vaughn>//
- **[3e15b1c69](facebook/react@3e15b1c69 )**: make a fork for ReactCurrentDispatcher (facebook#14588) //<Sunil Pai>//
- **[0005d1e3f](facebook/react@0005d1e3f )**: Fix typo (facebook#14576) //<Carl Mungazi>//
- **[f290138d3](facebook/react@f290138d3 )**: react-debug-tools accepts currentDispatcher ref as param (facebook#14556) //<Brian Vaughn>//
- **[b4ad8e947](facebook/react@b4ad8e947 )**: rename useImperativeMethods -> useImperativeHandle (facebook#14565) //<Sunil Pai>//
- **[ab03e3d65](facebook/react@ab03e3d65 )**: Inject ReactCurrentDispatcher ref to DevTools (facebook#14550) //<Brian Vaughn>//
- **[19ef0ec11](facebook/react@19ef0ec11 )**: Separate current owner and dispatcher (facebook#14548) //<Brian Vaughn>//
- **[a9b035b0c](facebook/react@a9b035b0c )**: Separate Object.is polyfill (facebook#14334) //<Maksim Markelov>//
- **[547e059f0](facebook/react@547e059f0 )**: Simplify wording of key warning (facebook#14503) //<Sophie Alpert>//
- **[3494ee57e](facebook/react@3494ee57e )**: Update ReactUpdateQueue.js (facebook#14521) //<Carl Mungazi>//
- **[659c13963](facebook/react@659c13963 )**: Update ReactFiberScheduler.js (facebook#14477) //<Carl Mungazi>//
- **[c695b2384](facebook/react@c695b2384 )**: React v16.7.0 //<Andrew Clark>//
- **[1c5aa2f23](facebook/react@1c5aa2f23 )**: Move SchedulerFeatureFlags fork to src directory to fix lint //<Andrew Clark>//
- **[653bc582f](facebook/react@653bc582f )**: Create separate SchedulerFeatureFlags instead of using ReactFeatureFlags (facebook#14455) //<Andrew Clark>//
- **[8bfef0da5](facebook/react@8bfef0da5 )**: Make scheduler debugging feature flag static //<Andrew Clark>//
- **[4a1072194](facebook/react@4a1072194 )**: Memoize promise listeners to prevent exponential growth (facebook#14429) //<Andrew Clark>//
- **[535804f5c](facebook/react@535804f5c )**: Removed Fabric-specific feature flag files and updated Rollup to use the (non-Fabric) React Native flag files. (facebook#14437) //<Brian Vaughn>//
- **[2743fb7b2](facebook/react@2743fb7b2 )**: Enable hooks by default for FB React Native renderer (facebook#14435) //<Brian Vaughn>//
- **[7325ebe4d](facebook/react@7325ebe4d )**: Inject overrideProps() fn to DevTools (facebook#14427) //<Brian Vaughn>//
- **[a22880e5e](facebook/react@a22880e5e )**: Add support for Suspense & lazy() to the react-is package (facebook#14423) //<Pleun Vanderbauwhede>//
- **[947bddd5c](facebook/react@947bddd5c )**: Remove redundant argument of getPlugins function (facebook#14419) //<Heaven>//
- **[8df4d59be](facebook/react@8df4d59be )**: Implement pauseExecution, continueExecution, dumpQueue for Scheduler (facebook#14053) //<Kevin Chavez>//
- **[5bb4ad737](facebook/react@5bb4ad737 )**: Added ErrorBoundary tests for useEffect and useLayoutEffect (facebook#14401) //<Brian Vaughn>//
- **[98eb5ae53](facebook/react@98eb5ae53 )**: TestRenderer toJSON should not expose the Array wrapper Suspense uses for hidden trees (facebook#14392) //<Brian Vaughn>//
- **[39489e767](facebook/react@39489e767 )**: Enable hooks in fabric (facebook#14301) //<Spencer Ahrens>//
- **[1dc108e58](facebook/react@1dc108e58 )**: Tweaked wording for v8 "performance cliff" issue //<Brian Vaughn>//

Release Notes:
[GENERAL] [Changed] - React sync for revisions 6bf5e85...aa94237 (React 16.8.1)

Differential Revision: D13976467

fbshipit-source-id: 72db51d098109081c19bce79129a7bb5932d77f5
hramos added a commit to hramos/react-native that referenced this pull request Feb 7, 2019
Summary:
This sync includes the following changes:
- **[45fc46bfa](facebook/react@45fc46bfa )**: 16.8.1 packages //<Brian Vaughn>//
- **[f2e2637c8](facebook/react@f2e2637c8 )**: Backwards compat fix for ReactCurrentDispatcher on older react versions (facebook#14770) //<Brian Vaughn>//
- **[1107b9673](facebook/react@1107b9673 )**: [TestUtils.act] warn when using TestUtils.act in node (facebook#14768) //<Sunil Pai>//
- **[0975ea327](facebook/react@0975ea327 )**: eslint-plugin-react-hooks v1.0.0 //<Brian Vaughn>//
- **[bc9818f24](facebook/react@bc9818f24 )**: Scheduler.unstable_next (facebook#14756) //<Andrew Clark>//
- **[ce6ecd3fb](facebook/react@ce6ecd3fb )**: Add 16.8.0 changelog and update some READMEs (facebook#14692) //<Dan Abramov>//
- **[008a2ab9c](facebook/react@008a2ab9c )**: 16.8.0 //<Brian Vaughn>//
- **[d1326f466](facebook/react@d1326f466 )**: [TestUtils.act] fix return result checking  (facebook#14758) //<Sunil Pai>//
- **[267ed9814](facebook/react@267ed9814 )**: expose `TestUtils.act()` for batching actions in tests (facebook#14744) //<Sunil Pai>//
- **[fb3f7bfde](facebook/react@fb3f7bfde )**: Avoid importing Scheduler directly (facebook#14757) //<Andrew Clark>//
- **[e602b5291](facebook/react@e602b5291 )**: Use SameValue instead of === to check for dispatchAction equivalence (facebook#14752) //<Jessica Franco>//
- **[e489c3f9c](facebook/react@e489c3f9c )**: Update the version with Hooks proposal in README (facebook#14751) //<SToneX>//
- **[c21c41ecf](facebook/react@c21c41ecf )**: Tweak invalid Hook warning and error (facebook#14747) //<Dan Abramov>//
- **[fec00a869](facebook/react@fec00a869 )**: Typo in comment (facebook#14739) //<Deniz Susman>//
- **[66eb29374](facebook/react@66eb29374 )**: Restrict effect return type to a function or nothing (facebook#14119) //<Andrew Clark>//
- **[51c07912a](facebook/react@51c07912a )**: Warn when second argument is passed to useCallback (facebook#14729) //<Dan Abramov>//
- **[70d407583](facebook/react@70d407583 )**: Move Hook mismatch warning to first mismatch site (facebook#14720) //<Andrew Clark>//
- **[ba6477aa3](facebook/react@ba6477aa3 )**: Improve Reducer Hook's lazy init API (facebook#14723) //<Andrew Clark>//
- **[cb1ff430e](facebook/react@cb1ff430e )**: Phased dispatcher (facebook#14701) //<Andrew Clark>//
- **[9d483dcfd](facebook/react@9d483dcfd )**: Spelling abitrarily -> arbitrarily (facebook#14710) //<Peter Donald>//
- **[e19c9e106](facebook/react@e19c9e106 )**: Fix issue with multiple code branches in hooks linter (facebook#14661) //<Yurick>//
- **[f11a9c1cb](facebook/react@f11a9c1cb )**: State update bug in concurrent mode (facebook#14698) //<Brian Vaughn>//
- **[e679a4b6e](facebook/react@e679a4b6e )**: Fix typo in code comment (facebook#14696) //<Greg Hurrell>//
- **[8bcc88f2e](facebook/react@8bcc88f2e )**: Make all readContext() and Hook-in-a-Hook checks DEV-only (facebook#14677) //<Dan Abramov>//
- **[6cb26774e](facebook/react@6cb26774e )**: Enable hooks! (facebook#14679) //<Brian Vaughn>//
- **[73962c366](facebook/react@73962c366 )**: Revert "Revert "Double-render function components with Hooks in DEV in StrictMode" (facebook#14652)" (facebook#14654) //<Dan Abramov>//
- **[994439228](facebook/react@994439228 )**: Put DEV-only code into DEV blocks (facebook#14673) //<Dan Abramov>//
- **[f0befae65](facebook/react@f0befae65 )**: Tweak context invariant message (facebook#14671) //<Dan Abramov>//
- **[a129259ad](facebook/react@a129259ad )**: Disallow reading context during useMemo etc (facebook#14653) //<Dan Abramov>//
- **[c068d31cc](facebook/react@c068d31cc )**: Add unit tests for concurrent mode event dispatching (facebook#14415) //<Sebastian Markbåge>//
- **[38247cba3](facebook/react@38247cba3 )**: --save is no longer needed (facebook#14302) //<SamCortopassi>//
- **[3f0bcaf0d](facebook/react@3f0bcaf0d )**: Importing React for the first example. (facebook#14346) //<Ramón Chancay Ortega>//
- **[ecd919a2f](facebook/react@ecd919a2f )**: RFC: warn when returning different hooks on subsequent renders (facebook#14585) //<Sunil Pai>//
- **[3fbebb2a0](facebook/react@3fbebb2a0 )**: Revert "Double-render function components with Hooks in DEV in StrictMode" (facebook#14652) //<Dan Abramov>//
- **[5fce6488c](facebook/react@5fce6488c )**: Revert "Disallow reading context during useMemo etc" (facebook#14651) //<Dan Abramov>//
- **[fe2ecd276](facebook/react@fe2ecd276 )**: Add test coverage for readContext() on the server (facebook#14649) //<Dan Abramov>//
- **[8f45a7fdc](facebook/react@8f45a7fdc )**: Warn about incorrect use of useImperativeHandle() (facebook#14647) //<Dan Abramov>//
- **[1fcbd2243](facebook/react@1fcbd2243 )**: Disallow reading context during useMemo etc (facebook#14648) //<Dan Abramov>//
- **[2a084f51a](facebook/react@2a084f51a )**: Warn about refs on lazy function components (facebook#14645) //<Dan Abramov>//
- **[b5a3df6e8](facebook/react@b5a3df6e8 )**: Fix typo (facebook#14560) //<Linchengyi>//
- **[9c146e675](facebook/react@9c146e675 )**: fix typo (facebook#14316) //<liunian>//
- **[baa6d40fc](facebook/react@baa6d40fc )**: Mention forwardRef() in <Fn ref={...} /> errors and warnings (facebook#14644) //<Dan Abramov>//
- **[a1414e894](facebook/react@a1414e894 )**: Double-render function components with Hooks in DEV in StrictMode (facebook#14643) //<Dan Abramov>//
- **[10a7a5b5c](facebook/react@10a7a5b5c )**: Fix synchronous thenable rejection (facebook#14633) //<Dan Abramov>//
- **[a2fa6eb98](facebook/react@a2fa6eb98 )**: Move lazy._result assignment (facebook#14632) //<Dan Abramov>//
- **[9120f6c2d](facebook/react@9120f6c2d )**: Support sync thenables for lazy() (facebook#14626) //<Dan Abramov>//
- **[b66e6e41e](facebook/react@b66e6e41e )**: Add directory details to the package.json of all packages (facebook#14628) //<Grey Baker>//
- **[177fb7635](facebook/react@177fb7635 )**: Warn when second callback is passed to setState/dispatch in Hooks (facebook#14625) //<Dan Abramov>//
- **[d17d0b99c](facebook/react@d17d0b99c )**: Use public context.report interface in eslint rules (facebook#14623) //<Sebastian Silbermann>//
- **[4f332885a](facebook/react@4f332885a )**: Fix shallow renderer set instance state after gDSFP before calling sCU (facebook#14613) //<Yi-Shan, Chen>//
- **[e1cd83e49](facebook/react@e1cd83e49 )**: Throw an error when using hooks inside useMemo/useState/useReducer, or .memo's comparator (facebook#14608) //<Sunil Pai>//
- **[be457ca68](facebook/react@be457ca68 )**: Small tweaks to SSR to match facebook#14594 (facebook#14618) //<Dan Abramov>//
- **[17d70df91](facebook/react@17d70df91 )**: Warn when mixing createRoot() and old APIs (facebook#14615) //<Dan Abramov>//
- **[4feab7fc9](facebook/react@4feab7fc9 )**: Add hooks support to ReactShallowRenderer (facebook#14567) //<Dominic Gannaway>//
- **[1454a8be0](facebook/react@1454a8be0 )**: Don't bother comparing constructor when deps are not provided (facebook#14594) //<Andrew Clark>//
- **[71b64d521](facebook/react@71b64d521 )**: Warn if number of hooks increases (facebook#14591) //<Andrew Clark>//
- **[790c8ef04](facebook/react@790c8ef04 )**: Allow useReducer to bail out of rendering by returning previous state (facebook#14569) //<Andrew Clark>//
- **[7ab8a8e97](facebook/react@7ab8a8e97 )**: Added Flow type to keep hooks dispatchers in-sync (facebook#14599) //<Brian Vaughn>//
- **[4392e3821](facebook/react@4392e3821 )**: useDebugValue should throw if used in a class component (facebook#14601) //<Brian Vaughn>//
- **[153a0b598](facebook/react@153a0b598 )**: Add noop useDebugValue hook to partial/server renderer (facebook#14597) //<Brian Vaughn>//
- **[7ad9806d1](facebook/react@7ad9806d1 )**: Tweak to avoid property read (facebook#14593) //<Brandon Dail>//
- **[0fc154751](facebook/react@0fc154751 )**: Avoid new Set([iterable]) for thenables (facebook#14592) //<Brandon Dail>//
- **[edb1f5956](facebook/react@edb1f5956 )**: Support configurable labels for custom hooks (facebook#14559) //<Brian Vaughn>//
- **[3e15b1c69](facebook/react@3e15b1c69 )**: make a fork for ReactCurrentDispatcher (facebook#14588) //<Sunil Pai>//
- **[0005d1e3f](facebook/react@0005d1e3f )**: Fix typo (facebook#14576) //<Carl Mungazi>//
- **[f290138d3](facebook/react@f290138d3 )**: react-debug-tools accepts currentDispatcher ref as param (facebook#14556) //<Brian Vaughn>//
- **[b4ad8e947](facebook/react@b4ad8e947 )**: rename useImperativeMethods -> useImperativeHandle (facebook#14565) //<Sunil Pai>//
- **[ab03e3d65](facebook/react@ab03e3d65 )**: Inject ReactCurrentDispatcher ref to DevTools (facebook#14550) //<Brian Vaughn>//
- **[19ef0ec11](facebook/react@19ef0ec11 )**: Separate current owner and dispatcher (facebook#14548) //<Brian Vaughn>//
- **[a9b035b0c](facebook/react@a9b035b0c )**: Separate Object.is polyfill (facebook#14334) //<Maksim Markelov>//
- **[547e059f0](facebook/react@547e059f0 )**: Simplify wording of key warning (facebook#14503) //<Sophie Alpert>//
- **[3494ee57e](facebook/react@3494ee57e )**: Update ReactUpdateQueue.js (facebook#14521) //<Carl Mungazi>//
- **[659c13963](facebook/react@659c13963 )**: Update ReactFiberScheduler.js (facebook#14477) //<Carl Mungazi>//
- **[c695b2384](facebook/react@c695b2384 )**: React v16.7.0 //<Andrew Clark>//
- **[1c5aa2f23](facebook/react@1c5aa2f23 )**: Move SchedulerFeatureFlags fork to src directory to fix lint //<Andrew Clark>//
- **[653bc582f](facebook/react@653bc582f )**: Create separate SchedulerFeatureFlags instead of using ReactFeatureFlags (facebook#14455) //<Andrew Clark>//
- **[8bfef0da5](facebook/react@8bfef0da5 )**: Make scheduler debugging feature flag static //<Andrew Clark>//
- **[4a1072194](facebook/react@4a1072194 )**: Memoize promise listeners to prevent exponential growth (facebook#14429) //<Andrew Clark>//
- **[535804f5c](facebook/react@535804f5c )**: Removed Fabric-specific feature flag files and updated Rollup to use the (non-Fabric) React Native flag files. (facebook#14437) //<Brian Vaughn>//
- **[2743fb7b2](facebook/react@2743fb7b2 )**: Enable hooks by default for FB React Native renderer (facebook#14435) //<Brian Vaughn>//
- **[7325ebe4d](facebook/react@7325ebe4d )**: Inject overrideProps() fn to DevTools (facebook#14427) //<Brian Vaughn>//
- **[a22880e5e](facebook/react@a22880e5e )**: Add support for Suspense & lazy() to the react-is package (facebook#14423) //<Pleun Vanderbauwhede>//
- **[947bddd5c](facebook/react@947bddd5c )**: Remove redundant argument of getPlugins function (facebook#14419) //<Heaven>//
- **[8df4d59be](facebook/react@8df4d59be )**: Implement pauseExecution, continueExecution, dumpQueue for Scheduler (facebook#14053) //<Kevin Chavez>//
- **[5bb4ad737](facebook/react@5bb4ad737 )**: Added ErrorBoundary tests for useEffect and useLayoutEffect (facebook#14401) //<Brian Vaughn>//
- **[98eb5ae53](facebook/react@98eb5ae53 )**: TestRenderer toJSON should not expose the Array wrapper Suspense uses for hidden trees (facebook#14392) //<Brian Vaughn>//
- **[39489e767](facebook/react@39489e767 )**: Enable hooks in fabric (facebook#14301) //<Spencer Ahrens>//
- **[1dc108e58](facebook/react@1dc108e58 )**: Tweaked wording for v8 "performance cliff" issue //<Brian Vaughn>//

Release Notes:
[GENERAL] [Changed] - React sync for revisions 6bf5e85...aa94237 (React 16.8.1)

Pull Request resolved: facebook#23320

Differential Revision: D13976467

fbshipit-source-id: 4d169f105c8964741cf3d8f9bc192d9955637cea
hramos added a commit to hramos/react-native that referenced this pull request Feb 7, 2019
Summary:
This sync includes the following changes:
- **[45fc46bfa](facebook/react@45fc46bfa )**: 16.8.1 packages //<Brian Vaughn>//
- **[f2e2637c8](facebook/react@f2e2637c8 )**: Backwards compat fix for ReactCurrentDispatcher on older react versions (facebook#14770) //<Brian Vaughn>//
- **[1107b9673](facebook/react@1107b9673 )**: [TestUtils.act] warn when using TestUtils.act in node (facebook#14768) //<Sunil Pai>//
- **[0975ea327](facebook/react@0975ea327 )**: eslint-plugin-react-hooks v1.0.0 //<Brian Vaughn>//
- **[bc9818f24](facebook/react@bc9818f24 )**: Scheduler.unstable_next (facebook#14756) //<Andrew Clark>//
- **[ce6ecd3fb](facebook/react@ce6ecd3fb )**: Add 16.8.0 changelog and update some READMEs (facebook#14692) //<Dan Abramov>//
- **[008a2ab9c](facebook/react@008a2ab9c )**: 16.8.0 //<Brian Vaughn>//
- **[d1326f466](facebook/react@d1326f466 )**: [TestUtils.act] fix return result checking  (facebook#14758) //<Sunil Pai>//
- **[267ed9814](facebook/react@267ed9814 )**: expose `TestUtils.act()` for batching actions in tests (facebook#14744) //<Sunil Pai>//
- **[fb3f7bfde](facebook/react@fb3f7bfde )**: Avoid importing Scheduler directly (facebook#14757) //<Andrew Clark>//
- **[e602b5291](facebook/react@e602b5291 )**: Use SameValue instead of === to check for dispatchAction equivalence (facebook#14752) //<Jessica Franco>//
- **[e489c3f9c](facebook/react@e489c3f9c )**: Update the version with Hooks proposal in README (facebook#14751) //<SToneX>//
- **[c21c41ecf](facebook/react@c21c41ecf )**: Tweak invalid Hook warning and error (facebook#14747) //<Dan Abramov>//
- **[fec00a869](facebook/react@fec00a869 )**: Typo in comment (facebook#14739) //<Deniz Susman>//
- **[66eb29374](facebook/react@66eb29374 )**: Restrict effect return type to a function or nothing (facebook#14119) //<Andrew Clark>//
- **[51c07912a](facebook/react@51c07912a )**: Warn when second argument is passed to useCallback (facebook#14729) //<Dan Abramov>//
- **[70d407583](facebook/react@70d407583 )**: Move Hook mismatch warning to first mismatch site (facebook#14720) //<Andrew Clark>//
- **[ba6477aa3](facebook/react@ba6477aa3 )**: Improve Reducer Hook's lazy init API (facebook#14723) //<Andrew Clark>//
- **[cb1ff430e](facebook/react@cb1ff430e )**: Phased dispatcher (facebook#14701) //<Andrew Clark>//
- **[9d483dcfd](facebook/react@9d483dcfd )**: Spelling abitrarily -> arbitrarily (facebook#14710) //<Peter Donald>//
- **[e19c9e106](facebook/react@e19c9e106 )**: Fix issue with multiple code branches in hooks linter (facebook#14661) //<Yurick>//
- **[f11a9c1cb](facebook/react@f11a9c1cb )**: State update bug in concurrent mode (facebook#14698) //<Brian Vaughn>//
- **[e679a4b6e](facebook/react@e679a4b6e )**: Fix typo in code comment (facebook#14696) //<Greg Hurrell>//
- **[8bcc88f2e](facebook/react@8bcc88f2e )**: Make all readContext() and Hook-in-a-Hook checks DEV-only (facebook#14677) //<Dan Abramov>//
- **[6cb26774e](facebook/react@6cb26774e )**: Enable hooks! (facebook#14679) //<Brian Vaughn>//
- **[73962c366](facebook/react@73962c366 )**: Revert "Revert "Double-render function components with Hooks in DEV in StrictMode" (facebook#14652)" (facebook#14654) //<Dan Abramov>//
- **[994439228](facebook/react@994439228 )**: Put DEV-only code into DEV blocks (facebook#14673) //<Dan Abramov>//
- **[f0befae65](facebook/react@f0befae65 )**: Tweak context invariant message (facebook#14671) //<Dan Abramov>//
- **[a129259ad](facebook/react@a129259ad )**: Disallow reading context during useMemo etc (facebook#14653) //<Dan Abramov>//
- **[c068d31cc](facebook/react@c068d31cc )**: Add unit tests for concurrent mode event dispatching (facebook#14415) //<Sebastian Markbåge>//
- **[38247cba3](facebook/react@38247cba3 )**: --save is no longer needed (facebook#14302) //<SamCortopassi>//
- **[3f0bcaf0d](facebook/react@3f0bcaf0d )**: Importing React for the first example. (facebook#14346) //<Ramón Chancay Ortega>//
- **[ecd919a2f](facebook/react@ecd919a2f )**: RFC: warn when returning different hooks on subsequent renders (facebook#14585) //<Sunil Pai>//
- **[3fbebb2a0](facebook/react@3fbebb2a0 )**: Revert "Double-render function components with Hooks in DEV in StrictMode" (facebook#14652) //<Dan Abramov>//
- **[5fce6488c](facebook/react@5fce6488c )**: Revert "Disallow reading context during useMemo etc" (facebook#14651) //<Dan Abramov>//
- **[fe2ecd276](facebook/react@fe2ecd276 )**: Add test coverage for readContext() on the server (facebook#14649) //<Dan Abramov>//
- **[8f45a7fdc](facebook/react@8f45a7fdc )**: Warn about incorrect use of useImperativeHandle() (facebook#14647) //<Dan Abramov>//
- **[1fcbd2243](facebook/react@1fcbd2243 )**: Disallow reading context during useMemo etc (facebook#14648) //<Dan Abramov>//
- **[2a084f51a](facebook/react@2a084f51a )**: Warn about refs on lazy function components (facebook#14645) //<Dan Abramov>//
- **[b5a3df6e8](facebook/react@b5a3df6e8 )**: Fix typo (facebook#14560) //<Linchengyi>//
- **[9c146e675](facebook/react@9c146e675 )**: fix typo (facebook#14316) //<liunian>//
- **[baa6d40fc](facebook/react@baa6d40fc )**: Mention forwardRef() in <Fn ref={...} /> errors and warnings (facebook#14644) //<Dan Abramov>//
- **[a1414e894](facebook/react@a1414e894 )**: Double-render function components with Hooks in DEV in StrictMode (facebook#14643) //<Dan Abramov>//
- **[10a7a5b5c](facebook/react@10a7a5b5c )**: Fix synchronous thenable rejection (facebook#14633) //<Dan Abramov>//
- **[a2fa6eb98](facebook/react@a2fa6eb98 )**: Move lazy._result assignment (facebook#14632) //<Dan Abramov>//
- **[9120f6c2d](facebook/react@9120f6c2d )**: Support sync thenables for lazy() (facebook#14626) //<Dan Abramov>//
- **[b66e6e41e](facebook/react@b66e6e41e )**: Add directory details to the package.json of all packages (facebook#14628) //<Grey Baker>//
- **[177fb7635](facebook/react@177fb7635 )**: Warn when second callback is passed to setState/dispatch in Hooks (facebook#14625) //<Dan Abramov>//
- **[d17d0b99c](facebook/react@d17d0b99c )**: Use public context.report interface in eslint rules (facebook#14623) //<Sebastian Silbermann>//
- **[4f332885a](facebook/react@4f332885a )**: Fix shallow renderer set instance state after gDSFP before calling sCU (facebook#14613) //<Yi-Shan, Chen>//
- **[e1cd83e49](facebook/react@e1cd83e49 )**: Throw an error when using hooks inside useMemo/useState/useReducer, or .memo's comparator (facebook#14608) //<Sunil Pai>//
- **[be457ca68](facebook/react@be457ca68 )**: Small tweaks to SSR to match facebook#14594 (facebook#14618) //<Dan Abramov>//
- **[17d70df91](facebook/react@17d70df91 )**: Warn when mixing createRoot() and old APIs (facebook#14615) //<Dan Abramov>//
- **[4feab7fc9](facebook/react@4feab7fc9 )**: Add hooks support to ReactShallowRenderer (facebook#14567) //<Dominic Gannaway>//
- **[1454a8be0](facebook/react@1454a8be0 )**: Don't bother comparing constructor when deps are not provided (facebook#14594) //<Andrew Clark>//
- **[71b64d521](facebook/react@71b64d521 )**: Warn if number of hooks increases (facebook#14591) //<Andrew Clark>//
- **[790c8ef04](facebook/react@790c8ef04 )**: Allow useReducer to bail out of rendering by returning previous state (facebook#14569) //<Andrew Clark>//
- **[7ab8a8e97](facebook/react@7ab8a8e97 )**: Added Flow type to keep hooks dispatchers in-sync (facebook#14599) //<Brian Vaughn>//
- **[4392e3821](facebook/react@4392e3821 )**: useDebugValue should throw if used in a class component (facebook#14601) //<Brian Vaughn>//
- **[153a0b598](facebook/react@153a0b598 )**: Add noop useDebugValue hook to partial/server renderer (facebook#14597) //<Brian Vaughn>//
- **[7ad9806d1](facebook/react@7ad9806d1 )**: Tweak to avoid property read (facebook#14593) //<Brandon Dail>//
- **[0fc154751](facebook/react@0fc154751 )**: Avoid new Set([iterable]) for thenables (facebook#14592) //<Brandon Dail>//
- **[edb1f5956](facebook/react@edb1f5956 )**: Support configurable labels for custom hooks (facebook#14559) //<Brian Vaughn>//
- **[3e15b1c69](facebook/react@3e15b1c69 )**: make a fork for ReactCurrentDispatcher (facebook#14588) //<Sunil Pai>//
- **[0005d1e3f](facebook/react@0005d1e3f )**: Fix typo (facebook#14576) //<Carl Mungazi>//
- **[f290138d3](facebook/react@f290138d3 )**: react-debug-tools accepts currentDispatcher ref as param (facebook#14556) //<Brian Vaughn>//
- **[b4ad8e947](facebook/react@b4ad8e947 )**: rename useImperativeMethods -> useImperativeHandle (facebook#14565) //<Sunil Pai>//
- **[ab03e3d65](facebook/react@ab03e3d65 )**: Inject ReactCurrentDispatcher ref to DevTools (facebook#14550) //<Brian Vaughn>//
- **[19ef0ec11](facebook/react@19ef0ec11 )**: Separate current owner and dispatcher (facebook#14548) //<Brian Vaughn>//
- **[a9b035b0c](facebook/react@a9b035b0c )**: Separate Object.is polyfill (facebook#14334) //<Maksim Markelov>//
- **[547e059f0](facebook/react@547e059f0 )**: Simplify wording of key warning (facebook#14503) //<Sophie Alpert>//
- **[3494ee57e](facebook/react@3494ee57e )**: Update ReactUpdateQueue.js (facebook#14521) //<Carl Mungazi>//
- **[659c13963](facebook/react@659c13963 )**: Update ReactFiberScheduler.js (facebook#14477) //<Carl Mungazi>//
- **[c695b2384](facebook/react@c695b2384 )**: React v16.7.0 //<Andrew Clark>//
- **[1c5aa2f23](facebook/react@1c5aa2f23 )**: Move SchedulerFeatureFlags fork to src directory to fix lint //<Andrew Clark>//
- **[653bc582f](facebook/react@653bc582f )**: Create separate SchedulerFeatureFlags instead of using ReactFeatureFlags (facebook#14455) //<Andrew Clark>//
- **[8bfef0da5](facebook/react@8bfef0da5 )**: Make scheduler debugging feature flag static //<Andrew Clark>//
- **[4a1072194](facebook/react@4a1072194 )**: Memoize promise listeners to prevent exponential growth (facebook#14429) //<Andrew Clark>//
- **[535804f5c](facebook/react@535804f5c )**: Removed Fabric-specific feature flag files and updated Rollup to use the (non-Fabric) React Native flag files. (facebook#14437) //<Brian Vaughn>//
- **[2743fb7b2](facebook/react@2743fb7b2 )**: Enable hooks by default for FB React Native renderer (facebook#14435) //<Brian Vaughn>//
- **[7325ebe4d](facebook/react@7325ebe4d )**: Inject overrideProps() fn to DevTools (facebook#14427) //<Brian Vaughn>//
- **[a22880e5e](facebook/react@a22880e5e )**: Add support for Suspense & lazy() to the react-is package (facebook#14423) //<Pleun Vanderbauwhede>//
- **[947bddd5c](facebook/react@947bddd5c )**: Remove redundant argument of getPlugins function (facebook#14419) //<Heaven>//
- **[8df4d59be](facebook/react@8df4d59be )**: Implement pauseExecution, continueExecution, dumpQueue for Scheduler (facebook#14053) //<Kevin Chavez>//
- **[5bb4ad737](facebook/react@5bb4ad737 )**: Added ErrorBoundary tests for useEffect and useLayoutEffect (facebook#14401) //<Brian Vaughn>//
- **[98eb5ae53](facebook/react@98eb5ae53 )**: TestRenderer toJSON should not expose the Array wrapper Suspense uses for hidden trees (facebook#14392) //<Brian Vaughn>//
- **[39489e767](facebook/react@39489e767 )**: Enable hooks in fabric (facebook#14301) //<Spencer Ahrens>//
- **[1dc108e58](facebook/react@1dc108e58 )**: Tweaked wording for v8 "performance cliff" issue //<Brian Vaughn>//

Release Notes:
[GENERAL] [Changed] - React sync for revisions 6bf5e85...aa94237 (React 16.8.1)

Pull Request resolved: facebook#23320

Differential Revision: D13976467

fbshipit-source-id: 9e11552268883db8672d11cf489d3a5949f498b7
facebook-github-bot pushed a commit that referenced this pull request Feb 8, 2019
Summary:
allow-large-files

This sync includes the following changes:
- **[45fc46bfa](facebook/react@45fc46bfa )**: 16.8.1 packages //<Brian Vaughn>//
- **[f2e2637c8](facebook/react@f2e2637c8 )**: Backwards compat fix for ReactCurrentDispatcher on older react versions (#14770) //<Brian Vaughn>//
- **[1107b9673](facebook/react@1107b9673 )**: [TestUtils.act] warn when using TestUtils.act in node (#14768) //<Sunil Pai>//
- **[0975ea327](facebook/react@0975ea327 )**: eslint-plugin-react-hooks v1.0.0 //<Brian Vaughn>//
- **[bc9818f24](facebook/react@bc9818f24 )**: Scheduler.unstable_next (#14756) //<Andrew Clark>//
- **[ce6ecd3fb](facebook/react@ce6ecd3fb )**: Add 16.8.0 changelog and update some READMEs (#14692) //<Dan Abramov>//
- **[008a2ab9c](facebook/react@008a2ab9c )**: 16.8.0 //<Brian Vaughn>//
- **[d1326f466](facebook/react@d1326f466 )**: [TestUtils.act] fix return result checking  (#14758) //<Sunil Pai>//
- **[267ed9814](facebook/react@267ed9814 )**: expose `TestUtils.act()` for batching actions in tests (#14744) //<Sunil Pai>//
- **[fb3f7bfde](facebook/react@fb3f7bfde )**: Avoid importing Scheduler directly (#14757) //<Andrew Clark>//
- **[e602b5291](facebook/react@e602b5291 )**: Use SameValue instead of === to check for dispatchAction equivalence (#14752) //<Jessica Franco>//
- **[e489c3f9c](facebook/react@e489c3f9c )**: Update the version with Hooks proposal in README (#14751) //<SToneX>//
- **[c21c41ecf](facebook/react@c21c41ecf )**: Tweak invalid Hook warning and error (#14747) //<Dan Abramov>//
- **[fec00a869](facebook/react@fec00a869 )**: Typo in comment (#14739) //<Deniz Susman>//
- **[66eb29374](facebook/react@66eb29374 )**: Restrict effect return type to a function or nothing (#14119) //<Andrew Clark>//
- **[51c07912a](facebook/react@51c07912a )**: Warn when second argument is passed to useCallback (#14729) //<Dan Abramov>//
- **[70d407583](facebook/react@70d407583 )**: Move Hook mismatch warning to first mismatch site (#14720) //<Andrew Clark>//
- **[ba6477aa3](facebook/react@ba6477aa3 )**: Improve Reducer Hook's lazy init API (#14723) //<Andrew Clark>//
- **[cb1ff430e](facebook/react@cb1ff430e )**: Phased dispatcher (#14701) //<Andrew Clark>//
- **[9d483dcfd](facebook/react@9d483dcfd )**: Spelling abitrarily -> arbitrarily (#14710) //<Peter Donald>//
- **[e19c9e106](facebook/react@e19c9e106 )**: Fix issue with multiple code branches in hooks linter (#14661) //<Yurick>//
- **[f11a9c1cb](facebook/react@f11a9c1cb )**: State update bug in concurrent mode (#14698) //<Brian Vaughn>//
- **[e679a4b6e](facebook/react@e679a4b6e )**: Fix typo in code comment (#14696) //<Greg Hurrell>//
- **[8bcc88f2e](facebook/react@8bcc88f2e )**: Make all readContext() and Hook-in-a-Hook checks DEV-only (#14677) //<Dan Abramov>//
- **[6cb26774e](facebook/react@6cb26774e )**: Enable hooks! (#14679) //<Brian Vaughn>//
- **[73962c366](facebook/react@73962c366 )**: Revert "Revert "Double-render function components with Hooks in DEV in StrictMode" (#14652)" (#14654) //<Dan Abramov>//
- **[994439228](facebook/react@994439228 )**: Put DEV-only code into DEV blocks (#14673) //<Dan Abramov>//
- **[f0befae65](facebook/react@f0befae65 )**: Tweak context invariant message (#14671) //<Dan Abramov>//
- **[a129259ad](facebook/react@a129259ad )**: Disallow reading context during useMemo etc (#14653) //<Dan Abramov>//
- **[c068d31cc](facebook/react@c068d31cc )**: Add unit tests for concurrent mode event dispatching (#14415) //<Sebastian Markbåge>//
- **[38247cba3](facebook/react@38247cba3 )**: --save is no longer needed (#14302) //<SamCortopassi>//
- **[3f0bcaf0d](facebook/react@3f0bcaf0d )**: Importing React for the first example. (#14346) //<Ramón Chancay Ortega>//
- **[ecd919a2f](facebook/react@ecd919a2f )**: RFC: warn when returning different hooks on subsequent renders (#14585) //<Sunil Pai>//
- **[3fbebb2a0](facebook/react@3fbebb2a0 )**: Revert "Double-render function components with Hooks in DEV in StrictMode" (#14652) //<Dan Abramov>//
- **[5fce6488c](facebook/react@5fce6488c )**: Revert "Disallow reading context during useMemo etc" (#14651) //<Dan Abramov>//
- **[fe2ecd276](facebook/react@fe2ecd276 )**: Add test coverage for readContext() on the server (#14649) //<Dan Abramov>//
- **[8f45a7fdc](facebook/react@8f45a7fdc )**: Warn about incorrect use of useImperativeHandle() (#14647) //<Dan Abramov>//
- **[1fcbd2243](facebook/react@1fcbd2243 )**: Disallow reading context during useMemo etc (#14648) //<Dan Abramov>//
- **[2a084f51a](facebook/react@2a084f51a )**: Warn about refs on lazy function components (#14645) //<Dan Abramov>//
- **[b5a3df6e8](facebook/react@b5a3df6e8 )**: Fix typo (#14560) //<Linchengyi>//
- **[9c146e675](facebook/react@9c146e675 )**: fix typo (#14316) //<liunian>//
- **[baa6d40fc](facebook/react@baa6d40fc )**: Mention forwardRef() in <Fn ref={...} /> errors and warnings (#14644) //<Dan Abramov>//
- **[a1414e894](facebook/react@a1414e894 )**: Double-render function components with Hooks in DEV in StrictMode (#14643) //<Dan Abramov>//
- **[10a7a5b5c](facebook/react@10a7a5b5c )**: Fix synchronous thenable rejection (#14633) //<Dan Abramov>//
- **[a2fa6eb98](facebook/react@a2fa6eb98 )**: Move lazy._result assignment (#14632) //<Dan Abramov>//
- **[9120f6c2d](facebook/react@9120f6c2d )**: Support sync thenables for lazy() (#14626) //<Dan Abramov>//
- **[b66e6e41e](facebook/react@b66e6e41e )**: Add directory details to the package.json of all packages (#14628) //<Grey Baker>//
- **[177fb7635](facebook/react@177fb7635 )**: Warn when second callback is passed to setState/dispatch in Hooks (#14625) //<Dan Abramov>//
- **[d17d0b99c](facebook/react@d17d0b99c )**: Use public context.report interface in eslint rules (#14623) //<Sebastian Silbermann>//
- **[4f332885a](facebook/react@4f332885a )**: Fix shallow renderer set instance state after gDSFP before calling sCU (#14613) //<Yi-Shan, Chen>//
- **[e1cd83e49](facebook/react@e1cd83e49 )**: Throw an error when using hooks inside useMemo/useState/useReducer, or .memo's comparator (#14608) //<Sunil Pai>//
- **[be457ca68](facebook/react@be457ca68 )**: Small tweaks to SSR to match #14594 (#14618) //<Dan Abramov>//
- **[17d70df91](facebook/react@17d70df91 )**: Warn when mixing createRoot() and old APIs (#14615) //<Dan Abramov>//
- **[4feab7fc9](facebook/react@4feab7fc9 )**: Add hooks support to ReactShallowRenderer (#14567) //<Dominic Gannaway>//
- **[1454a8be0](facebook/react@1454a8be0 )**: Don't bother comparing constructor when deps are not provided (#14594) //<Andrew Clark>//
- **[71b64d521](facebook/react@71b64d521 )**: Warn if number of hooks increases (#14591) //<Andrew Clark>//
- **[790c8ef04](facebook/react@790c8ef04 )**: Allow useReducer to bail out of rendering by returning previous state (#14569) //<Andrew Clark>//
- **[7ab8a8e97](facebook/react@7ab8a8e97 )**: Added Flow type to keep hooks dispatchers in-sync (#14599) //<Brian Vaughn>//
- **[4392e3821](facebook/react@4392e3821 )**: useDebugValue should throw if used in a class component (#14601) //<Brian Vaughn>//
- **[153a0b598](facebook/react@153a0b598 )**: Add noop useDebugValue hook to partial/server renderer (#14597) //<Brian Vaughn>//
- **[7ad9806d1](facebook/react@7ad9806d1 )**: Tweak to avoid property read (#14593) //<Brandon Dail>//
- **[0fc154751](facebook/react@0fc154751 )**: Avoid new Set([iterable]) for thenables (#14592) //<Brandon Dail>//
- **[edb1f5956](facebook/react@edb1f5956 )**: Support configurable labels for custom hooks (#14559) //<Brian Vaughn>//
- **[3e15b1c69](facebook/react@3e15b1c69 )**: make a fork for ReactCurrentDispatcher (#14588) //<Sunil Pai>//
- **[0005d1e3f](facebook/react@0005d1e3f )**: Fix typo (#14576) //<Carl Mungazi>//
- **[f290138d3](facebook/react@f290138d3 )**: react-debug-tools accepts currentDispatcher ref as param (#14556) //<Brian Vaughn>//
- **[b4ad8e947](facebook/react@b4ad8e947 )**: rename useImperativeMethods -> useImperativeHandle (#14565) //<Sunil Pai>//
- **[ab03e3d65](facebook/react@ab03e3d65 )**: Inject ReactCurrentDispatcher ref to DevTools (#14550) //<Brian Vaughn>//
- **[19ef0ec11](facebook/react@19ef0ec11 )**: Separate current owner and dispatcher (#14548) //<Brian Vaughn>//
- **[a9b035b0c](facebook/react@a9b035b0c )**: Separate Object.is polyfill (#14334) //<Maksim Markelov>//
- **[547e059f0](facebook/react@547e059f0 )**: Simplify wording of key warning (#14503) //<Sophie Alpert>//
- **[3494ee57e](facebook/react@3494ee57e )**: Update ReactUpdateQueue.js (#14521) //<Carl Mungazi>//
- **[659c13963](facebook/react@659c13963 )**: Update ReactFiberScheduler.js (#14477) //<Carl Mungazi>//
- **[c695b2384](facebook/react@c695b2384 )**: React v16.7.0 //<Andrew Clark>//
- **[1c5aa2f23](facebook/react@1c5aa2f23 )**: Move SchedulerFeatureFlags fork to src directory to fix lint //<Andrew Clark>//
- **[653bc582f](facebook/react@653bc582f )**: Create separate SchedulerFeatureFlags instead of using ReactFeatureFlags (#14455) //<Andrew Clark>//
- **[8bfef0da5](facebook/react@8bfef0da5 )**: Make scheduler debugging feature flag static //<Andrew Clark>//
- **[4a1072194](facebook/react@4a1072194 )**: Memoize promise listeners to prevent exponential growth (#14429) //<Andrew Clark>//
- **[535804f5c](facebook/react@535804f5c )**: Removed Fabric-specific feature flag files and updated Rollup to use the (non-Fabric) React Native flag files. (#14437) //<Brian Vaughn>//
- **[2743fb7b2](facebook/react@2743fb7b2 )**: Enable hooks by default for FB React Native renderer (#14435) //<Brian Vaughn>//
- **[7325ebe4d](facebook/react@7325ebe4d )**: Inject overrideProps() fn to DevTools (#14427) //<Brian Vaughn>//
- **[a22880e5e](facebook/react@a22880e5e )**: Add support for Suspense & lazy() to the react-is package (#14423) //<Pleun Vanderbauwhede>//
- **[947bddd5c](facebook/react@947bddd5c )**: Remove redundant argument of getPlugins function (#14419) //<Heaven>//
- **[8df4d59be](facebook/react@8df4d59be )**: Implement pauseExecution, continueExecution, dumpQueue for Scheduler (#14053) //<Kevin Chavez>//
- **[5bb4ad737](facebook/react@5bb4ad737 )**: Added ErrorBoundary tests for useEffect and useLayoutEffect (#14401) //<Brian Vaughn>//
- **[98eb5ae53](facebook/react@98eb5ae53 )**: TestRenderer toJSON should not expose the Array wrapper Suspense uses for hidden trees (#14392) //<Brian Vaughn>//
- **[39489e767](facebook/react@39489e767 )**: Enable hooks in fabric (#14301) //<Spencer Ahrens>//
- **[1dc108e58](facebook/react@1dc108e58 )**: Tweaked wording for v8 "performance cliff" issue //<Brian Vaughn>//

Release Notes:
[GENERAL] [Changed] - React sync for revisions 6bf5e85...aa94237 (React 16.8.1)

Pull Request resolved: #23320

Reviewed By: rickhanlonii

Differential Revision: D13976467

fbshipit-source-id: 4ce198e86a54658e1c35aa36bffe4a7dc2956a2e
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.

6 participants