mirror of
https://github.com/zhigang1992/react-native.git
synced 2026-04-24 04:16:00 +08:00
Updates from Wed 18 Mar
- [ReactNative] Add AsyncStorageTest | Spencer Ahrens - [ReactNative] Add timers integration test | Spencer Ahrens - [ReactNative] Remove ExpandingText | Tadeu Zagallo - [TouchableHighlight] Preserve underlay style when restoring inactive props | Christopher Chedeau - clean flow errors in react-native-github | Basil Hosmer - [ReactNative] Sort React Native exports into two groups, Components and APIs | Christopher Chedeau - [ReactNative] Rename Slider to SliderIOS | Tadeu Zagallo - [react_native] JS files from D1919491: Improve JS logging | Martin Kosiba - [ReactNative] Add TimerExample | Spencer Ahrens - [RFC][ReactNative] increase timer resolution | Spencer Ahrens - [ReactNative] Strip prefixes from NativeModules keys | Spencer Ahrens - [ReactNative] Small docs cleanup in ActivityIndicatorIOS and DatePickerIOS | Christopher Chedeau - [ReactNative] Improvements on perf measurement output | Jing Chen - [ReactNative] Clean up Touchable PropTypes | Christopher Chedeau - [ReactKit] Fail tests when redbox shows up | Alex Kotliarskyi
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var { RCTActionSheetManager } = require('NativeModules');
|
||||
var RCTActionSheetManager = require('NativeModules').ActionSheetManager;
|
||||
|
||||
var invariant = require('invariant');
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var AdSupport = require('NativeModules').RCTAdSupport;
|
||||
var AdSupport = require('NativeModules').AdSupport;
|
||||
|
||||
module.exports = {
|
||||
getAdvertisingId: function(onSuccess, onFailure) {
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var { RCTAnimationManager } = require('NativeModules');
|
||||
var RCTAnimationManager = require('NativeModules').AnimationManager;
|
||||
var AnimationUtils = require('AnimationUtils');
|
||||
|
||||
type EasingFunction = (t: number) => number;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
'use strict';
|
||||
|
||||
var AnimationUtils = require('AnimationUtils');
|
||||
var { RCTAnimationManager } = require('NativeModules');
|
||||
var RCTAnimationManager = require('NativeModules').AnimationManager;
|
||||
|
||||
var invariant = require('invariant');
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
'use strict';
|
||||
|
||||
var PropTypes = require('ReactPropTypes');
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
|
||||
var createStrictShapeTypeChecker = require('createStrictShapeTypeChecker');
|
||||
var keyMirror = require('keyMirror');
|
||||
|
||||
@@ -7,10 +7,11 @@
|
||||
'use strict';
|
||||
|
||||
var POPAnimation = require('POPAnimation');
|
||||
|
||||
if (!POPAnimation) {
|
||||
// POP animation isn't available in the OSS fork - this is a temporary
|
||||
// workaround to enable its availability to be determined at runtime.
|
||||
module.exports = null;
|
||||
module.exports = (null : ?{});
|
||||
} else {
|
||||
|
||||
var invariant = require('invariant');
|
||||
@@ -224,12 +225,10 @@ var POPAnimationMixin = {
|
||||
w: frame.width,
|
||||
h: frame.height
|
||||
};
|
||||
frame = undefined;
|
||||
var velocity = velocity || [0, 0];
|
||||
var posAnim = POPAnimation.createAnimation(type, {
|
||||
property: POPAnimation.Properties.position,
|
||||
toValue: [animFrame.x, animFrame.y],
|
||||
velocity: velocity,
|
||||
velocity: velocity || [0, 0],
|
||||
});
|
||||
var sizeAnim = POPAnimation.createAnimation(type, {
|
||||
property: POPAnimation.Properties.size,
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
'use strict';
|
||||
|
||||
var NativeModules = require('NativeModules');
|
||||
var RCTAppState = NativeModules.RCTAppState;
|
||||
var RCTAppState = NativeModules.AppState;
|
||||
|
||||
var AppState = {
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
var NativeModules = require('NativeModules');
|
||||
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
||||
var RCTAppState = NativeModules.RCTAppState;
|
||||
var RCTAppState = NativeModules.AppState;
|
||||
|
||||
var logError = require('logError');
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
|
||||
var NativeModules = require('BatchedBridge').RemoteModules;
|
||||
|
||||
var nativeModulePrefixDuplicator = require('nativeModulePrefixDuplicator');
|
||||
var nativeModulePrefixNormalizer = require('nativeModulePrefixNormalizer');
|
||||
|
||||
nativeModulePrefixDuplicator(NativeModules);
|
||||
nativeModulePrefixNormalizer(NativeModules);
|
||||
|
||||
module.exports = NativeModules;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var RCTPOPAnimationManager = require('NativeModules').RCTPOPAnimationManager;
|
||||
var RCTPOPAnimationManager = require('NativeModules').POPAnimationManager;
|
||||
if (!RCTPOPAnimationManager) {
|
||||
// POP animation isn't available in the OSS fork - this is a temporary
|
||||
// workaround to enable its availability to be determined at runtime.
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var { RCTAlertManager } = require('NativeModules');
|
||||
var RCTAlertManager = require('NativeModules').AlertManager;
|
||||
|
||||
module.exports = RCTAlertManager;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
'use strict';
|
||||
|
||||
var ReactPropTypes = require('ReactPropTypes');
|
||||
var RCTCameraRollManager = require('NativeModules').RCTCameraRollManager;
|
||||
var RCTCameraRollManager = require('NativeModules').CameraRollManager;
|
||||
|
||||
var createStrictShapeTypeChecker = require('createStrictShapeTypeChecker');
|
||||
var deepFreezeAndThrowOnMutationInDev =
|
||||
|
||||
@@ -37,8 +37,11 @@ var ActivityIndicatorIOS = React.createClass({
|
||||
*/
|
||||
color: PropTypes.string,
|
||||
|
||||
/**
|
||||
* Size of the indicator. Small has a height of 20, large has a height of 36.
|
||||
*/
|
||||
size: PropTypes.oneOf([
|
||||
'small', // default
|
||||
'small',
|
||||
'large',
|
||||
]),
|
||||
},
|
||||
@@ -53,7 +56,7 @@ var ActivityIndicatorIOS = React.createClass({
|
||||
|
||||
render: function() {
|
||||
var style = styles.sizeSmall;
|
||||
var NativeConstants = NativeModules.RCTUIManager.UIActivityIndicatorView.Constants;
|
||||
var NativeConstants = NativeModules.UIManager.UIActivityIndicatorView.Constants;
|
||||
var activityIndicatorViewStyle = NativeConstants.StyleWhite;
|
||||
if (this.props.size === 'large') {
|
||||
style = styles.sizeLarge;
|
||||
|
||||
@@ -11,7 +11,7 @@ var NativeMethodsMixin = require('NativeMethodsMixin');
|
||||
var PropTypes = require('ReactPropTypes');
|
||||
var React = require('React');
|
||||
var ReactIOSViewAttributes = require('ReactIOSViewAttributes');
|
||||
var RCTDatePickerIOSConsts = require('NativeModules').RCTUIManager.RCTDatePicker.Constants;
|
||||
var RCTDatePickerIOSConsts = require('NativeModules').UIManager.RCTDatePicker.Constants;
|
||||
var StyleSheet = require('StyleSheet');
|
||||
var View = require('View');
|
||||
|
||||
@@ -62,10 +62,8 @@ var DatePickerIOS = React.createClass({
|
||||
|
||||
/**
|
||||
* The date picker mode.
|
||||
*
|
||||
* Valid modes on iOS are: 'date', 'time', 'datetime'.
|
||||
*/
|
||||
mode: PropTypes.oneOf(Object.keys(RCTDatePickerIOSConsts.DatePickerModes)),
|
||||
mode: PropTypes.oneOf(['date', 'time', 'datetime']),
|
||||
|
||||
/**
|
||||
* The interval at which minutes can be selected.
|
||||
@@ -73,7 +71,7 @@ var DatePickerIOS = React.createClass({
|
||||
minuteInterval: PropTypes.oneOf([1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30]),
|
||||
|
||||
/**
|
||||
* Timezone offset in seconds.
|
||||
* Timezone offset in minutes.
|
||||
*
|
||||
* By default, the date picker will use the device's timezone. With this
|
||||
* parameter, it is possible to force a certain timezone offset. For
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
var ListViewDataSource = require('ListViewDataSource');
|
||||
var React = require('React');
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
var ScrollView = require('ScrollView');
|
||||
var ScrollResponder = require('ScrollResponder');
|
||||
var StaticRenderer = require('StaticRenderer');
|
||||
|
||||
@@ -215,9 +215,10 @@ class ListViewDataSource {
|
||||
/**
|
||||
* @param {number} index
|
||||
*
|
||||
* Gets the rowID at index provided if the dataSource arrays were flattened
|
||||
* Gets the rowID at index provided if the dataSource arrays were flattened,
|
||||
* or null of out of range indexes.
|
||||
*/
|
||||
getRowIDForFlatIndex(index: number): string {
|
||||
getRowIDForFlatIndex(index: number): ?string {
|
||||
var accessIndex = index;
|
||||
for (var ii = 0; ii < this.sectionIdentities.length; ii++) {
|
||||
if (accessIndex >= this.rowIdentities[ii].length) {
|
||||
@@ -226,14 +227,16 @@ class ListViewDataSource {
|
||||
return this.rowIdentities[ii][accessIndex];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {number} index
|
||||
*
|
||||
* Gets the sectionID at index provided if the dataSource arrays were flattened
|
||||
* Gets the sectionID at index provided if the dataSource arrays were flattened,
|
||||
* or null for out of range indexes.
|
||||
*/
|
||||
getSectionIDForFlatIndex(index: number): string {
|
||||
getSectionIDForFlatIndex(index: number): ?string {
|
||||
var accessIndex = index;
|
||||
for (var ii = 0; ii < this.sectionIdentities.length; ii++) {
|
||||
if (accessIndex >= this.rowIdentities[ii].length) {
|
||||
@@ -242,6 +245,7 @@ class ListViewDataSource {
|
||||
return this.sectionIdentities[ii];
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var EventEmitter = require('EventEmitter');
|
||||
var React = require('React');
|
||||
var ReactIOSViewAttributes = require('ReactIOSViewAttributes');
|
||||
var { RCTNavigatorManager } = require('NativeModules');
|
||||
var RCTNavigatorManager = require('NativeModules').NavigatorManager;
|
||||
var StyleSheet = require('StyleSheet');
|
||||
var StaticContainer = require('StaticContainer.react');
|
||||
var View = require('View');
|
||||
|
||||
@@ -11,8 +11,8 @@ var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
||||
var Subscribable = require('Subscribable');
|
||||
var TextInputState = require('TextInputState');
|
||||
|
||||
var RCTUIManager = NativeModules.RCTUIManager;
|
||||
var RCTUIManagerDeprecated = NativeModules.RCTUIManager;
|
||||
var RCTUIManager = NativeModules.UIManager;
|
||||
var RCTUIManagerDeprecated = NativeModules.UIManager;
|
||||
var RCTScrollViewConsts = RCTUIManager.RCTScrollView.Constants;
|
||||
|
||||
var warning = require('warning');
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
var EdgeInsetsPropType = require('EdgeInsetsPropType');
|
||||
var Platform = require('Platform');
|
||||
var PointPropType = require('PointPropType');
|
||||
var RCTScrollView = require('NativeModules').RCTUIManager.RCTScrollView;
|
||||
var RCTScrollView = require('NativeModules').UIManager.RCTScrollView;
|
||||
var RCTScrollViewConsts = RCTScrollView.Constants;
|
||||
var React = require('React');
|
||||
var ReactIOSTagHandles = require('ReactIOSTagHandles');
|
||||
var ReactIOSViewAttributes = require('ReactIOSViewAttributes');
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
var ScrollResponder = require('ScrollResponder');
|
||||
var StyleSheet = require('StyleSheet');
|
||||
var StyleSheetPropType = require('StyleSheetPropType');
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/**
|
||||
* Copyright 2004-present Facebook. All Rights Reserved.
|
||||
*
|
||||
* @providesModule Slider
|
||||
* @providesModule SliderIOS
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
@@ -16,7 +16,7 @@ var createReactIOSNativeComponentClass =
|
||||
require('createReactIOSNativeComponentClass');
|
||||
var merge = require('merge');
|
||||
|
||||
var Slider = React.createClass({
|
||||
var SliderIOS = React.createClass({
|
||||
mixins: [NativeMethodsMixin],
|
||||
|
||||
propTypes: {
|
||||
@@ -80,4 +80,4 @@ var RCTSlider = createReactIOSNativeComponentClass({
|
||||
uiViewClassName: 'RCTSlider',
|
||||
});
|
||||
|
||||
module.exports = Slider;
|
||||
module.exports = SliderIOS;
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var { RCTStatusBarManager } = require('NativeModules');
|
||||
var RCTStatusBarManager = require('NativeModules').StatusBarManager;
|
||||
|
||||
var StatusBarIOS = {
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var DocumentSelectionState = require('DocumentSelectionState');
|
||||
var EventEmitter = require('EventEmitter');
|
||||
var NativeMethodsMixin = require('NativeMethodsMixin');
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
var PropTypes = require('ReactPropTypes');
|
||||
var React = require('React');
|
||||
var ReactChildren = require('ReactChildren');
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
|
||||
var TextInputState = {
|
||||
/**
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
/**
|
||||
* Copyright 2004-present Facebook. All Rights Reserved.
|
||||
*
|
||||
* @providesModule TouchableFeedbackPropType
|
||||
* @flow
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var { PropTypes } = require('React');
|
||||
|
||||
var TouchableFeedbackPropType = {
|
||||
/**
|
||||
* Called when the touch is released, but not if cancelled (e.g. by a scroll
|
||||
* that steals the responder lock).
|
||||
*/
|
||||
onPress: PropTypes.func,
|
||||
onPressIn: PropTypes.func,
|
||||
onPressOut: PropTypes.func,
|
||||
onLongPress: PropTypes.func,
|
||||
};
|
||||
|
||||
module.exports = TouchableFeedbackPropType;
|
||||
@@ -11,7 +11,7 @@ var ReactIOSViewAttributes = require('ReactIOSViewAttributes');
|
||||
var StyleSheet = require('StyleSheet');
|
||||
var TimerMixin = require('TimerMixin');
|
||||
var Touchable = require('Touchable');
|
||||
var TouchableFeedbackPropType = require('TouchableFeedbackPropType');
|
||||
var TouchableWithoutFeedback = require('TouchableWithoutFeedback');
|
||||
var View = require('View');
|
||||
|
||||
var cloneWithProps = require('cloneWithProps');
|
||||
@@ -51,12 +51,7 @@ var DEFAULT_PROPS = {
|
||||
|
||||
var TouchableHighlight = React.createClass({
|
||||
propTypes: {
|
||||
...TouchableFeedbackPropType,
|
||||
/**
|
||||
* Called when the touch is released, but not if cancelled (e.g. by
|
||||
* a scroll that steals the responder lock).
|
||||
*/
|
||||
onPress: React.PropTypes.func.isRequired,
|
||||
...TouchableWithoutFeedback.propTypes,
|
||||
/**
|
||||
* Determines what the opacity of the wrapped view should be when touch is
|
||||
* active.
|
||||
@@ -164,7 +159,10 @@ var TouchableHighlight = React.createClass({
|
||||
this._hideTimeout = null;
|
||||
if (this.refs[UNDERLAY_REF]) {
|
||||
this.refs[CHILD_REF].setNativeProps(INACTIVE_CHILD_PROPS);
|
||||
this.refs[UNDERLAY_REF].setNativeProps(INACTIVE_UNDERLAY_PROPS);
|
||||
this.refs[UNDERLAY_REF].setNativeProps({
|
||||
...INACTIVE_UNDERLAY_PROPS,
|
||||
style: this.state.underlayStyle,
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ var NativeMethodsMixin = require('NativeMethodsMixin');
|
||||
var POPAnimationMixin = require('POPAnimationMixin');
|
||||
var React = require('React');
|
||||
var Touchable = require('Touchable');
|
||||
var TouchableFeedbackPropType = require('TouchableFeedbackPropType');
|
||||
var TouchableWithoutFeedback = require('TouchableWithoutFeedback');
|
||||
|
||||
var cloneWithProps = require('cloneWithProps');
|
||||
var ensureComponentIsNative = require('ensureComponentIsNative');
|
||||
@@ -42,7 +42,7 @@ var TouchableOpacity = React.createClass({
|
||||
mixins: [Touchable.Mixin, NativeMethodsMixin, POPAnimationMixin],
|
||||
|
||||
propTypes: {
|
||||
...TouchableFeedbackPropType,
|
||||
...TouchableWithoutFeedback.propTypes,
|
||||
/**
|
||||
* Determines what the opacity of the wrapped view should be when touch is
|
||||
* active.
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
var React = require('React');
|
||||
var Touchable = require('Touchable');
|
||||
var TouchableFeedbackPropType = require('TouchableFeedbackPropType');
|
||||
|
||||
var onlyChild = require('onlyChild');
|
||||
|
||||
@@ -28,7 +27,16 @@ var PRESS_RECT_OFFSET = {top: 20, left: 20, right: 20, bottom: 30};
|
||||
var TouchableWithoutFeedback = React.createClass({
|
||||
mixins: [Touchable.Mixin],
|
||||
|
||||
propTypes: TouchableFeedbackPropType,
|
||||
propTypes: {
|
||||
/**
|
||||
* Called when the touch is released, but not if cancelled (e.g. by a scroll
|
||||
* that steals the responder lock).
|
||||
*/
|
||||
onPress: React.PropTypes.func,
|
||||
onPressIn: React.PropTypes.func,
|
||||
onPressOut: React.PropTypes.func,
|
||||
onLongPress: React.PropTypes.func,
|
||||
},
|
||||
|
||||
getInitialState: function() {
|
||||
return this.touchableGetInitialState();
|
||||
|
||||
@@ -16,7 +16,7 @@ var keyMirror = require('keyMirror');
|
||||
var merge = require('merge');
|
||||
|
||||
var PropTypes = React.PropTypes;
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
|
||||
var RCT_WEBVIEW_REF = 'webview';
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ var insetsDiffer = require('insetsDiffer');
|
||||
var merge = require('merge');
|
||||
|
||||
var PropTypes = React.PropTypes;
|
||||
var { RCTWebViewManager } = require('NativeModules');
|
||||
var RCTWebViewManager = require('NativeModules').WebViewManager;
|
||||
|
||||
var RCT_WEBVIEW_REF = 'webview';
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
'use strict';
|
||||
|
||||
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
||||
var RCTLocationObserver = require('NativeModules').RCTLocationObserver;
|
||||
var RCTLocationObserver = require('NativeModules').LocationObserver;
|
||||
|
||||
var invariant = require('invariant');
|
||||
var logError = require('logError');
|
||||
|
||||
@@ -114,7 +114,7 @@ var Image = React.createClass({
|
||||
warning(RawImage === RCTStaticImage, 'tintColor style only supported on static images.');
|
||||
}
|
||||
|
||||
var contentModes = NativeModules.RCTUIManager.UIView.ContentMode;
|
||||
var contentModes = NativeModules.UIManager.UIView.ContentMode;
|
||||
var resizeMode;
|
||||
if (style.resizeMode === ImageResizeMode.stretch) {
|
||||
resizeMode = contentModes.ScaleToFill;
|
||||
|
||||
@@ -60,7 +60,7 @@ function setupDocumentShim() {
|
||||
var sourceMapPromise;
|
||||
|
||||
function handleErrorWithRedBox(e) {
|
||||
var RCTExceptionsManager = require('NativeModules').RCTExceptionsManager;
|
||||
var RCTExceptionsManager = require('NativeModules').ExceptionsManager;
|
||||
var errorToString = require('errorToString');
|
||||
var loadSourceMap = require('loadSourceMap');
|
||||
|
||||
@@ -115,7 +115,7 @@ function setupTimers() {
|
||||
}
|
||||
|
||||
function setupAlert() {
|
||||
var { RCTAlertManager } = require('NativeModules');
|
||||
var RCTAlertManager = require('NativeModules').AlertManager;
|
||||
if (!GLOBAL.alert) {
|
||||
GLOBAL.alert = function(text) {
|
||||
var alertOpts = {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
'use strict';
|
||||
|
||||
var Promise = require('Promise');
|
||||
var RCTSourceCode = require('NativeModules').RCTSourceCode;
|
||||
var RCTSourceCode = require('NativeModules').SourceCode;
|
||||
var SourceMapConsumer = require('SourceMap').SourceMapConsumer;
|
||||
var SourceMapURL = require('./source-map-url');
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
// Note that the module JSTimers is split into two in order to solve a cycle
|
||||
// in dependencies. NativeModules > BatchedBridge > MessageQueue > JSTimersExecution
|
||||
var RCTTiming = require('NativeModules').RCTTiming;
|
||||
var RCTTiming = require('NativeModules').Timing;
|
||||
var JSTimersExecution = require('JSTimersExecution');
|
||||
|
||||
/**
|
||||
@@ -90,7 +90,7 @@ var JSTimers = {
|
||||
JSTimersExecution.timerIDs[freeIndex] = newID;
|
||||
JSTimersExecution.callbacks[freeIndex] = func;
|
||||
JSTimersExecution.types[freeIndex] = JSTimersExecution.Type.requestAnimationFrame;
|
||||
RCTTiming.createTimer(newID, 0, Date.now(), /** recurring */ false);
|
||||
RCTTiming.createTimer(newID, 1, Date.now(), /** recurring */ false);
|
||||
return newID;
|
||||
},
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
var NativeModules = require('NativeModules');
|
||||
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
||||
var RCTReachability = NativeModules.RCTReachability;
|
||||
var RCTReachability = NativeModules.Reachability;
|
||||
|
||||
var DEVICE_REACHABILITY_EVENT = 'reachabilityDidChange';
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var RCTDataManager = require('NativeModules').RCTDataManager;
|
||||
var RCTDataManager = require('NativeModules').DataManager;
|
||||
|
||||
var crc32 = require('crc32');
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ var NativeMethodsMixin = require('NativeMethodsMixin');
|
||||
var React = require('React');
|
||||
var ReactChildren = require('ReactChildren');
|
||||
var ReactIOSViewAttributes = require('ReactIOSViewAttributes');
|
||||
var RCTPickerIOSConsts = require('NativeModules').RCTUIManager.RCTPicker.Constants;
|
||||
var RCTPickerIOSConsts = require('NativeModules').UIManager.RCTPicker.Constants;
|
||||
var StyleSheet = require('StyleSheet');
|
||||
var View = require('View');
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
'use strict';
|
||||
|
||||
var ReactIOSTagHandles = require('ReactIOSTagHandles');
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
|
||||
/**
|
||||
* Queries the layout of a view. The layout does not reflect the element as
|
||||
|
||||
@@ -13,7 +13,7 @@ var SyntheticEvent = require('SyntheticEvent');
|
||||
var merge = require('merge');
|
||||
var warning = require('warning');
|
||||
|
||||
var RCTUIManager = NativeModules.RCTUIManager;
|
||||
var RCTUIManager = NativeModules.UIManager;
|
||||
|
||||
var customBubblingEventTypes = RCTUIManager.customBubblingEventTypes;
|
||||
var customDirectEventTypes = RCTUIManager.customDirectEventTypes;
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
|
||||
var NativeModules = require('NativeModules');
|
||||
var NativeModules = require('NativeModules');
|
||||
var RCTPOPAnimationManager = NativeModules.RCTPOPAnimationManager;
|
||||
var RCTUIManager = NativeModules.RCTUIManager;
|
||||
var RCTPOPAnimationManager = NativeModules.POPAnimationManager;
|
||||
var RCTUIManager = NativeModules.UIManager;
|
||||
var TextInputState = require('TextInputState');
|
||||
|
||||
var flattenStyle = require('flattenStyle');
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
var ReactIOSTagHandles = require('ReactIOSTagHandles');
|
||||
var ReactMultiChildUpdateTypes = require('ReactMultiChildUpdateTypes');
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
var ReactPerf = require('ReactPerf');
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
var ReactIOSTagHandles = require('ReactIOSTagHandles');
|
||||
|
||||
var ReactIOSGlobalResponderHandler = {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
|
||||
var ReactIOSTagHandles = require('ReactIOSTagHandles');
|
||||
var ReactPerf = require('ReactPerf');
|
||||
|
||||
@@ -11,7 +11,7 @@ var ReactIOSEventEmitter = require('ReactIOSEventEmitter');
|
||||
var ReactIOSStyleAttributes = require('ReactIOSStyleAttributes');
|
||||
var ReactIOSTagHandles = require('ReactIOSTagHandles');
|
||||
var ReactMultiChild = require('ReactMultiChild');
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
|
||||
var styleDiffer = require('styleDiffer');
|
||||
var deepFreezeAndThrowOnMutationInDev = require('deepFreezeAndThrowOnMutationInDev');
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
'use strict';
|
||||
|
||||
var ReactIOSTagHandles = require('ReactIOSTagHandles');
|
||||
var RCTUIManager = require('NativeModules').RCTUIManager;
|
||||
var RCTUIManager = require('NativeModules').UIManager;
|
||||
|
||||
var assign = require('Object.assign');
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
'use strict';
|
||||
|
||||
var NativeModules = require('NativeModules');
|
||||
var RCTAsyncLocalStorage = NativeModules.RCTAsyncLocalStorage;
|
||||
var RCTAsyncRocksDBStorage = NativeModules.RCTAsyncRocksDBStorage;
|
||||
var RCTAsyncLocalStorage = NativeModules.AsyncLocalStorage;
|
||||
var RCTAsyncRocksDBStorage = NativeModules.AsyncRocksDBStorage;
|
||||
|
||||
// We use RocksDB if available.
|
||||
var RCTAsyncStorage = RCTAsyncRocksDBStorage || RCTAsyncLocalStorage;
|
||||
|
||||
@@ -1,130 +0,0 @@
|
||||
/**
|
||||
* Copyright 2004-present Facebook. All Rights Reserved.
|
||||
*
|
||||
* @providesModule ExpandingText
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var React = require('React');
|
||||
var StyleSheet = require('StyleSheet');
|
||||
var Text = require('Text');
|
||||
var TouchableWithoutFeedback = require('TouchableWithoutFeedback');
|
||||
var View = require('View');
|
||||
|
||||
var truncate = require('truncate');
|
||||
|
||||
var styles = StyleSheet.create({
|
||||
boldText: {
|
||||
fontWeight: 'bold',
|
||||
},
|
||||
});
|
||||
|
||||
/**
|
||||
* A react component for displaying text which supports truncating
|
||||
* based on a set truncLength.
|
||||
*
|
||||
* In the following example, the text will truncate
|
||||
* to show only the first 17 characters plus '...' with a See More button to
|
||||
* expand the text to its full length.
|
||||
*
|
||||
* ```
|
||||
* render: function() {
|
||||
* return <ExpandingText truncLength={20} text={EXAMPLE_TEXT} />;
|
||||
* },
|
||||
* ```
|
||||
*/
|
||||
var ExpandingText = React.createClass({
|
||||
propTypes: {
|
||||
/**
|
||||
* Text to be displayed. It will be truncated if the character length
|
||||
* is greater than the `truncLength` property.
|
||||
*/
|
||||
text: React.PropTypes.string,
|
||||
/**
|
||||
* The styles that will be applied to the text (both truncated and
|
||||
* expanded).
|
||||
*/
|
||||
textStyle: Text.propTypes.style,
|
||||
/**
|
||||
* The styles that will be applied to the See More button. Default
|
||||
* is bold.
|
||||
*/
|
||||
seeMoreStyle: Text.propTypes.style,
|
||||
/**
|
||||
* The caption that will be appended at the end, by default it is
|
||||
* `'See More'`.
|
||||
*/
|
||||
seeMoreText: React.PropTypes.string,
|
||||
/**
|
||||
* The maximum character length for the text that will
|
||||
* be displayed by default. Note that ... will be
|
||||
* appended to the truncated text which is counted towards
|
||||
* the total truncLength of the default displayed string.
|
||||
* The default is 130.
|
||||
*/
|
||||
truncLength: React.PropTypes.number,
|
||||
},
|
||||
|
||||
getDefaultProps: function() {
|
||||
return {
|
||||
truncLength: 130,
|
||||
seeMoreText: 'See More',
|
||||
seeMoreStyle: styles.boldText,
|
||||
};
|
||||
},
|
||||
|
||||
getInitialState: function() {
|
||||
return {
|
||||
truncated: true,
|
||||
};
|
||||
},
|
||||
|
||||
onTapSeeMore: function() {
|
||||
this.setState({
|
||||
truncated: !this.state.truncated,
|
||||
});
|
||||
},
|
||||
|
||||
isTruncated: function() {
|
||||
return (
|
||||
this.props.text.length > this.props.truncLength &&
|
||||
this.state.truncated
|
||||
);
|
||||
},
|
||||
|
||||
getText: function() {
|
||||
var text = this.props.text;
|
||||
if (!this.isTruncated()) {
|
||||
return text;
|
||||
}
|
||||
|
||||
return truncate(text, this.props.truncLength) + ' ';
|
||||
},
|
||||
|
||||
renderSeeMore: function() {
|
||||
if (!this.isTruncated()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<Text style={this.props.seeMoreStyle}>
|
||||
{this.props.seeMoreText}
|
||||
</Text>
|
||||
);
|
||||
},
|
||||
|
||||
render: function() {
|
||||
return (
|
||||
<TouchableWithoutFeedback onPress={this.onTapSeeMore}>
|
||||
<View>
|
||||
<Text style={this.props.textStyle}>
|
||||
{this.getText()}
|
||||
{this.renderSeeMore()}
|
||||
</Text>
|
||||
</View>
|
||||
</TouchableWithoutFeedback>
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = ExpandingText;
|
||||
@@ -6,7 +6,7 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var { RCTAlertManager } = require('NativeModules');
|
||||
var RCTAlertManager = require('NativeModules').AlertManager;
|
||||
|
||||
var DEFAULT_BUTTON_TEXT = 'OK';
|
||||
var DEFAULT_BUTTON = {
|
||||
|
||||
@@ -9,7 +9,7 @@ var NativeModules = require('NativeModules');
|
||||
|
||||
var invariant = require('invariant');
|
||||
|
||||
var dimensions = NativeModules.RCTUIManager.Dimensions;
|
||||
var dimensions = NativeModules.UIManager.Dimensions;
|
||||
|
||||
class Dimensions {
|
||||
/**
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
var NativeModules = require('NativeModules');
|
||||
var RCTDeviceEventEmitter = require('RCTDeviceEventEmitter');
|
||||
|
||||
var RCTPushNotificationManager = NativeModules.RCTPushNotificationManager;
|
||||
var RCTPushNotificationManager = NativeModules.PushNotificationManager;
|
||||
if (RCTPushNotificationManager) {
|
||||
var _initialNotification = RCTPushNotificationManager.initialNotification;
|
||||
}
|
||||
|
||||
@@ -37,6 +37,19 @@ var RCTRenderingPerf = {
|
||||
ReactDefaultPerf.stop();
|
||||
ReactDefaultPerf.printInclusive();
|
||||
ReactDefaultPerf.printWasted();
|
||||
|
||||
var totalRender = 0;
|
||||
var totalTime = 0;
|
||||
var measurements = ReactDefaultPerf.getLastMeasurements();
|
||||
for (var ii = 0; ii < measurements.length; ii++) {
|
||||
var render = measurements[ii].render;
|
||||
for (var nodeName in render) {
|
||||
totalRender += render[nodeName];
|
||||
}
|
||||
totalTime += measurements[ii].totalTime;
|
||||
}
|
||||
console.log('Total time spent in render(): ' + totalRender + 'ms');
|
||||
|
||||
perfModules.forEach((module) => module.stop());
|
||||
},
|
||||
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
/**
|
||||
* Copyright 2004-present Facebook. All Rights Reserved.
|
||||
*
|
||||
* @providesModule nativeModulePrefixDuplicator
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
// Dirty hack to support old (RK) and new (RCT) native module name conventions
|
||||
function nativeModulePrefixDuplicator(modules) {
|
||||
Object.keys(modules).forEach((moduleName) => {
|
||||
var rkModuleName = moduleName.replace(/^RCT/, 'RK');
|
||||
var rctModuleName = moduleName.replace(/^RK/, 'RCT');
|
||||
if (rkModuleName !== rctModuleName) {
|
||||
if (modules[rkModuleName] && modules[rctModuleName]) {
|
||||
throw new Error(
|
||||
'Module cannot be registered as both RCT and RK: ' + moduleName
|
||||
);
|
||||
}
|
||||
modules[rkModuleName] = modules[moduleName];
|
||||
modules[rctModuleName] = modules[moduleName];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = nativeModulePrefixDuplicator;
|
||||
24
Libraries/Utilities/nativeModulePrefixNormalizer.js
Normal file
24
Libraries/Utilities/nativeModulePrefixNormalizer.js
Normal file
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* Copyright 2004-present Facebook. All Rights Reserved.
|
||||
*
|
||||
* @providesModule nativeModulePrefixNormalizer
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
// Dirty hack to support old (RK) and new (RCT) native module name conventions
|
||||
function nativeModulePrefixNormalizer(modules) {
|
||||
Object.keys(modules).forEach((moduleName) => {
|
||||
var strippedName = moduleName.replace(/^(RCT|RK)/, '');
|
||||
if (modules['RCT' + strippedName] && modules['RK' + strippedName]) {
|
||||
throw new Error(
|
||||
'Module cannot be registered as both RCT and RK: ' + moduleName
|
||||
);
|
||||
}
|
||||
if (strippedName !== moduleName) {
|
||||
modules[strippedName] = modules[moduleName];
|
||||
delete modules[moduleName];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = nativeModulePrefixNormalizer;
|
||||
@@ -5,7 +5,8 @@
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
var {RCTVibration} = require('NativeModules');
|
||||
var RCTVibration = require('NativeModules').Vibration;
|
||||
|
||||
var invariant = require('invariant');
|
||||
|
||||
/**
|
||||
|
||||
2
Libraries/react-native/addons.js
vendored
2
Libraries/react-native/addons.js
vendored
@@ -19,6 +19,8 @@ var addons = {
|
||||
batchedUpdates: ReactUpdates.batchedUpdates,
|
||||
cloneWithProps: cloneWithProps,
|
||||
update: update,
|
||||
Perf: undefined,
|
||||
TestUtils: undefined,
|
||||
};
|
||||
|
||||
if (__DEV__) {
|
||||
|
||||
@@ -4,7 +4,6 @@ declare module "react-native" {
|
||||
}
|
||||
|
||||
declare var AppRegistry: ReactClass<any, any, any>;
|
||||
declare var ExpandingText: ReactClass<any, any, any>;
|
||||
declare var Image: ReactClass<any, any, any>;
|
||||
declare var ListView: ReactClass<any, any, any>;
|
||||
declare var NavigatorIOS: ReactClass<any, any, any>;
|
||||
|
||||
41
Libraries/react-native/react-native.js
vendored
41
Libraries/react-native/react-native.js
vendored
@@ -7,7 +7,29 @@
|
||||
|
||||
var ReactNative = {
|
||||
...require('React'),
|
||||
|
||||
// Components
|
||||
ActivityIndicatorIOS: require('ActivityIndicatorIOS'),
|
||||
DatePickerIOS: require('DatePickerIOS'),
|
||||
Image: require('Image'),
|
||||
ListView: require('ListView'),
|
||||
ListViewDataSource: require('ListViewDataSource'),
|
||||
MapView: require('MapView'),
|
||||
NavigatorIOS: require('NavigatorIOS'),
|
||||
PickerIOS: require('PickerIOS'),
|
||||
ScrollView: require('ScrollView'),
|
||||
SliderIOS: require('SliderIOS'),
|
||||
SwitchIOS: require('SwitchIOS'),
|
||||
TabBarIOS: require('TabBarIOS'),
|
||||
Text: require('Text'),
|
||||
TextInput: require('TextInput'),
|
||||
TouchableHighlight: require('TouchableHighlight'),
|
||||
TouchableOpacity: require('TouchableOpacity'),
|
||||
TouchableWithoutFeedback: require('TouchableWithoutFeedback'),
|
||||
View: require('View'),
|
||||
WebView: require('WebView'),
|
||||
|
||||
// APIs
|
||||
AlertIOS: require('AlertIOS'),
|
||||
Animation: require('Animation'),
|
||||
AppRegistry: require('AppRegistry'),
|
||||
@@ -15,32 +37,15 @@ var ReactNative = {
|
||||
AppStateIOS: require('AppStateIOS'),
|
||||
AsyncStorage: require('AsyncStorage'),
|
||||
CameraRoll: require('CameraRoll'),
|
||||
DatePickerIOS: require('DatePickerIOS'),
|
||||
ExpandingText: require('ExpandingText'),
|
||||
Image: require('Image'),
|
||||
InteractionManager: require('InteractionManager'),
|
||||
LayoutAnimation: require('LayoutAnimation'),
|
||||
ListView: require('ListView'),
|
||||
ListViewDataSource: require('ListViewDataSource'),
|
||||
MapView: require('MapView'),
|
||||
NavigatorIOS: require('NavigatorIOS'),
|
||||
NetInfo: require('NetInfo'),
|
||||
PickerIOS: require('PickerIOS'),
|
||||
PixelRatio: require('PixelRatio'),
|
||||
ScrollView: require('ScrollView'),
|
||||
Slider: require('Slider'),
|
||||
StatusBarIOS: require('StatusBarIOS'),
|
||||
StyleSheet: require('StyleSheet'),
|
||||
SwitchIOS: require('SwitchIOS'),
|
||||
Text: require('Text'),
|
||||
TextInput: require('TextInput'),
|
||||
TimerMixin: require('TimerMixin'),
|
||||
TouchableHighlight: require('TouchableHighlight'),
|
||||
TouchableOpacity: require('TouchableOpacity'),
|
||||
TouchableWithoutFeedback: require('TouchableWithoutFeedback'),
|
||||
VibrationIOS: require('VibrationIOS'),
|
||||
View: require('View'),
|
||||
WebView: require('WebView'),
|
||||
|
||||
invariant: require('invariant'),
|
||||
ix: require('ix'),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user