4307 Commits
Author SHA1 Message Date
Lorenzo Sciandra 2151c30474 [0.57.7] Bump version numbers 2018-11-27 13:10:20 +00:00
Lorenzo Sciandra 790c669af0 Revert "Remove useless additionnal blur call (#22156)"
This reverts commit 356ac5d004.
2018-11-27 13:09:30 +00:00
Lorenzo Sciandra d5332fbad2 [0.57.6] Bump version numbers 2018-11-26 17:19:28 +00:00
Adam ComellaandLorenzo Sciandra ac5aaec03f iOS: Support inline view truncation (#21456)
Summary:
If text is truncated and an inline view appears after the truncation point, the user should not see the inline view. Instead, we have a bug such that the inline view is always visible at the end of the visible text.

This commit fixes this by marking the inline view as hidden if it appears after the truncation point.

This appears to be a regression. React Native used to have logic similar to what this commit is adding: https://github.com/facebook/react-native/blob/1e2a924ba60001c6f0587c7561536f00b2922cbf/Libraries/Text/RCTShadowText.m#L186-L192

**Before fix**

Inline view (blue square) is visible even though it appears after the truncation point:

![image](https://user-images.githubusercontent.com/199935/46382038-d3a71200-c65d-11e8-8179-2ce4aad8d010.png)

The full text being rendered was:

```
<Text numberOfLines={1}>
  Lorem ipsum dolor sit amet, consectetur adipiscing elit,
  sed do eiusmod tempor incididunt ut labore et dolore magna
  <View style={{width: 50, height: 50, backgroundColor: 'steelblue'}} />
</Text>
```

**After fix**

Inline view is properly truncated:

![image](https://user-images.githubusercontent.com/199935/46382067-fdf8cf80-c65d-11e8-84ea-e2b71c229dae.png)

**Test Plan**

Tested that the inline view is hidden if it appears after the truncation point when `numberOfLines` is 1 and 2. Similarly, verified that the inline view is visible if it appears before the truncation point.

**Release Notes**

[IOS] [BUGFIX] [Text] - Fix case where inline view is visible even though it should have been truncated

Adam Comella
Microsoft Corp.
Pull Request resolved: https://github.com/facebook/react-native/pull/21456

Differential Revision: D10182991

Pulled By: shergin

fbshipit-source-id: a5bddddb1bb8672b61d4feaa04013a92c8224155
2018-11-26 16:41:41 +00:00
gazoudoudouandLorenzo Sciandra 356ac5d004 Remove useless additionnal blur call (#22156)
Summary:
I noticed that the _onBlur method was not exactly similar to the _onFocus one in the TextInput component.

After digging, I found that the blurTextInput method in the TextInputState.js file was call twice in a raw instead of once when the textinput component should blur.

By removing this line, I fix this unecessary multiple call.
Pull Request resolved: https://github.com/facebook/react-native/pull/22156

Reviewed By: TheSavior

Differential Revision: D13105396

Pulled By: RSNara

fbshipit-source-id: 8e83461d8b288d8ee4047bc4a33c4480e193c349
2018-11-26 16:41:22 +00:00
Brian VaughnandLorenzo Sciandra f41383fb6d Fix React Native AsyncMode and DevTools 2018-11-26 16:40:36 +00:00
Brent VatneandLorenzo Sciandra 5ba44f7f3f Fix regression in StyleSheet.setStyleAttributePreprocessor (#22262)
Summary:
This regression was caused by 199c918 - property values are initialized to true rather than a string that matches the property name now.
Pull Request resolved: https://github.com/facebook/react-native/pull/22262

Differential Revision: D13048839

Pulled By: hramos

fbshipit-source-id: 09471334c37f3930aae7e35066943f33f8e617e5
2018-11-26 16:37:17 +00:00
Mehdi MulaniandLorenzo Sciandra 35c1c27bf6 NetInfo: try to solve crash with releasing _firstTimeReachability
Summary:
@public
We're seeing a crash on line 191 when we do `CFRelease(self->_firstTimeReachability);`. My thinking is that there's a race condition between the deallocation coming from calling `getCurrentConnectivity` twice in a row and the callback coming back.

Reviewed By: PeteTheHeat

Differential Revision: D12982772

fbshipit-source-id: d3d882a074b67a5e547e7f480f561fcaf8d79ec4
2018-11-26 16:36:58 +00:00
MateusAndradeandLorenzo Sciandra 6c8535656f Improving Modal visible prop check to handle undefined and null (#22072)
Summary:
Changing the the this.props.visible if to be ` if (!!this.props.visible === false)` . So passing undefined, or other values wont set the modal to be visible. Granting that anything that is not true, will set the modal to null on the render.

I make this this PR, because on the company that im working, we used a lot of RN. At the moment, we arent using anything like flow or TS. But to grant that the modals will only show if they are set visible to true i have changed the if made.

_Pull requests that expand test coverage are more likely to get reviewed. Add a test case whenever possible!_
Pull Request resolved: https://github.com/facebook/react-native/pull/22072

Differential Revision: D12918086

Pulled By: TheSavior

fbshipit-source-id: 8f9c63ac6fd56d83949bb8428ad7c5b7bf805c49
2018-11-26 16:34:31 +00:00
Chris WilliamsandLorenzo Sciandra d0c8cb12f2 Add iOS 12 textContentType options (#21079)
Summary:
Adding the new `textContentType` options from iOS 12. `newPassword` helps the OS know to put a password field into the keychain, and `oneTimeCode` hints that the field will take input from an SMS one time code.
Pull Request resolved: https://github.com/facebook/react-native/pull/21079

Differential Revision: D9813328

Pulled By: TheSavior

fbshipit-source-id: d2c04b41121b32f185af38ea4c642924e261a043
2018-11-26 16:34:23 +00:00
Zack GomezandLorenzo Sciandra 79b33118ea Fix inability to remove 'Disabled' state from AccessibilityStates
Summary:
D8842691 split AccessibilityTraits into multiple RN properties.  However, the accessor code did not support REMOVING traits.
This results in buttons that were disabled (AccessibilityTraits & NotEnabled === true) never being enabled.

Fix the issue by making the split accessors properly mask in the bits, allowing you unset them without disturbing bits managed by the other accessor.

NOTE: setting AccessibilityTraits and AccessibilityRole or AccessibilityStates will still result in bugs.

Reviewed By: shergin

Differential Revision: D9661970

fbshipit-source-id: 77d70dd0754f2eaf8cbf895bfc13757c697a76d8
2018-11-26 16:34:14 +00:00
Lorenzo Sciandra 7eeb305933 Revert [Performance improvement for loading cached images on iOS ] 2018-11-26 16:29:28 +00:00
Lorenzo Sciandra 44bfffb116 [0.57.5] Bump version numbers 2018-11-13 15:07:04 +00:00
Juuso HeikkinenandLorenzo Sciandra 550cf7d978 Bump fbjs-scripts to ^1.0.0 (#21880) 2018-11-12 13:46:07 +00:00
Tim YungandLorenzo Sciandra 76c99f20e3 React sync for revisions 4773fdf...3ff2c7c 2018-11-09 14:01:35 +00:00
Tim YungandLorenzo Sciandra 19c8164e36 React sync for revisions d836010...4773fdf
Summary:
@public
This sync includes the following changes:
- **[4773fdf7c](https://github.com/facebook/react/commit/4773fdf7c)**: Deprecate findDOMNode in StrictMode (#13841) //<Sebastian Markbåge>//
- **[c9be16f5b](https://github.com/facebook/react/commit/c9be16f5b)**: [scheduler] Rename priority levels (#13842) //<Andrew Clark>//
- **[3b7ee2692](https://github.com/facebook/react/commit/3b7ee2692)**: Deprecate context object as a consumer and add a warning message (#13829) //<Dominic Gannaway>//
- **[8ca8a594e](https://github.com/facebook/react/commit/8ca8a594e)**: Error gracefully for unsupported SSR features (#13839) //<Dan Abramov>//
- **[4a635785f](https://github.com/facebook/react/commit/4a635785f)**: Fix User Timing oddities with Suspense, pure, and lazy (#13833) //<Dan Abramov>//
- **[a165cf747](https://github.com/facebook/react/commit/a165cf747)**: Renamed 4 Internal React Modules //<Nadia Osipova>//
- **[a68ca9a5b](https://github.com/facebook/react/commit/a68ca9a5b)**: React.pure automatically forwards ref (#13822) //<Sophie Alpert>//
- **[c73497c3c](https://github.com/facebook/react/commit/c73497c3c)**: Update bundle sizes for 16.6.0-alpha.8af6728 release //<Dan Abramov>//
- **[1a57dc668](https://github.com/facebook/react/commit/1a57dc668)**: Updating dependencies for react-noop-renderer //<Dan Abramov>//
- **[77f8dfd81](https://github.com/facebook/react/commit/77f8dfd81)**: Updating package versions for release 16.6.0-alpha.8af6728 //<Dan Abramov>//
- **[8af6728c6](https://github.com/facebook/react/commit/8af6728c6)**: Enable Suspense + rename Placeholder (#13799) //<Dan Abramov>//
- **[f47a958ea](https://github.com/facebook/react/commit/f47a958ea)**: Don’t add onclick listener to React root (#13778) //<Philipp>//
- **[b2cea9078](https://github.com/facebook/react/commit/b2cea9078)**: [scheduler] Eagerly schedule rAF at beginning of frame (#13785) //<Andrew Clark>//
- **[e2e7cb9f4](https://github.com/facebook/react/commit/e2e7cb9f4)**: [scheduler] add a test documenting current behavior (#13687) //<plievone>//

Release Notes:
[GENERAL] [FEATURE] [React] - React sync for revisions d836010...4773fdf

Reviewed By: acdlite

Differential Revision: D10350869

fbshipit-source-id: ea8ad4b5d914c870be1fc80aa1005b224d37f5e5
2018-11-09 14:01:35 +00:00
Albert SunandLorenzo Sciandra 68dee8aee5 Increase cache and file size limits
Summary: This change expands the limits to support a greater variety of scenarios.

Reviewed By: PeteTheHeat

Differential Revision: D12911841

fbshipit-source-id: a7c8eb6fece49dfe47b3ada98f55a02b43396ce8
2018-11-09 14:01:35 +00:00
Eric SamelsonandLorenzo Sciandra ce09d6e571 Performance improvement for loading cached images on iOS (#20356)
Summary:
This PR increases the speed at which cached images are loaded and displayed on the screen. Images are currently cached in memory using RCTImageCache, but each time they are loaded, a round trip through RCTNetworking happens before RCTImageCache is even checked. This is likely so that RCTNetworking can handle the caching behavior required by the HTTP headers. However, this means that at the very least, images are read from disk each time they're loaded.

This PR makes RCTImageLoader check RCTImageCache _before_ sending a request to RCTNetworking. RCTImageCache stores a bit of information about the response headers so that it can respect Cache-Control fields without needing a roundtrip through RCTNetworking.

Here are a couple of graphs showing improved loading times before this change (blue) and after (red) with SDWebImage (yellow) as a baseline comparison. The increase is most evident when loading especially large (hi-res photo size) images, or loading multiple images at a time.
https://imgur.com/a/cnL47Z0

More performance gains can potentially be had by increasing the size limit of RCTImageCache: https://github.com/facebook/react-native/blob/1a6666a116fd8b9e8637956de2b41a1c315dd470/Libraries/Image/RCTImageCache.m#L39 but this comes at the tradeoff of being more likely to run into OOM crashes.
Pull Request resolved: https://github.com/facebook/react-native/pull/20356

Reviewed By: PeteTheHeat

Differential Revision: D12909121

Pulled By: alsun2001

fbshipit-source-id: 7f5e21928c53d7aa53f293b7f1b4ec5c99b5f0c2
2018-11-09 14:01:35 +00:00
Adam ComellaandLorenzo Sciandra 1131463069 Fix relayout of inline views (#21968)
Summary:
If a view inside of an inline view became dirty (e.g. its top/left prop changed), its position would not update on screen. This is because Yoga didn't know the view needed to be relaid out because Yoga's dirty signal didn't propagate all the way up to the root.

The problem is that inline views don't have a parent in the Yoga tree causing Yoga's dirtiness signal propagation to get cut off early. The fix is, when an inline views gets dirty, mark the parent Text's Yoga node as dirty. This will cause Yoga's dirtiness signal to propagate all the way up to the root node.

Yoga has a hook to inform you when your node is marked as dirty: `YGNodeSetDirtiedFunc`. We leverage this to find out when an inline view's Yoga node gets dirtied.

React Native almost handled this case. Everything worked fine as long as the inline view was nested inside of a virtual text node like this:

```
<Text>
  <Text>
    <InlineView />
  </Text>
</Text>
```

However, the bug repros when the inline view is nested in a non-virtual text node:

```
<Text>
  <InlineView />
</Text>
```

The fix is to move the special dirtiness propagation logic from `RCTVirtualTextShadowView` to `RCTBaseTextShadowView`.

**Test Plan**

Created an inline view. Tested the following kinds of updates on the inline view's content:
  - Moved the content
  - Removed the content
  - Added the content

Tested this for an inline view that is directly inside of a text node as well as one that is nested under a virtual text node.

Here's the code I used for the inline view that moved its content after 2 seconds:

```
const RN = require('react-native');
const React = require('react');

export default class InlineView extends React.Component {
  constructor(props, context) {
    super(props, context);
    this.state = { posBottom: false };
  }

  componentDidMount() {
    super.componentDidMount && super.componentDidMount();
    setTimeout(() => { this.setState({ posBottom: true }); }, 2000);
  }

  render() {
    const pos = this.state.posBottom ? 25 : 0;
    const color = this.state.posBottom ? 'pink' : 'green';
    return (
      <RN.View style={{ width: 50, height: 50, backgroundColor: 'steelblue'}}>
        <RN.View style={{ width: 25, height: 25, top: pos, left: pos, backgroundColor: color }} />
      </RN.View>
    );
  }
}
```

**Release Notes**

[IOS] [BUGFIX] [Text] - Fix case where content of inline views didn't get relaid out

Adam Comella
Microsoft Corp.
Pull Request resolved: https://github.com/facebook/react-native/pull/21968

Differential Revision: D12873795

Pulled By: shergin

fbshipit-source-id: bbc9f5d3ef25063b0015cec8c4aaf2e41ecd60a8
2018-11-09 14:01:35 +00:00
Wen-Chien ChenandLorenzo Sciandra 483d4e21d6 Wrap measureLayoutRelativeToContainingList in try-catch to mitigate crash
Summary: This function sometimes causes an "Unable to find node on an unmounted component" crash during pagination for reasons that still need to be investigated; in the meanwhile, wrap this in a try-catch block to mitigate the crash.

Reviewed By: sahrens

Differential Revision: D12829971

fbshipit-source-id: bc9fe5b9b8c03430ff890bfbb27c39aa270c9eb7
2018-11-09 14:01:35 +00:00
Rajiv ShahandLorenzo Sciandra 311ba9a8f8 Fix View/Text displayName (#21950)
Summary:
Adds the displayName prop to `View` and `Text` components. Because these now use `React.forwardRef`, they were showing as `Component` instead of their actual names.

Thanks to ljharb for helping to pinpoint the source of the issue!

Fixes #21937
Pull Request resolved: https://github.com/facebook/react-native/pull/21950

Differential Revision: D12827060

Pulled By: TheSavior

fbshipit-source-id: d812cae14d53ad821ab5873e737db63ad1a989e3
2018-11-07 10:31:22 +00:00
Tim YungandLorenzo Sciandra 7187f85551 RN: Reduce ForwardRef(View) Noise in Systrace
Summary: When running a trace, reduce the noise from the `__DEV__`-only `ForwardRef(View)` elements.

Reviewed By: ejanzer

Differential Revision: D9445865

fbshipit-source-id: 7cfe87bab6dd62d3800d2ca239724b5063c55c89
2018-11-07 10:31:13 +00:00
Rafael OlezaandLorenzo Sciandra 53616e67db Fix polyfilling of regeneratorRuntime to avoid setting it to undefined in some situations
Summary:
This diff fixes an issue that caused the problem with `regeneratorRuntime` last Friday (more info: https://fb.facebook.com/groups/frontendsupport/permalink/2427883350560427/).

The root issue is that both `InitializeCore` and `FBInitializeCore` are included in the same bundle, this fix just prevents the bundle from being invalid once this happens..

*copied from: https://our.intern.facebook.com/intern/diff/D10444264/?transaction_id=595485237532887*

The way that `regeneratorRuntime` is polyfilled is not correct:

```
polyfillGlobal('regeneratorRuntime', () => {
  // The require just sets up the global, so make sure when we first
  // invoke it the global does not exist
  delete global.regeneratorRuntime;
  require('regenerator-runtime/runtime');
  return global.regeneratorRuntime;
});
```

Since a `require`d module is only evaluated once (no matter how many times it's required), defining (and calling) a getter for `global.regeneratorRuntime` twice will end up storing `undefined` to `global.regeneratorRuntime`.

There were no issues before this diff because the ordering of requires made things work by coincidence, e.g the following code will work:

```
// Set up regenerator for the first time
polyfillGlobal('regeneratorRuntime', () => {
  delete global.regeneratorRuntime;
  require('regenerator-runtime/runtime');
  return global.regeneratorRuntime;
});

// Set up regenerator for the second time. This will just override the previous getter (which has not even got executed so
// the `regenerator-runtime/runtime` module has not been evaluated yet.
polyfillGlobal('regeneratorRuntime', () => {
  // The require just sets up the global, so make sure when we first
  // invoke it the global does not exist
  delete global.regeneratorRuntime;
  require('regenerator-runtime/runtime');
  return global.regeneratorRuntime;
});

// Now access regenerator
global.regeneratorRuntime;
```

But the following code won't work:

```
// Set up regenerator for the first time
polyfillGlobal('regeneratorRuntime', () => {
  delete global.regeneratorRuntime;
  require('regenerator-runtime/runtime');
  return global.regeneratorRuntime;
});

// Access regenerator. This will cause the previous getter to be called, and the `regenerator-runtime/runtime` module will get evaluated.
// Here, `global.regeneratorRuntime` will have a correct value.
global.regeneratorRuntime;

// Set up regenerator for the second time. This will define a new getter for `global.regeneratorRuntime`, which will delete `delete global.regeneratorRuntime`
// and return undefined (note that `require('regenerator-runtime/runtime');` is a noop since the module has been already evaluated).
polyfillGlobal('regeneratorRuntime', () => {
  // The require just sets up the global, so make sure when we first
  // invoke it the global does not exist
  delete global.regeneratorRuntime;
  require('regenerator-runtime/runtime');
  return global.regeneratorRuntime;
});
```

Reviewed By: fromcelticpark

Differential Revision: D10483975

fbshipit-source-id: 5b3ef6e11c4fc4f79e3857c1ade9e7bc2beb6a39
2018-11-07 10:07:06 +00:00
Emily JanzerandLorenzo Sciandra 12f2733592 Fix flow in InitializeCore
Reviewed By: yungsters

Differential Revision: D10115867

fbshipit-source-id: be619b9d6fc30e318cbc0e0fc6e741d80dd94a4b
2018-11-07 10:06:45 +00:00
Mehdi MulaniandLorenzo Sciandra 03bc46d411 Remove previously scheduled NetInfo callbacks if they haven't fired
Summary:
@public
If you call NetInfo.getCurrentConnectivity multiple times in succession, we'll create a bunch of callbacks but lose them in the ether.
With this fix, we'll unschedule them before creating a new one, which should resolve some crashes we're seeing.

Reviewed By: PeteTheHeat

Differential Revision: D10409486

fbshipit-source-id: 6065b09fa626f7f06aed9bf0e278c0a6a6169f58
2018-11-06 10:39:31 +00:00
Janic DuplessisandLorenzo Sciandra 4420e391ab Fix InputAccessoryView safe area when not attached to a TextInput (#21179)
Summary:
When using an InputAccessoryView attached to a TextInput the safe area insets are not applied properly. This uses different autolayout constraints that works in all cases I tested, roughly based on the technique used here https://github.com/stockx/SafeAreaInputAccessoryViewWrapperView/blob/master/SafeAreaInputAccessoryViewWrapperView/Classes/SafeAreaInputAccessoryViewWrapperView.swift#L38.
Pull Request resolved: https://github.com/facebook/react-native/pull/21179

Differential Revision: D9928503

Pulled By: hramos

fbshipit-source-id: b1b623334558093042fd94ac85e1b52dd16aa1a0
2018-11-06 10:39:20 +00:00
Lorenzo Sciandra 468161232e [0.57.4] Bump version numbers 2018-10-25 17:52:59 +01:00
Stephen CookandLorenzo Sciandra ef835b52e7 Android textTransform style support (#20572)
Summary:
Issue https://github.com/facebook/react-native/issues/2088 (closed, but a bit pre-emptively imo, since Android support was skipped)

Related (merged) iOS PR https://github.com/facebook/react-native/pull/18387

Related documentation PR https://github.com/facebook/react-native-website/pull/500

The basic desire is to have a declarative mechanism to transform text content to uppercase or lowercase or titlecase ("capitalized").
Pull Request resolved: https://github.com/facebook/react-native/pull/20572

Differential Revision: D9311716

Pulled By: hramos

fbshipit-source-id: dfbb855117196958e7ae5e980700d31be07a448d
2018-10-23 09:32:15 +01:00
Eli WhiteandLorenzo Sciandra 581a6e8822 Add deprecation notice to SwipeableListView
Summary: ListView is deprecated and SwipeableListView uses ListView. Thus, it is deprecated as well.

Reviewed By: RSNara

Differential Revision: D10437408

fbshipit-source-id: a08391d5b099e74b6ec179cd940ac404b2e702f4
2018-10-23 09:31:59 +01:00
Mehdi MulaniandLorenzo Sciandra 346309ec1c Text: send metrics after rendering (iOS)
Summary: This adds a callback for <Text> to get metrics about the rendered text. It's divided by line but that could be changed to "fragments" (which makes more sense for multi-lingual). Right now by line is convenient as you frequently want to know where the first and last line end (though we could make this work with fragments I suppose).

Reviewed By: shergin

Differential Revision: D9440914

fbshipit-source-id: bb011bb7a52438380d3f604ffe7019b98c18d978
2018-10-23 09:30:49 +01:00
Emily JanzerandLorenzo Sciandra e27d88f108 Fix issue when inserting text at 0 when maxLength is set
Summary:
1. The user inserts a character ('0') at index 0. Because the range matches 0, 0, predictedText is set to that character that was inserted.
2. In textInputDidChange, it discovers a mismatch between the rendered text ('1234') and predicted text ('0')
3. This triggers textInputShouldChangeTextInRange to be called again with the 'new' text that it thinks was just added ('1234')
4. It goes to insert this text, but runs into the maxLength limit, so it gets truncated and then inserted.

(I'm not totally sure why only happens if maxLength is set - I need to look into that.)

One fix for this is to just get rid of the range check, but that'll regress #18374. I decided to just check and see if the rendered text is empty instead of checking the range where text could be inserted, since that seems like it should properly handle both cases.

Reviewed By: shergin

Differential Revision: D10392176

fbshipit-source-id: 84fb3b6cac9b0aa25b3c1a127d43f9cdc5a1c6a8
2018-10-23 09:30:29 +01:00
Thomas BARRASandLorenzo Sciandra abbad558f2 ListView requestAnimationFrame leak (#21802)
Summary:
Related to https://github.com/facebook/react-native/pull/21488
Disclaimer: I made this PR.

I think there's some requestAnimationFrame events that are not cleared on unmount because of bad use of `splice` method.

- All flow tests succeed.
- RNTester: iOS (this change should only affect iOS because calculateChildFrames is iOS only)
Show perf monitor, show ListView* screen, start scrolling. UI frame Rate is used at the beginning. When scrolling there is no drop in FPS rate.
- TODO: I'll write a load test for ListView

[GENERAL] [ENHANCEMENT] [ListView.js] - rm TimerMixin
Pull Request resolved: https://github.com/facebook/react-native/pull/21802

Differential Revision: D10391812

Pulled By: RSNara

fbshipit-source-id: 49f0b0a4641ec29bcb4cc04bd3bafb42b3842b69
2018-10-23 09:30:00 +01:00
Thomas BARRASandLorenzo Sciandra c7d36a5eb9 Remove TimerMixin from ListView (#21488)
Summary:
Related to #21485

- Remove TimerMixin from ListView

- All flow tests succeed.
- RNTester: <ListView> iOS (this change should only affect iOS because calculateChildFrames is iOS only)
Show perf monitor, show ListView* screen, start scrolling. UI frame Rate is used at the beginning. When scrolling there is no drop in FPS rate.

TODO: I think a load test would be more relevant:
- Update props multiple times and scroll

[GENERAL] [ENHANCEMENT] [ListView.js] - rm TimerMixin
Pull Request resolved: https://github.com/facebook/react-native/pull/21488

Differential Revision: D10219088

Pulled By: RSNara

fbshipit-source-id: 946e4fc1319324c5bf4947a2060b18bebb6fc493
2018-10-23 09:29:50 +01:00
Andy HuangandLorenzo Sciandra ee2067aa5c Fix pull to refresh refresh component clipping on Android
Summary: Currently the pull to refresh icon on browse feed is super cut off on Android. Expose the progressViewOffset prop from FBPullToRefresh to support offsetting the PTR component to make the component more visible.

Reviewed By: yungsters

Differential Revision: D10274679

fbshipit-source-id: 1735c4d2d98523ccc3d1ec3733465028ae33df7b
2018-10-23 09:29:39 +01:00
Andrey LunyovandLorenzo Sciandra c02432293d Do not use fbjs/emptyObject
Summary: Remove dependency on fbjs/emptyObject in React Native

Reviewed By: yungsters

Differential Revision: D10342631

fbshipit-source-id: 312bb545b66dd5b2132ca67bbaf91cc98a0c6c8a
2018-10-19 15:45:17 +01:00
Lorenzo Sciandra 8fd5bcc888 [0.57.3] Bump version numbers 2018-10-12 12:19:21 +01:00
Radovan ŠmitalaandLorenzo Sciandra b1aed4d376 Normalize scheme for URL on Android (#21561)
Summary:
Android requires lowercase for URL scheme. This commit https://github.com/facebook/react-native/commit/d00bdb9bb8b9b11bce900689c7e28cebd2eb0807 fixed it but on React Native side.
Because it is Android specific, it should be fixed on Android side.

Android has method to normalize url scheme: https://developer.android.com/reference/android/net/Uri.html#normalizeScheme()
Pull Request resolved: https://github.com/facebook/react-native/pull/21561

Differential Revision: D10287868

Pulled By: hramos

fbshipit-source-id: f5e474164fdb2cfd49bd8ee51da17de3f1341a9c
2018-10-12 11:38:44 +01:00
Hyunjong LeeandLorenzo Sciandra 09178f8bb9 Resolve protocol http, https when not in lowercase (#21396)
Summary:
Thank you for sending the PR! We appreciate you spending the time to work on these changes.
Help us understand your motivation by explaining why you decided to make this change.

If this PR fixes an issue, type "Fixes #issueNumber" to automatically close the issue when the PR is merged.

_Pull requests that expand test coverage are more likely to get reviewed. Add a test case whenever possible!_
Pull Request resolved: https://github.com/facebook/react-native/pull/21396

Differential Revision: D10119630

Pulled By: RSNara

fbshipit-source-id: d0fe193eee976b9b18a2eb467b5f3af48bd7d2de
2018-10-12 11:38:38 +01:00
Eli WhiteandLorenzo Sciandra c45007b771 Skip flaky Animated test
Summary:
This test is disabled internally and flaky in open source causing CI to fail. Skipping it for now.

Related to: https://github.com/facebook/react-native/issues/21517

Reviewed By: RSNara

Differential Revision: D10223498

fbshipit-source-id: 37a3798c0abb7de829bc5b59e02f23d8943da882
2018-10-12 11:03:20 +01:00
Tim YungandLorenzo Sciandra 5ec4bab51d RN: Fix ReactNativeViewAttributes Type Bugs
Summary: Fixes the runtime value of `ReactNativeStyleAttributes` to correctly map to `true` instead of strings (as returned by `keyMirror`).

Reviewed By: TheSavior

Differential Revision: D10057235

fbshipit-source-id: dc855cff3a114761098ed5176b2e6e25412481dc
2018-10-12 10:57:37 +01:00
Lorenzo Sciandra 46bb737b98 Revert "[0.57.3] Bump version numbers"
This reverts commit 56cde24863.
2018-10-12 10:28:20 +01:00
Mike Grabowski 56cde24863 [0.57.3] Bump version numbers 2018-10-11 23:39:41 +02:00
Radek CzemerysandMike Grabowski e7ea1f840c Fix deprecation warning message in Switch
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/21479

Differential Revision: D10205122

Pulled By: TheSavior

fbshipit-source-id: a7bbdae3b5dd6b47c4dc995e3c2e8e40abb64f13
2018-10-11 23:13:40 +02:00
Eli WhiteandMike Grabowski 131db26cbd Deprecate legacyImplementation
Summary: The legacy implementation doesn't provide additional functionality and has a negative impact on performance and user experience. The legacyImplementation prop is deprecated and will be removed in a future release.

Reviewed By: yungsters

Differential Revision: D10212762

fbshipit-source-id: 9b3416434ba392827b538c984c7ab4bcbe156e60
2018-10-11 23:13:28 +02:00
Eli WhiteandMike Grabowski 25a3cff5a7 Add Deprecation Warning to ListView
Summary: This component has long been deprecated in the docs. Adding a warning to the code.

Reviewed By: sahrens

Differential Revision: D10261155

fbshipit-source-id: 462ce30a97f35e52477cfc135fb50c976b56e9cb
2018-10-11 21:42:30 +02:00
Tim YungandMike Grabowski 2134102027 FBJS: Upgrade to ^1.0.0
Summary: Upgrades all dependents of `fbjs` to the latest version.

Reviewed By: mjesun

Differential Revision: D10100661

fbshipit-source-id: 2e2af616cb2b5eab560872b6c6c60ed264e986b2
2018-10-11 21:40:14 +02:00
Tim YungandMike Grabowski c9948d1d36 React sync for revisions ade5e69...d836010
Summary:
This sync includes the following changes:
- **[d83601080](https://github.com/facebook/react/commit/d83601080)**: Wrap retrySuspendedRoot using SchedulerTracing (#13776) //<Sophie Alpert>//
- **[40a521aa7](https://github.com/facebook/react/commit/40a521aa7)**: Terminology: Functional -> Function Component (#13775) //<Dan Abramov>//
- **[605ab10a4](https://github.com/facebook/react/commit/605ab10a4)**: Add envify transform to scheduler package (#13766) //<Michael Ridgway>//
- **[acc7f404c](https://github.com/facebook/react/commit/acc7f404c)**: Restart from root if promise pings before end of render phase (#13774) //<Andrew Clark>//
- **[cbc224028](https://github.com/facebook/react/commit/cbc224028)**: fix - small misspelling (#13768) //<Spencer Davies>//
- **[4eabeef11](https://github.com/facebook/react/commit/4eabeef11)**: Rename ReactSuspenseWithTestRenderer-test -> ReactSuspense-test //<Andrew Clark>//
- **[95a3e1c2e](https://github.com/facebook/react/commit/95a3e1c2e)**: Rename ReactSuspense-test -> ReactSuspenseWithNoopRenderer-test //<Andrew Clark>//
- **[96bcae9d5](https://github.com/facebook/react/commit/96bcae9d5)**: Jest + test renderer helpers for concurrent mode (#13751) //<Andrew Clark>//
- **[5c783ee75](https://github.com/facebook/react/commit/5c783ee75)**: Remove unreachable code (#13762) //<Heaven>//
- **[36c5d69ca](https://github.com/facebook/react/commit/36c5d69ca)**: Always warn about legacy context within StrictMode tree (#13760) //<Brian Vaughn>//
- **[3e9a5de88](https://github.com/facebook/react/commit/3e9a5de88)**: UMD react-cache build (#13761) //<Maksim Markelov>//
- **[8315a30b9](https://github.com/facebook/react/commit/8315a30b9)**: --save is no longer needed (#13756) //<Joe Cortopassi>//
- **[ce96e2df4](https://github.com/facebook/react/commit/ce96e2df4)**: Rename simple-cache-provider to react-cache (#13755) //<Andrew Clark>//
- **[c5212646f](https://github.com/facebook/react/commit/c5212646f)**: Removed extra typeof checks for contextType.unstable_read (#13736) //<Brian Vaughn>//
- **[806eebdae](https://github.com/facebook/react/commit/806eebdae)**: Enable getDerivedStateFromError (#13746) //<Brian Vaughn>//
- **[a0733fe13](https://github.com/facebook/react/commit/a0733fe13)**: pure (#13748) //<Andrew Clark>//
- **[4d17c3f05](https://github.com/facebook/react/commit/4d17c3f05)**: [scheduler] Improve naive fallback version used in non-DOM environments //<Andrew Clark>//
- **[469005d87](https://github.com/facebook/react/commit/469005d87)**: Revise `AttributeType` React Native Flow Type (#13737) //<Timothy Yung>//
- **[0dc0ddc1e](https://github.com/facebook/react/commit/0dc0ddc1e)**: Rename AsyncMode -> ConcurrentMode (#13732) //<Dominic Gannaway>//
- **[7601c3765](https://github.com/facebook/react/commit/7601c3765)**: Ensure "addEventListener" exists on "window" for "scheduler" package (#13731) //<Dominic Gannaway>//
- **[d0c0ec98e](https://github.com/facebook/react/commit/d0c0ec98e)**: Added a PureComponent contextType test (#13729) //<Brian Vaughn>//
- **[4b68a6498](https://github.com/facebook/react/commit/4b68a6498)**: Support class component static contextType attribute (#13728) //<Brian Vaughn>//
- **[f305d2a48](https://github.com/facebook/react/commit/f305d2a48)**: [scheduler] Priority levels, continuations, and wrapped callbacks (#13720) //<Andrew Clark>//
- **[970a34bae](https://github.com/facebook/react/commit/970a34bae)**: Bump babel-eslint and remove flow supressions (#13727) //<Brian Ng>//
- **[13965b4d3](https://github.com/facebook/react/commit/13965b4d3)**: Interaction tracking ref-counting bug fixes (WIP) (#13590) //<Brian Vaughn>//
- **[17e703cb9](https://github.com/facebook/react/commit/17e703cb9)**: Restore global window.event after event dispatching (#13688) (#13697) //<Sergei Startsev>//
- **[a775a767a](https://github.com/facebook/react/commit/a775a767a)**: Remove redundant logic (#13502) //<Heaven>//
- **[e1a067dea](https://github.com/facebook/react/commit/e1a067dea)**: Fix circular dependency in TracingSubscriptions (#13689) //<Maksim Markelov>//
- **[518812eeb](https://github.com/facebook/react/commit/518812eeb)**: Clarify comment (#13684) //<Heaven>//
- **[eeb817785](https://github.com/facebook/react/commit/eeb817785)**: Remove some old files from stats //<Dan>//
- **[7ea3ca1d1](https://github.com/facebook/react/commit/7ea3ca1d1)**: Rename schedule to scheduler (#13683) //<Dan Abramov>//
- **[bec2ddaf1](https://github.com/facebook/react/commit/bec2ddaf1)**: Update bundle sizes for 16.5.2 release //<Brian Vaughn>//
- **[4269fafb0](https://github.com/facebook/react/commit/4269fafb0)**: Updating package versions for release 16.5.2 //<Brian Vaughn>//
- **[4380f9ba1](https://github.com/facebook/react/commit/4380f9ba1)**: Revert "Updating package versions for release 16.6.0-alpha.0" //<Brian Vaughn>//
- **[72fad84e7](https://github.com/facebook/react/commit/72fad84e7)**: Revert "Updating dependencies for react-noop-renderer" //<Brian Vaughn>//
- **[c3fad5acf](https://github.com/facebook/react/commit/c3fad5acf)**: Revert "Update bundle sizes for 16.6.0-alpha.0 release" //<Brian Vaughn>//
- **[dd9120561](https://github.com/facebook/react/commit/dd9120561)**: Kepp calling peformWork consistent (#13596) //<Heaven>//
- **[42d12317a](https://github.com/facebook/react/commit/42d12317a)**: Update bundle sizes for 16.6.0-alpha.0 release //<Brian Vaughn>//
- **[489614c4f](https://github.com/facebook/react/commit/489614c4f)**: Updating dependencies for react-noop-renderer //<Brian Vaughn>//
- **[351c9015c](https://github.com/facebook/react/commit/351c9015c)**: Updating package versions for release 16.6.0-alpha.0 //<Brian Vaughn>//
- **[a210b5b44](https://github.com/facebook/react/commit/a210b5b44)**: Revert "Do not bind topLevelType to dispatch" (#13674) //<Dan Abramov>//
- **[1d8a75fef](https://github.com/facebook/react/commit/1d8a75fef)**: remove flow typings from Schedule.js (#13662) //<Alexey Raspopov>//
- **[d92114b98](https://github.com/facebook/react/commit/d92114b98)**: Resubmit: Fix updateWrapper causing re-render textarea, even though their data (#13643) //<Nathan Hunzaker>//
- **[0c9c591bf](https://github.com/facebook/react/commit/0c9c591bf)**: Do not bind topLevelType to dispatch (#13618) //<Nathan Hunzaker>//
- **[9f819a5ea](https://github.com/facebook/react/commit/9f819a5ea)**: [schedule] Refactor Schedule, remove React-isms (#13582) //<Andrew Clark>//
- **[9c961c0a2](https://github.com/facebook/react/commit/9c961c0a2)**: Fix some iframe edge cases (#13650) //<Jérôme Steunou>//
- **[8bc0bcabe](https://github.com/facebook/react/commit/8bc0bcabe)**: Add UMD production+profiling entry points (#13642) //<Brian Vaughn>//
- **[b488a5d9c](https://github.com/facebook/react/commit/b488a5d9c)**: Fix test comment typo (#13568) //<Heaven>//
- **[4bcee5621](https://github.com/facebook/react/commit/4bcee5621)**: Rename "tracking" API to "tracing" (#13641) //<Brian Vaughn>//
- **[72217d081](https://github.com/facebook/react/commit/72217d081)**: Update bundle sizes for 16.5.1 release //<Dan Abramov>//
- **[8b93a60c5](https://github.com/facebook/react/commit/8b93a60c5)**: Updating package versions for release 16.5.1 //<Dan Abramov>//
- **[ecbf7af40](https://github.com/facebook/react/commit/ecbf7af40)**: Enhance dev warnings for forwardRef render function (#13627) (#13636) //<Andres Rojas>//
- **[228240085](https://github.com/facebook/react/commit/228240085)**: Delete TapEventPlugin (#13630) //<Dan Abramov>//
- **[a079011f9](https://github.com/facebook/react/commit/a079011f9)**: ð Stop syncing the value attribute on inputs (behind a feature flag) (#13526) //<Nathan Hunzaker>//
- **[a7bd7c3c0](https://github.com/facebook/react/commit/a7bd7c3c0)**: Allow reading default feature flags from bundle tests (#13629) //<Dan Abramov>//
- **[d3bbfe09c](https://github.com/facebook/react/commit/d3bbfe09c)**: Fix IE version in comment //<Dan Abramov>//
- **[1b2646a40](https://github.com/facebook/react/commit/1b2646a40)**: Fix warning without stack for ie9 (#13620) //<Aliaksandr Manzhula>//
- **[e49f3ca08](https://github.com/facebook/react/commit/e49f3ca08)**:  honor displayName set on ForwardRef if available (#13615) //<Evan Jacobs>//

Release Notes:
[GENERAL] [FEATURE] [React] - React sync for revisions ade5e69...d836010

Reviewed By: bvaughn

Differential Revision: D10118547

fbshipit-source-id: ecde7ada80331abdc8bd7d279e0f3dbe9acde071
2018-10-11 21:39:13 +02:00
BingBingandMike Grabowski ce8dddb506 iOS: fix the baseline issue when displaying a mixture of different-language characters (#19653)
Summary:
This fixes #19193

Characters of different languages may have different height and different baseline, even with a same font and same font-size. When they mixed together, iOS will adjust their baselines automatically, to display a suitable view of text.

The problem is the behavior of dealing with the text-style property 'lineHeight'.

It once to be a right way at version 0.52.3, to setting a base-line-offset attribute for the whole range of the string. However, in current version, it enumerated the string, and set a different  base-line-offset for different font-height characters.

And this behavior broke the baseline adjustment made by the iOS. It just make every character's baseline aligned to a same line. But it is not supposed to displaying characters of different languages like that. Chinese characters' baseline is the bottom of each, however, it is not for English characters.

So maybe it is the better way to give a same value of base-line-offset attribute for the whole string. And this PR just did that: found the biggest value of font-height in the text, and calculate the offset with that biggest value, then set to the whole string. This will keep the origin baseline adjustment for different languages' chars made by iOS.

Since I always got an error when running the snapshot test locally, I can't even pass the them with the unmodified code in master branch.

The error is "Nesting of \<View\> within \<Text\> is not currently supported."

After I comment all of the check of that error from the source code, I got a different snapshot from the reference ones. It seems that all components which will cause that error are not rendered in the reference images.

Since this PR changed the behavior of 'lineHeight' property, it's better to add a new snapshot case for the situation of different-language-characters' mixture. So maybe somebody could help me with that or maybe it should be a issue?

[IOS] [BUGFIX] [Text] - fix the baseline issue when displaying a mixture of different-language characters
Pull Request resolved: https://github.com/facebook/react-native/pull/19653

Differential Revision: D10140131

Pulled By: shergin

fbshipit-source-id: 646a9c4046d497b78a980d82a015168cf940646b
2018-10-11 21:37:46 +02:00
Mehdi MulaniandMike Grabowski 9ae5bd0c92 Dealloc first time RCTNetInfo reachability callback
Summary:
@public
We're seeing a crasher where `self` on line 54 isn't an `RCTNetInfo`. The timing looks related to D9798488, so my theory is that this class is being deallocated before it resolves, and thus causes a crash.

Reviewed By: PeteTheHeat

Differential Revision: D10127341

fbshipit-source-id: 94eaba7def6b118092adcf6b4cce841ccc7d0b59
2018-10-11 21:37:32 +02:00
Hector Ramos 4a440f4018 [0.57.2] Bump version numbers 2018-10-04 13:29:30 -07:00