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

iOS: Support corner-specific border radii on Images #14148

Closed

Conversation

rigdern
Copy link
Contributor

@rigdern rigdern commented May 24, 2017

This adds support for corner-specific radii on Images on iOS. Specifically, these props:

  • borderTopLeftRadius
  • borderTopRightRadius
  • borderBottomLeftRadius
  • borderBottomRightRadius

This feature is already supported on Android.

Most of the logic was copied from RCTView.

Test Plan (required)

I made a test app where I set borderRadius and the corner-specific border radius props mentioned above to a variety of values including undefined and ensured the Image rendered correctly. I tested initial values as well as updates. Additionally, my team is using this change in our app.

Adam Comella
Microsoft Corp.

This adds support for corner-specific radii on Images on iOS. Specifically, these props:
  - `borderTopLeftRadius`
  - `borderTopRightRadius`
  - `borderBottomLeftRadius`
  - `borderBottomRightRadius`

This feature is already supported on Android.

Most of the logic was copied from `RCTView`.
@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 May 24, 2017
CALayer *mask = nil;
CGFloat cornerRadius = 0;

if (self.clipsToBounds) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Nit: Could you remove the extra empty lines from L493 to L502

@janicduplessis
Copy link
Contributor

cc @javache

@javache
Copy link
Member

javache commented May 24, 2017

cc @shergin

@shergin
Copy link
Contributor

shergin commented May 24, 2017

@rigdern Adam,
Thank you so much for this PR and your effort!

The problem with supporting proper border rendering for is actually much more complicated because we have to not only render the border correctly but also apply proper layout to the component (padding and border should kinda affect intrinsic size of ). Previously, we also decided that we don't want to copy-paste code from RCTView, instead we want to have unified and supportable solution for this problem which can be applied for all custom components.

Recently (couple of weeks ago) we decided that the answer to this challenge is pretty simple: We have to wrap all components (which should have proper border rendering) in RCTView instance on native side. I am working on this right now. I already implemented it for (proper support for padding, borders and intrinsic size for both types of ) and it will land in the beginning of the next week.
Adopting this approach for is a bit more complicated because we have to deprecate support of nested components inside as a first step (we will provide drop in replacement for this case). I hope I will have the fix for this border problem in the beginning of the next month.

@shergin shergin closed this May 24, 2017
@rigdern
Copy link
Contributor Author

rigdern commented May 24, 2017

@shergin Thanks for the explanation. I'm looking forward to your change landing in master.

In your post, you mentioned borders generally and not border radius specifically. Is the implementation of border for Image that is in master today broken?

Can you elaborate on why your solution will break nesting of components within Images? Can you also elaborate on the drop in replacement for this nesting case? Will similar restrictions be imposed on Android or will the iOS and Android Image APIs become inconsistent?

Am I correct in assuming that your change will introduce support for corner-specific border radii on Images?

@shergin
Copy link
Contributor

shergin commented May 24, 2017

In your post, you mentioned borders generally and not border radius specifically. Is the implementation of border for Image that is in master today broken?

Yeah, kind of. The way how borders are rendered now is... far from perfect. For instance, now if an image has border, the border draws on top of the image, which is counterintuitive and does not match Yoga layout model. So, it should render like [border][padding][image-content][padding][border] whereas right now it renders like [[border]image-content[border]].

Am I correct in assuming that your change will introduce support for corner-specific border radii on Images?

Yeah, this change will introduce as full border support as generic <View>s have.

Can you elaborate on why your solution will break nesting of components within Images?

The current model of implies that the internal content of <Image> defines its size, which is in most cases counterintuitive. We want to implement proper support for intrinsic content size for <Image> instead, which means that actual image bitmap will defines the size of the component.
See 9637dd4 for details.

Will similar restrictions be imposed on Android or will the iOS and Android Image APIs become inconsistent?

We plan to deprecate (and remove very soon) support of <Image> with nested content for both platforms.

