-
Notifications
You must be signed in to change notification settings - Fork 24.4k
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
iOS: Support corner-specific border radii on Images #14148
Conversation
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`.
CALayer *mask = nil; | ||
CGFloat cornerRadius = 0; | ||
|
||
if (self.clipsToBounds) { |
There was a problem hiding this comment.
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
cc @javache |
cc @shergin |
@rigdern Adam, 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. |
@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? |
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
Yeah, this change will introduce as full border support as generic
The current model of implies that the internal content of
We plan to deprecate (and remove very soon) support of |
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/server@16.6 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
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/server@16.6 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
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/server@16.6 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
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/server@16.6 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
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 includingundefined
and ensured theImage
rendered correctly. I tested initial values as well as updates. Additionally, my team is using this change in our app.Adam Comella
Microsoft Corp.