[ReactNative] use requireNativeComponent to clean up a bunch of boilerplate

This commit is contained in:
Spencer Ahrens
2015-04-21 21:07:17 -07:00
parent 901c24ebb8
commit 58a550fa06
11 changed files with 77 additions and 134 deletions

View File

@@ -12,12 +12,11 @@
'use strict';
var React = require('React');
var ReactIOSViewAttributes = require('ReactIOSViewAttributes');
var StyleSheet = require('StyleSheet');
var TabBarItemIOS = require('TabBarItemIOS');
var View = require('View');
var createReactIOSNativeComponentClass = require('createReactIOSNativeComponentClass');
var requireNativeComponent = require('requireNativeComponent');
var TabBarIOS = React.createClass({
statics: {
@@ -43,10 +42,6 @@ var styles = StyleSheet.create({
}
});
var config = {
validAttributes: ReactIOSViewAttributes.UIView,
uiViewClassName: 'RCTTabBar',
};
var RCTTabBar = createReactIOSNativeComponentClass(config);
var RCTTabBar = requireNativeComponent('RCTTabBar', TabBarIOS);
module.exports = TabBarIOS;

View File

@@ -13,13 +13,11 @@
var Image = require('Image');
var React = require('React');
var ReactIOSViewAttributes = require('ReactIOSViewAttributes');
var StaticContainer = require('StaticContainer.react');
var StyleSheet = require('StyleSheet');
var View = require('View');
var createReactIOSNativeComponentClass = require('createReactIOSNativeComponentClass');
var merge = require('merge');
var requireNativeComponent = require('requireNativeComponent');
var TabBarItemIOS = React.createClass({
propTypes: {
@@ -121,7 +119,7 @@ var TabBarItemIOS = React.createClass({
selectedIcon={this.props.selectedIcon && this.props.selectedIcon.uri}
onPress={this.props.onPress}
selected={this.props.selected}
badgeValue={badge}
badge={badge}
title={this.props.title}
style={[styles.tab, this.props.style]}>
{tabContents}
@@ -140,15 +138,6 @@ var styles = StyleSheet.create({
}
});
var RCTTabBarItem = createReactIOSNativeComponentClass({
validAttributes: merge(ReactIOSViewAttributes.UIView, {
title: true,
icon: true,
selectedIcon: true,
selected: true,
badgeValue: true,
}),
uiViewClassName: 'RCTTabBarItem',
});
var RCTTabBarItem = requireNativeComponent('RCTTabBarItem', TabBarItemIOS);
module.exports = TabBarItemIOS;