mirror of
https://github.com/status-im/react-native.git
synced 2025-01-15 03:56:03 +00:00
Use requireNativeComponent with propTypes for Android components.
Reviewed By: davidaurelio Differential Revision: D2663502 fb-gh-sync-id: 550e7b7c783ec0463a6beb052c09a768a8086056
This commit is contained in:
parent
ca20d710fc
commit
e6093cff04
@ -122,6 +122,9 @@ var styles = StyleSheet.create({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
var NativeAndroidRecyclerView = requireNativeComponent('AndroidRecyclerViewBackedScrollView', null);
|
var NativeAndroidRecyclerView = requireNativeComponent(
|
||||||
|
'AndroidRecyclerViewBackedScrollView',
|
||||||
|
RecyclerViewBackedScrollView
|
||||||
|
);
|
||||||
|
|
||||||
module.exports = RecyclerViewBackedScrollView;
|
module.exports = RecyclerViewBackedScrollView;
|
||||||
|
@ -6,10 +6,11 @@
|
|||||||
*/
|
*/
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var Platform = require('Platform');
|
|
||||||
var NativeMethodsMixin = require('NativeMethodsMixin');
|
var NativeMethodsMixin = require('NativeMethodsMixin');
|
||||||
|
var Platform = require('Platform');
|
||||||
var React = require('React');
|
var React = require('React');
|
||||||
var StyleSheet = require('StyleSheet');
|
var StyleSheet = require('StyleSheet');
|
||||||
|
var View = require('View');
|
||||||
|
|
||||||
var requireNativeComponent = require('requireNativeComponent');
|
var requireNativeComponent = require('requireNativeComponent');
|
||||||
|
|
||||||
@ -23,6 +24,7 @@ type DefaultProps = {
|
|||||||
*/
|
*/
|
||||||
var Switch = React.createClass({
|
var Switch = React.createClass({
|
||||||
propTypes: {
|
propTypes: {
|
||||||
|
...View.propTypes,
|
||||||
/**
|
/**
|
||||||
* The value of the switch. If true the switch will be turned on.
|
* The value of the switch. If true the switch will be turned on.
|
||||||
* Default value is false.
|
* Default value is false.
|
||||||
@ -115,7 +117,7 @@ var styles = StyleSheet.create({
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (Platform.OS === 'android') {
|
if (Platform.OS === 'android') {
|
||||||
var RCTSwitch = requireNativeComponent('AndroidSwitch', null, {
|
var RCTSwitch = requireNativeComponent('AndroidSwitch', Switch, {
|
||||||
nativeOnly: { onChange: true, on: true, enabled: true }
|
nativeOnly: { onChange: true, on: true, enabled: true }
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
var NativeMethodsMixin = require('NativeMethodsMixin');
|
var NativeMethodsMixin = require('NativeMethodsMixin');
|
||||||
var PropTypes = require('ReactPropTypes');
|
var PropTypes = require('ReactPropTypes');
|
||||||
var React = require('React');
|
var React = require('React');
|
||||||
|
var View = require('View');
|
||||||
|
|
||||||
var requireNativeComponent = require('requireNativeComponent');
|
var requireNativeComponent = require('requireNativeComponent');
|
||||||
|
|
||||||
@ -25,6 +26,7 @@ var SwitchAndroid = React.createClass({
|
|||||||
mixins: [NativeMethodsMixin],
|
mixins: [NativeMethodsMixin],
|
||||||
|
|
||||||
propTypes: {
|
propTypes: {
|
||||||
|
...View.propTypes,
|
||||||
/**
|
/**
|
||||||
* Boolean value of the switch.
|
* Boolean value of the switch.
|
||||||
*/
|
*/
|
||||||
@ -79,6 +81,11 @@ var SwitchAndroid = React.createClass({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var RKSwitch = requireNativeComponent('AndroidSwitch', null);
|
var RKSwitch = requireNativeComponent('AndroidSwitch', SwitchAndroid, {
|
||||||
|
nativeOnly: {
|
||||||
|
on: true,
|
||||||
|
enabled: true,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = SwitchAndroid;
|
module.exports = SwitchAndroid;
|
||||||
|
@ -14,9 +14,9 @@
|
|||||||
var DocumentSelectionState = require('DocumentSelectionState');
|
var DocumentSelectionState = require('DocumentSelectionState');
|
||||||
var EventEmitter = require('EventEmitter');
|
var EventEmitter = require('EventEmitter');
|
||||||
var NativeMethodsMixin = require('NativeMethodsMixin');
|
var NativeMethodsMixin = require('NativeMethodsMixin');
|
||||||
var RCTUIManager = require('NativeModules').UIManager;
|
|
||||||
var Platform = require('Platform');
|
var Platform = require('Platform');
|
||||||
var PropTypes = require('ReactPropTypes');
|
var PropTypes = require('ReactPropTypes');
|
||||||
|
var RCTUIManager = require('NativeModules').UIManager;
|
||||||
var React = require('React');
|
var React = require('React');
|
||||||
var ReactChildren = require('ReactChildren');
|
var ReactChildren = require('ReactChildren');
|
||||||
var StyleSheet = require('StyleSheet');
|
var StyleSheet = require('StyleSheet');
|
||||||
@ -24,6 +24,7 @@ var Text = require('Text');
|
|||||||
var TextInputState = require('TextInputState');
|
var TextInputState = require('TextInputState');
|
||||||
var TimerMixin = require('react-timer-mixin');
|
var TimerMixin = require('react-timer-mixin');
|
||||||
var TouchableWithoutFeedback = require('TouchableWithoutFeedback');
|
var TouchableWithoutFeedback = require('TouchableWithoutFeedback');
|
||||||
|
var View = require('View');
|
||||||
|
|
||||||
var createReactNativeComponentClass = require('createReactNativeComponentClass');
|
var createReactNativeComponentClass = require('createReactNativeComponentClass');
|
||||||
var emptyFunction = require('emptyFunction');
|
var emptyFunction = require('emptyFunction');
|
||||||
@ -91,6 +92,7 @@ var TextInput = React.createClass({
|
|||||||
},
|
},
|
||||||
|
|
||||||
propTypes: {
|
propTypes: {
|
||||||
|
...View.propTypes,
|
||||||
/**
|
/**
|
||||||
* Can tell TextInput to automatically capitalize certain characters.
|
* Can tell TextInput to automatically capitalize certain characters.
|
||||||
*
|
*
|
||||||
|
@ -17,6 +17,7 @@ var RCTUIManager = require('NativeModules').UIManager;
|
|||||||
var React = require('React');
|
var React = require('React');
|
||||||
var ReactNativeViewAttributes = require('ReactNativeViewAttributes');
|
var ReactNativeViewAttributes = require('ReactNativeViewAttributes');
|
||||||
var ReactPropTypes = require('ReactPropTypes');
|
var ReactPropTypes = require('ReactPropTypes');
|
||||||
|
var View = require('View');
|
||||||
|
|
||||||
var requireNativeComponent = require('requireNativeComponent');
|
var requireNativeComponent = require('requireNativeComponent');
|
||||||
var resolveAssetSource = require('resolveAssetSource');
|
var resolveAssetSource = require('resolveAssetSource');
|
||||||
@ -67,6 +68,7 @@ var ToolbarAndroid = React.createClass({
|
|||||||
mixins: [NativeMethodsMixin],
|
mixins: [NativeMethodsMixin],
|
||||||
|
|
||||||
propTypes: {
|
propTypes: {
|
||||||
|
...View.propTypes,
|
||||||
/**
|
/**
|
||||||
* Sets possible actions on the toolbar as part of the action menu. These are displayed as icons
|
* Sets possible actions on the toolbar as part of the action menu. These are displayed as icons
|
||||||
* or text on the right side of the widget. If they don't fit they are placed in an 'overflow'
|
* or text on the right side of the widget. If they don't fit they are placed in an 'overflow'
|
||||||
@ -143,7 +145,7 @@ var ToolbarAndroid = React.createClass({
|
|||||||
nativeProps.overflowIcon = resolveAssetSource(this.props.overflowIcon);
|
nativeProps.overflowIcon = resolveAssetSource(this.props.overflowIcon);
|
||||||
}
|
}
|
||||||
if (this.props.actions) {
|
if (this.props.actions) {
|
||||||
nativeProps.actions = [];
|
var nativeActions = [];
|
||||||
for (var i = 0; i < this.props.actions.length; i++) {
|
for (var i = 0; i < this.props.actions.length; i++) {
|
||||||
var action = {
|
var action = {
|
||||||
...this.props.actions[i],
|
...this.props.actions[i],
|
||||||
@ -154,8 +156,9 @@ var ToolbarAndroid = React.createClass({
|
|||||||
if (action.show) {
|
if (action.show) {
|
||||||
action.show = RCTUIManager.ToolbarAndroid.Constants.ShowAsAction[action.show];
|
action.show = RCTUIManager.ToolbarAndroid.Constants.ShowAsAction[action.show];
|
||||||
}
|
}
|
||||||
nativeProps.actions.push(action);
|
nativeActions.push(action);
|
||||||
}
|
}
|
||||||
|
nativeProps.nativeActions = nativeActions;
|
||||||
}
|
}
|
||||||
|
|
||||||
return <NativeToolbar onSelect={this._onSelect} {...nativeProps} />;
|
return <NativeToolbar onSelect={this._onSelect} {...nativeProps} />;
|
||||||
@ -183,6 +186,10 @@ var toolbarAttributes = {
|
|||||||
titleColor: true,
|
titleColor: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
var NativeToolbar = requireNativeComponent('ToolbarAndroid', null);
|
var NativeToolbar = requireNativeComponent('ToolbarAndroid', ToolbarAndroid, {
|
||||||
|
nativeOnly: {
|
||||||
|
nativeActions: true,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = ToolbarAndroid;
|
module.exports = ToolbarAndroid;
|
||||||
|
@ -94,7 +94,7 @@ public class ReactToolbarManager extends ViewGroupManager<ReactToolbar> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ReactProp(name = "actions")
|
@ReactProp(name = "nativeActions")
|
||||||
public void setActions(ReactToolbar view, @Nullable ReadableArray actions) {
|
public void setActions(ReactToolbar view, @Nullable ReadableArray actions) {
|
||||||
view.setActions(actions);
|
view.setActions(actions);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user