facebook-github-bot pushed a commit that referenced this pull request Dec 4, 2018
Summary:
@public
This sync includes the following changes:
- **[6bf5e8598](facebook/react@6bf5e8598)**: Fix scheduler setTimeout() re-entrancy check (#14384) //<Brian Vaughn>//
- **[7a48c900b](facebook/react@7a48c900b)**: Prevent a v8 deopt when profiling (#14383) //<Brian Vaughn>//
- **[f00c2755b](facebook/react@f00c2755b)**: Removed unnecessary externals from Jest bundles (#14372) //<Brian Vaughn>//
- **[52bea95cf](facebook/react@52bea95cf)**: Fixed scheduler setTimeout fallback (#14358) //<Brian Vaughn>//
- **[1d25aa578](facebook/react@1d25aa578)**: [Fizz] New Server Rendering Infra (#14144) //<Sebastian Markbåge>//
- **[f1bf28160](facebook/react@f1bf28160)**: Fix bug in cloneHook (#14364) //<Imre Osswald>//
- **[16e120438](facebook/react@16e120438)**: [Fire] Add initial build infrastructure (#14359) //<Dan Abramov>//
- **[d14ba87b1](facebook/react@d14ba87b1)**: Validate propTypes for lazy() and memo() and warn about invalid patterns (#14298) //<Dan Abramov>//
- **[4f964f09c](facebook/react@4f964f09c)**: Adding isMemo check to react-is package (#14313) //<Jinto Jose>//
- **[c2a2d8a53](facebook/react@c2a2d8a53)**: Remove useMutationEffect (#14336) //<Sophie Alpert>//
- **[48f1e5b3c](facebook/react@48f1e5b3c)**: Add a null type test for memo (#14325) //<chun shang>//
- **[f93f3402f](facebook/react@f93f3402f)**: Make useEffect(async) warning more verbose (#14327) //<Dan Abramov>//
- **[ee3ef3a07](facebook/react@ee3ef3a07)**: Fix regression: Errors not emitted in streams (#14314) //<Pelle Wessman>//
- **[33f6f5e53](facebook/react@33f6f5e53)**: Remove usage of `fbjs/lib/invariant` in ReactNativeViewConfigRegistry. (#14330) //<Christoph Nakazawa>//
- **[686f1060a](facebook/react@686f1060a)**: Publish a local release (canary or stable) to NPM (#14260) //<Brian Vaughn>//
- **[7475120ce](facebook/react@7475120ce)**: Prevent deopts from modifying exports object in stable builds (#14309) //<Dan Abramov>//
- **[0c7189d92](facebook/react@0c7189d92)**: Fix resolution of outer props with React.memo() (#14312) //<Dan Abramov>//
- **[14be29b2b](facebook/react@14be29b2b)**: Add more test coverage for nested memo() (#14311) //<Dan Abramov>//
- **[dc0dd4bbf](facebook/react@dc0dd4bbf)**: Use |0 to coerce to number (#14297) //<Dan Abramov>//
- **[dd8205cef](facebook/react@dd8205cef)**: List ignored types instead of included types in the stack (#14308) //<Dan Abramov>//
- **[a9fdf8a32](facebook/react@a9fdf8a32)**: Warn about reassigning this.props (#14277) //<Dan Abramov>//
- **[327cf0ee3](facebook/react@327cf0ee3)**: Fix support for mixing react-dom/[email protected] and react@<16.6 (#14291) //<Dan Abramov>//
- **[c954efa70](facebook/react@c954efa70)**: Remove `import * as` pattern from the codebase (#14282) //<Sebastian Markbåge>//
- **[ccb14e270](facebook/react@ccb14e270)**: Fix SSR useCallback in render phase (#14279) //<Dan Abramov>//
- **[0e9cb3f5d](facebook/react@0e9cb3f5d)**: Clear fields on unmount of fiber to avoid memory leak (#14276) //<Dominic Gannaway>//
- **[592676503](facebook/react@592676503)**: Revert "Clear memoizedState on unmount of fiber to avoid memory leak (#14218)" (#14275) //<Dominic Gannaway>//
- **[9b2fb24f9](facebook/react@9b2fb24f9)**: Clear memoizedState on unmount of fiber to avoid memory leak (#14218) //<Dominic Gannaway>//
- **[a22fabc2a](facebook/react@a22fabc2a)**: Reduce scheduler serialization overhead (#14249) //<Jason Miller>//
- **[21d5f7d32](facebook/react@21d5f7d32)**: Wrap shorthand CSS property collision warning in feature flag (#14245) //<Andrew Clark>//
- **[8feeed10d](facebook/react@8feeed10d)**: [scheduler] Remove window.postMessage fallback //<Andrew Clark>//
- **[5bce0ef10](facebook/react@5bce0ef10)**: [scheduler] Post to MessageChannel instead of window (#14234) //<Andrew Clark>//
- **[f55795c8e](facebook/react@f55795c8e)**: Add regression test for #14188 (#14197) //<Dan Abramov>//
- **[b98adb648](facebook/react@b98adb648)**: Simplify CSS shorthand property warning (#14183) //<Sophie Alpert>//
- **[f8bfd5868](facebook/react@f8bfd5868)**: fix typo //<Sebastian Markbage>//
- **[961eb65b4](facebook/react@961eb65b4)**: Use unique thread ID for each partial render to access Context (#14182) //<Sebastian Markbåge>//
- **[1a6ab1e9b](facebook/react@1a6ab1e9b)**: SimpleMemoComponent should warn if a ref is given (#14178) //<Sophie Alpert>//
- **[8ae867e6b](facebook/react@8ae867e6b)**: Warn about conflicting style values during updates (#14181) //<Sophie Alpert>//
- **[d5e1bf07d](facebook/react@d5e1bf07d)**: Renamed outdated schedule/tracing referecnes (#14177) //<Brian Vaughn>//
- **[2dd4ba11e](facebook/react@2dd4ba11e)**: ESlint -> ESLint //<Andrew Clark>//
- **[9cc631a53](facebook/react@9cc631a53)**: Don't run danger on bad build (#14143) //<Sophie Alpert>//
- **[1034e26fe](facebook/react@1034e26fe)**: Fix typos (#14124) //<Heaven>//
- **[5618da49d](facebook/react@5618da49d)**: Fix comment typo (#14156) //<Bartosz Gordon>//
- **[9fb919945](facebook/react@9fb919945)**: Add global to ESLint plugin bundle config //<Andrew Clark>//
- **[c174f8592](facebook/react@c174f8592)**: Add fb build of ESLint plugin (#14165) //<Andrew Clark>//
- **[02e4848e3](facebook/react@02e4848e3)**: Improved suspense support in ReactDOMServer (#14161) //<Alex Taylor>//
- **[4b163fe](facebook/react@4b163fee1)**: Remove errant return assignment (#14164) //<Andrew Clark>//
- **[e58ecda9a](facebook/react@e58ecda9a)**: Suspense fuzz tester (#14147) //<Andrew Clark>//
- **[7fd1661f8](facebook/react@7fd1661f8)**:  Don't warn if an unmounted component is pinged (#14158) //<Andrew Clark>//
- **[f9e9913f0](facebook/react@f9e9913f0)**: [Synchronous Suspense] Don't delete children of suspended component (#14157) //<Andrew Clark>//
- **[7c560131b](facebook/react@7c560131b)**: Adding logger pri (#14155) //<Nathan Schloss>//
- **[3d8bda70e](facebook/react@3d8bda70e)**: Refactor ESLint configuration to enable better IDE integration (#13914) //<Minh Nguyen>//
- **[051272f20](facebook/react@051272f20)**: Use Entry in `yarn build ...` Instead of Label (#14148) //<Sebastian Markbåge>//

Release Notes:
[GENERAL] [FEATURE] [React] - React sync for revisions 3ff2c7c...6bf5e85

Reviewed By: bvaughn

Differential Revision: D13288288

fbshipit-source-id: 89a4837a9198c53fc79306933f589ef25d8bb4b6
grabbou pushed a commit that referenced this pull request Dec 4, 2018
Summary:
@public
This sync includes the following changes:
- **[6bf5e8598](facebook/react@6bf5e8598)**: Fix scheduler setTimeout() re-entrancy check (#14384) //<Brian Vaughn>//
- **[7a48c900b](facebook/react@7a48c900b)**: Prevent a v8 deopt when profiling (#14383) //<Brian Vaughn>//
- **[f00c2755b](facebook/react@f00c2755b)**: Removed unnecessary externals from Jest bundles (#14372) //<Brian Vaughn>//
- **[52bea95cf](facebook/react@52bea95cf)**: Fixed scheduler setTimeout fallback (#14358) //<Brian Vaughn>//
- **[1d25aa578](facebook/react@1d25aa578)**: [Fizz] New Server Rendering Infra (#14144) //<Sebastian Markbåge>//
- **[f1bf28160](facebook/react@f1bf28160)**: Fix bug in cloneHook (#14364) //<Imre Osswald>//
- **[16e120438](facebook/react@16e120438)**: [Fire] Add initial build infrastructure (#14359) //<Dan Abramov>//
- **[d14ba87b1](facebook/react@d14ba87b1)**: Validate propTypes for lazy() and memo() and warn about invalid patterns (#14298) //<Dan Abramov>//
- **[4f964f09c](facebook/react@4f964f09c)**: Adding isMemo check to react-is package (#14313) //<Jinto Jose>//
- **[c2a2d8a53](facebook/react@c2a2d8a53)**: Remove useMutationEffect (#14336) //<Sophie Alpert>//
- **[48f1e5b3c](facebook/react@48f1e5b3c)**: Add a null type test for memo (#14325) //<chun shang>//
- **[f93f3402f](facebook/react@f93f3402f)**: Make useEffect(async) warning more verbose (#14327) //<Dan Abramov>//
- **[ee3ef3a07](facebook/react@ee3ef3a07)**: Fix regression: Errors not emitted in streams (#14314) //<Pelle Wessman>//
- **[33f6f5e53](facebook/react@33f6f5e53)**: Remove usage of `fbjs/lib/invariant` in ReactNativeViewConfigRegistry. (#14330) //<Christoph Nakazawa>//
- **[686f1060a](facebook/react@686f1060a)**: Publish a local release (canary or stable) to NPM (#14260) //<Brian Vaughn>//
- **[7475120ce](facebook/react@7475120ce)**: Prevent deopts from modifying exports object in stable builds (#14309) //<Dan Abramov>//
- **[0c7189d92](facebook/react@0c7189d92)**: Fix resolution of outer props with React.memo() (#14312) //<Dan Abramov>//
- **[14be29b2b](facebook/react@14be29b2b)**: Add more test coverage for nested memo() (#14311) //<Dan Abramov>//
- **[dc0dd4bbf](facebook/react@dc0dd4bbf)**: Use |0 to coerce to number (#14297) //<Dan Abramov>//
- **[dd8205cef](facebook/react@dd8205cef)**: List ignored types instead of included types in the stack (#14308) //<Dan Abramov>//
- **[a9fdf8a32](facebook/react@a9fdf8a32)**: Warn about reassigning this.props (#14277) //<Dan Abramov>//
- **[327cf0ee3](facebook/react@327cf0ee3)**: Fix support for mixing react-dom/[email protected] and react@<16.6 (#14291) //<Dan Abramov>//
- **[c954efa70](facebook/react@c954efa70)**: Remove `import * as` pattern from the codebase (#14282) //<Sebastian Markbåge>//
- **[ccb14e270](facebook/react@ccb14e270)**: Fix SSR useCallback in render phase (#14279) //<Dan Abramov>//
- **[0e9cb3f5d](facebook/react@0e9cb3f5d)**: Clear fields on unmount of fiber to avoid memory leak (#14276) //<Dominic Gannaway>//
- **[592676503](facebook/react@592676503)**: Revert "Clear memoizedState on unmount of fiber to avoid memory leak (#14218)" (#14275) //<Dominic Gannaway>//
- **[9b2fb24f9](facebook/react@9b2fb24f9)**: Clear memoizedState on unmount of fiber to avoid memory leak (#14218) //<Dominic Gannaway>//
- **[a22fabc2a](facebook/react@a22fabc2a)**: Reduce scheduler serialization overhead (#14249) //<Jason Miller>//
- **[21d5f7d32](facebook/react@21d5f7d32)**: Wrap shorthand CSS property collision warning in feature flag (#14245) //<Andrew Clark>//
- **[8feeed10d](facebook/react@8feeed10d)**: [scheduler] Remove window.postMessage fallback //<Andrew Clark>//
- **[5bce0ef10](facebook/react@5bce0ef10)**: [scheduler] Post to MessageChannel instead of window (#14234) //<Andrew Clark>//
- **[f55795c8e](facebook/react@f55795c8e)**: Add regression test for #14188 (#14197) //<Dan Abramov>//
- **[b98adb648](facebook/react@b98adb648)**: Simplify CSS shorthand property warning (#14183) //<Sophie Alpert>//
- **[f8bfd5868](facebook/react@f8bfd5868)**: fix typo //<Sebastian Markbage>//
- **[961eb65b4](facebook/react@961eb65b4)**: Use unique thread ID for each partial render to access Context (#14182) //<Sebastian Markbåge>//
- **[1a6ab1e9b](facebook/react@1a6ab1e9b)**: SimpleMemoComponent should warn if a ref is given (#14178) //<Sophie Alpert>//
- **[8ae867e6b](facebook/react@8ae867e6b)**: Warn about conflicting style values during updates (#14181) //<Sophie Alpert>//
- **[d5e1bf07d](facebook/react@d5e1bf07d)**: Renamed outdated schedule/tracing referecnes (#14177) //<Brian Vaughn>//
- **[2dd4ba11e](facebook/react@2dd4ba11e)**: ESlint -> ESLint //<Andrew Clark>//
- **[9cc631a53](facebook/react@9cc631a53)**: Don't run danger on bad build (#14143) //<Sophie Alpert>//
- **[1034e26fe](facebook/react@1034e26fe)**: Fix typos (#14124) //<Heaven>//
- **[5618da49d](facebook/react@5618da49d)**: Fix comment typo (#14156) //<Bartosz Gordon>//
- **[9fb919945](facebook/react@9fb919945)**: Add global to ESLint plugin bundle config //<Andrew Clark>//
- **[c174f8592](facebook/react@c174f8592)**: Add fb build of ESLint plugin (#14165) //<Andrew Clark>//
- **[02e4848e3](facebook/react@02e4848e3)**: Improved suspense support in ReactDOMServer (#14161) //<Alex Taylor>//
- **[4b163fe](facebook/react@4b163fee1)**: Remove errant return assignment (#14164) //<Andrew Clark>//
- **[e58ecda9a](facebook/react@e58ecda9a)**: Suspense fuzz tester (#14147) //<Andrew Clark>//
- **[7fd1661f8](facebook/react@7fd1661f8)**:  Don't warn if an unmounted component is pinged (#14158) //<Andrew Clark>//
- **[f9e9913f0](facebook/react@f9e9913f0)**: [Synchronous Suspense] Don't delete children of suspended component (#14157) //<Andrew Clark>//
- **[7c560131b](facebook/react@7c560131b)**: Adding logger pri (#14155) //<Nathan Schloss>//
- **[3d8bda70e](facebook/react@3d8bda70e)**: Refactor ESLint configuration to enable better IDE integration (#13914) //<Minh Nguyen>//
- **[051272f20](facebook/react@051272f20)**: Use Entry in `yarn build ...` Instead of Label (#14148) //<Sebastian Markbåge>//

Release Notes:
[GENERAL] [FEATURE] [React] - React sync for revisions 3ff2c7c...6bf5e85

Reviewed By: bvaughn

Differential Revision: D13288288

fbshipit-source-id: 89a4837a9198c53fc79306933f589ef25d8bb4b6
kelset pushed a commit that referenced this pull request Dec 12, 2018
Summary:
@public
This sync includes the following changes:
- **[6bf5e8598](facebook/react@6bf5e8598)**: Fix scheduler setTimeout() re-entrancy check (#14384) //<Brian Vaughn>//
- **[7a48c900b](facebook/react@7a48c900b)**: Prevent a v8 deopt when profiling (#14383) //<Brian Vaughn>//
- **[f00c2755b](facebook/react@f00c2755b)**: Removed unnecessary externals from Jest bundles (#14372) //<Brian Vaughn>//
- **[52bea95cf](facebook/react@52bea95cf)**: Fixed scheduler setTimeout fallback (#14358) //<Brian Vaughn>//
- **[1d25aa578](facebook/react@1d25aa578)**: [Fizz] New Server Rendering Infra (#14144) //<Sebastian Markbåge>//
- **[f1bf28160](facebook/react@f1bf28160)**: Fix bug in cloneHook (#14364) //<Imre Osswald>//
- **[16e120438](facebook/react@16e120438)**: [Fire] Add initial build infrastructure (#14359) //<Dan Abramov>//
- **[d14ba87b1](facebook/react@d14ba87b1)**: Validate propTypes for lazy() and memo() and warn about invalid patterns (#14298) //<Dan Abramov>//
- **[4f964f09c](facebook/react@4f964f09c)**: Adding isMemo check to react-is package (#14313) //<Jinto Jose>//
- **[c2a2d8a53](facebook/react@c2a2d8a53)**: Remove useMutationEffect (#14336) //<Sophie Alpert>//
- **[48f1e5b3c](facebook/react@48f1e5b3c)**: Add a null type test for memo (#14325) //<chun shang>//
- **[f93f3402f](facebook/react@f93f3402f)**: Make useEffect(async) warning more verbose (#14327) //<Dan Abramov>//
- **[ee3ef3a07](facebook/react@ee3ef3a07)**: Fix regression: Errors not emitted in streams (#14314) //<Pelle Wessman>//
- **[33f6f5e53](facebook/react@33f6f5e53)**: Remove usage of `fbjs/lib/invariant` in ReactNativeViewConfigRegistry. (#14330) //<Christoph Nakazawa>//
- **[686f1060a](facebook/react@686f1060a)**: Publish a local release (canary or stable) to NPM (#14260) //<Brian Vaughn>//
- **[7475120ce](facebook/react@7475120ce)**: Prevent deopts from modifying exports object in stable builds (#14309) //<Dan Abramov>//
- **[0c7189d92](facebook/react@0c7189d92)**: Fix resolution of outer props with React.memo() (#14312) //<Dan Abramov>//
- **[14be29b2b](facebook/react@14be29b2b)**: Add more test coverage for nested memo() (#14311) //<Dan Abramov>//
- **[dc0dd4bbf](facebook/react@dc0dd4bbf)**: Use |0 to coerce to number (#14297) //<Dan Abramov>//
- **[dd8205cef](facebook/react@dd8205cef)**: List ignored types instead of included types in the stack (#14308) //<Dan Abramov>//
- **[a9fdf8a32](facebook/react@a9fdf8a32)**: Warn about reassigning this.props (#14277) //<Dan Abramov>//
- **[327cf0ee3](facebook/react@327cf0ee3)**: Fix support for mixing react-dom/[email protected] and react@<16.6 (#14291) //<Dan Abramov>//
- **[c954efa70](facebook/react@c954efa70)**: Remove `import * as` pattern from the codebase (#14282) //<Sebastian Markbåge>//
- **[ccb14e270](facebook/react@ccb14e270)**: Fix SSR useCallback in render phase (#14279) //<Dan Abramov>//
- **[0e9cb3f5d](facebook/react@0e9cb3f5d)**: Clear fields on unmount of fiber to avoid memory leak (#14276) //<Dominic Gannaway>//
- **[592676503](facebook/react@592676503)**: Revert "Clear memoizedState on unmount of fiber to avoid memory leak (#14218)" (#14275) //<Dominic Gannaway>//
- **[9b2fb24f9](facebook/react@9b2fb24f9)**: Clear memoizedState on unmount of fiber to avoid memory leak (#14218) //<Dominic Gannaway>//
- **[a22fabc2a](facebook/react@a22fabc2a)**: Reduce scheduler serialization overhead (#14249) //<Jason Miller>//
- **[21d5f7d32](facebook/react@21d5f7d32)**: Wrap shorthand CSS property collision warning in feature flag (#14245) //<Andrew Clark>//
- **[8feeed10d](facebook/react@8feeed10d)**: [scheduler] Remove window.postMessage fallback //<Andrew Clark>//
- **[5bce0ef10](facebook/react@5bce0ef10)**: [scheduler] Post to MessageChannel instead of window (#14234) //<Andrew Clark>//
- **[f55795c8e](facebook/react@f55795c8e)**: Add regression test for #14188 (#14197) //<Dan Abramov>//
- **[b98adb648](facebook/react@b98adb648)**: Simplify CSS shorthand property warning (#14183) //<Sophie Alpert>//
- **[f8bfd5868](facebook/react@f8bfd5868)**: fix typo //<Sebastian Markbage>//
- **[961eb65b4](facebook/react@961eb65b4)**: Use unique thread ID for each partial render to access Context (#14182) //<Sebastian Markbåge>//
- **[1a6ab1e9b](facebook/react@1a6ab1e9b)**: SimpleMemoComponent should warn if a ref is given (#14178) //<Sophie Alpert>//
- **[8ae867e6b](facebook/react@8ae867e6b)**: Warn about conflicting style values during updates (#14181) //<Sophie Alpert>//
- **[d5e1bf07d](facebook/react@d5e1bf07d)**: Renamed outdated schedule/tracing referecnes (#14177) //<Brian Vaughn>//
- **[2dd4ba11e](facebook/react@2dd4ba11e)**: ESlint -> ESLint //<Andrew Clark>//
- **[9cc631a53](facebook/react@9cc631a53)**: Don't run danger on bad build (#14143) //<Sophie Alpert>//
- **[1034e26fe](facebook/react@1034e26fe)**: Fix typos (#14124) //<Heaven>//
- **[5618da49d](facebook/react@5618da49d)**: Fix comment typo (#14156) //<Bartosz Gordon>//
- **[9fb919945](facebook/react@9fb919945)**: Add global to ESLint plugin bundle config //<Andrew Clark>//
- **[c174f8592](facebook/react@c174f8592)**: Add fb build of ESLint plugin (#14165) //<Andrew Clark>//
- **[02e4848e3](facebook/react@02e4848e3)**: Improved suspense support in ReactDOMServer (#14161) //<Alex Taylor>//
- **[4b163fe](facebook/react@4b163fee1)**: Remove errant return assignment (#14164) //<Andrew Clark>//
- **[e58ecda9a](facebook/react@e58ecda9a)**: Suspense fuzz tester (#14147) //<Andrew Clark>//
- **[7fd1661f8](facebook/react@7fd1661f8)**:  Don't warn if an unmounted component is pinged (#14158) //<Andrew Clark>//
- **[f9e9913f0](facebook/react@f9e9913f0)**: [Synchronous Suspense] Don't delete children of suspended component (#14157) //<Andrew Clark>//
- **[7c560131b](facebook/react@7c560131b)**: Adding logger pri (#14155) //<Nathan Schloss>//
- **[3d8bda70e](facebook/react@3d8bda70e)**: Refactor ESLint configuration to enable better IDE integration (#13914) //<Minh Nguyen>//
- **[051272f20](facebook/react@051272f20)**: Use Entry in `yarn build ...` Instead of Label (#14148) //<Sebastian Markbåge>//

Release Notes:
[GENERAL] [FEATURE] [React] - React sync for revisions 3ff2c7c...6bf5e85

Reviewed By: bvaughn

Differential Revision: D13288288

fbshipit-source-id: 89a4837a9198c53fc79306933f589ef25d8bb4b6
t-nanava pushed a commit to microsoft/react-native-macos that referenced this pull request Jun 17, 2019
Summary:
@public
This sync includes the following changes:
- **[6bf5e8598](facebook/react@6bf5e8598)**: Fix scheduler setTimeout() re-entrancy check (facebook#14384) //<Brian Vaughn>//
- **[7a48c900b](facebook/react@7a48c900b)**: Prevent a v8 deopt when profiling (facebook#14383) //<Brian Vaughn>//
- **[f00c2755b](facebook/react@f00c2755b)**: Removed unnecessary externals from Jest bundles (facebook#14372) //<Brian Vaughn>//
- **[52bea95cf](facebook/react@52bea95cf)**: Fixed scheduler setTimeout fallback (facebook#14358) //<Brian Vaughn>//
- **[1d25aa578](facebook/react@1d25aa578)**: [Fizz] New Server Rendering Infra (facebook#14144) //<Sebastian Markbåge>//
- **[f1bf28160](facebook/react@f1bf28160)**: Fix bug in cloneHook (facebook#14364) //<Imre Osswald>//
- **[16e120438](facebook/react@16e120438)**: [Fire] Add initial build infrastructure (facebook#14359) //<Dan Abramov>//
- **[d14ba87b1](facebook/react@d14ba87b1)**: Validate propTypes for lazy() and memo() and warn about invalid patterns (facebook#14298) //<Dan Abramov>//
- **[4f964f09c](facebook/react@4f964f09c)**: Adding isMemo check to react-is package (facebook#14313) //<Jinto Jose>//
- **[c2a2d8a53](facebook/react@c2a2d8a53)**: Remove useMutationEffect (facebook#14336) //<Sophie Alpert>//
- **[48f1e5b3c](facebook/react@48f1e5b3c)**: Add a null type test for memo (facebook#14325) //<chun shang>//
- **[f93f3402f](facebook/react@f93f3402f)**: Make useEffect(async) warning more verbose (facebook#14327) //<Dan Abramov>//
- **[ee3ef3a07](facebook/react@ee3ef3a07)**: Fix regression: Errors not emitted in streams (facebook#14314) //<Pelle Wessman>//
- **[33f6f5e53](facebook/react@33f6f5e53)**: Remove usage of `fbjs/lib/invariant` in ReactNativeViewConfigRegistry. (facebook#14330) //<Christoph Nakazawa>//
- **[686f1060a](facebook/react@686f1060a)**: Publish a local release (canary or stable) to NPM (facebook#14260) //<Brian Vaughn>//
- **[7475120ce](facebook/react@7475120ce)**: Prevent deopts from modifying exports object in stable builds (facebook#14309) //<Dan Abramov>//
- **[0c7189d92](facebook/react@0c7189d92)**: Fix resolution of outer props with React.memo() (facebook#14312) //<Dan Abramov>//
- **[14be29b2b](facebook/react@14be29b2b)**: Add more test coverage for nested memo() (facebook#14311) //<Dan Abramov>//
- **[dc0dd4bbf](facebook/react@dc0dd4bbf)**: Use |0 to coerce to number (facebook#14297) //<Dan Abramov>//
- **[dd8205cef](facebook/react@dd8205cef)**: List ignored types instead of included types in the stack (facebook#14308) //<Dan Abramov>//
- **[a9fdf8a32](facebook/react@a9fdf8a32)**: Warn about reassigning this.props (facebook#14277) //<Dan Abramov>//
- **[327cf0ee3](facebook/react@327cf0ee3)**: Fix support for mixing react-dom/[email protected] and react@<16.6 (facebook#14291) //<Dan Abramov>//
- **[c954efa70](facebook/react@c954efa70)**: Remove `import * as` pattern from the codebase (facebook#14282) //<Sebastian Markbåge>//
- **[ccb14e270](facebook/react@ccb14e270)**: Fix SSR useCallback in render phase (facebook#14279) //<Dan Abramov>//
- **[0e9cb3f5d](facebook/react@0e9cb3f5d)**: Clear fields on unmount of fiber to avoid memory leak (facebook#14276) //<Dominic Gannaway>//
- **[592676503](facebook/react@592676503)**: Revert "Clear memoizedState on unmount of fiber to avoid memory leak (facebook#14218)" (facebook#14275) //<Dominic Gannaway>//
- **[9b2fb24f9](facebook/react@9b2fb24f9)**: Clear memoizedState on unmount of fiber to avoid memory leak (facebook#14218) //<Dominic Gannaway>//
- **[a22fabc2a](facebook/react@a22fabc2a)**: Reduce scheduler serialization overhead (facebook#14249) //<Jason Miller>//
- **[21d5f7d32](facebook/react@21d5f7d32)**: Wrap shorthand CSS property collision warning in feature flag (facebook#14245) //<Andrew Clark>//
- **[8feeed10d](facebook/react@8feeed10d)**: [scheduler] Remove window.postMessage fallback //<Andrew Clark>//
- **[5bce0ef10](facebook/react@5bce0ef10)**: [scheduler] Post to MessageChannel instead of window (facebook#14234) //<Andrew Clark>//
- **[f55795c8e](facebook/react@f55795c8e)**: Add regression test for facebook#14188 (facebook#14197) //<Dan Abramov>//
- **[b98adb648](facebook/react@b98adb648)**: Simplify CSS shorthand property warning (facebook#14183) //<Sophie Alpert>//
- **[f8bfd5868](facebook/react@f8bfd5868)**: fix typo //<Sebastian Markbage>//
- **[961eb65b4](facebook/react@961eb65b4)**: Use unique thread ID for each partial render to access Context (facebook#14182) //<Sebastian Markbåge>//
- **[1a6ab1e9b](facebook/react@1a6ab1e9b)**: SimpleMemoComponent should warn if a ref is given (facebook#14178) //<Sophie Alpert>//
- **[8ae867e6b](facebook/react@8ae867e6b)**: Warn about conflicting style values during updates (facebook#14181) //<Sophie Alpert>//
- **[d5e1bf07d](facebook/react@d5e1bf07d)**: Renamed outdated schedule/tracing referecnes (facebook#14177) //<Brian Vaughn>//
- **[2dd4ba11e](facebook/react@2dd4ba11e)**: ESlint -> ESLint //<Andrew Clark>//
- **[9cc631a53](facebook/react@9cc631a53)**: Don't run danger on bad build (facebook#14143) //<Sophie Alpert>//
- **[1034e26fe](facebook/react@1034e26fe)**: Fix typos (facebook#14124) //<Heaven>//
- **[5618da49d](facebook/react@5618da49d)**: Fix comment typo (facebook#14156) //<Bartosz Gordon>//
- **[9fb919945](facebook/react@9fb919945)**: Add global to ESLint plugin bundle config //<Andrew Clark>//
- **[c174f8592](facebook/react@c174f8592)**: Add fb build of ESLint plugin (facebook#14165) //<Andrew Clark>//
- **[02e4848e3](facebook/react@02e4848e3)**: Improved suspense support in ReactDOMServer (facebook#14161) //<Alex Taylor>//
- **[4b163fe](facebook/react@4b163fee1)**: Remove errant return assignment (facebook#14164) //<Andrew Clark>//
- **[e58ecda9a](facebook/react@e58ecda9a)**: Suspense fuzz tester (facebook#14147) //<Andrew Clark>//
- **[7fd1661f8](facebook/react@7fd1661f8)**:  Don't warn if an unmounted component is pinged (facebook#14158) //<Andrew Clark>//
- **[f9e9913f0](facebook/react@f9e9913f0)**: [Synchronous Suspense] Don't delete children of suspended component (facebook#14157) //<Andrew Clark>//
- **[7c560131b](facebook/react@7c560131b)**: Adding logger pri (facebook#14155) //<Nathan Schloss>//
- **[3d8bda70e](facebook/react@3d8bda70e)**: Refactor ESLint configuration to enable better IDE integration (facebook#13914) //<Minh Nguyen>//
- **[051272f20](facebook/react@051272f20)**: Use Entry in `yarn build ...` Instead of Label (facebook#14148) //<Sebastian Markbåge>//

Release Notes:
[GENERAL] [FEATURE] [React] - React sync for revisions 3ff2c7c...6bf5e85

Reviewed By: bvaughn

Differential Revision: D13288288

fbshipit-source-id: 89a4837a9198c53fc79306933f589ef25d8bb4b6
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.

5 participants