antd-mobile
Version:
基于 React 的移动设计规范实现
151 lines (115 loc) • 5.45 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Item = undefined;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _rcTabs = require('rc-tabs');
var _rcTabs2 = _interopRequireDefault(_rcTabs);
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _Tab = require('./Tab.web');
var _Tab2 = _interopRequireDefault(_Tab);
var _TabContent = require('rc-tabs/lib/TabContent');
var _TabContent2 = _interopRequireDefault(_TabContent);
var _TabBar = require('rc-tabs/lib/TabBar');
var _TabBar2 = _interopRequireDefault(_TabBar);
var _getDataAttr = require('../_util/getDataAttr');
var _getDataAttr2 = _interopRequireDefault(_getDataAttr);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var Item = exports.Item = function (_React$Component) {
(0, _inherits3['default'])(Item, _React$Component);
function Item() {
(0, _classCallCheck3['default'])(this, Item);
return (0, _possibleConstructorReturn3['default'])(this, (Item.__proto__ || Object.getPrototypeOf(Item)).apply(this, arguments));
}
(0, _createClass3['default'])(Item, [{
key: 'render',
value: function render() {
return null;
}
}]);
return Item;
}(_react2['default'].Component);
var AntTabBar = function (_React$Component2) {
(0, _inherits3['default'])(AntTabBar, _React$Component2);
function AntTabBar() {
(0, _classCallCheck3['default'])(this, AntTabBar);
var _this2 = (0, _possibleConstructorReturn3['default'])(this, (AntTabBar.__proto__ || Object.getPrototypeOf(AntTabBar)).apply(this, arguments));
_this2.onChange = function (key) {
_react2['default'].Children.forEach(_this2.props.children, function (c) {
if (c.key === key && c.props.onPress) {
c.props.onPress();
}
});
};
_this2.renderTabBar = function () {
var _this2$props = _this2.props,
barTintColor = _this2$props.barTintColor,
hidden = _this2$props.hidden,
prefixCls = _this2$props.prefixCls;
var barCls = hidden ? prefixCls + '-bar-hidden' : '';
return _react2['default'].createElement(_TabBar2['default'], { className: barCls, style: { backgroundColor: barTintColor } });
};
_this2.renderTabContent = function () {
return _react2['default'].createElement(_TabContent2['default'], { animated: false });
};
return _this2;
}
(0, _createClass3['default'])(AntTabBar, [{
key: 'render',
value: function render() {
var _this3 = this;
var activeKey = void 0;
var children = [];
var _allKeys = [];
_react2['default'].Children.forEach(this.props.children, function (c) {
var hasKey = !!c.key;
var isUnique = _allKeys.indexOf(c.key) === -1;
(0, _warning2['default'])(hasKey && isUnique, 'TabBar.Item must have a unique key!');
_allKeys.push(c.key);
if (c.props.selected) {
activeKey = c.key;
}
children.push(c);
});
var _props = this.props,
tintColor = _props.tintColor,
unselectedTintColor = _props.unselectedTintColor;
var panels = children.map(function (c) {
var cProps = c.props;
var tab = _react2['default'].createElement(_Tab2['default'], { prefixCls: _this3.props.prefixCls + '-tab', badge: cProps.badge, dot: cProps.dot, selected: cProps.selected, icon: cProps.icon, selectedIcon: cProps.selectedIcon, title: cProps.title, tintColor: tintColor, unselectedTintColor: unselectedTintColor, dataAttrs: (0, _getDataAttr2['default'])(cProps) });
return _react2['default'].createElement(
_rcTabs.TabPane,
{ placeholder: _this3.props.placeholder, tab: tab, key: c.key },
cProps.children
);
});
return _react2['default'].createElement(
_rcTabs2['default'],
{ renderTabBar: this.renderTabBar, renderTabContent: this.renderTabContent, tabBarPosition: 'bottom', prefixCls: this.props.prefixCls, activeKey: activeKey, onChange: this.onChange },
panels
);
}
}]);
return AntTabBar;
}(_react2['default'].Component);
AntTabBar.defaultProps = {
prefixCls: 'am-tab-bar',
barTintColor: 'white',
tintColor: '#108ee9',
hidden: false,
unselectedTintColor: '#888',
placeholder: '正在加载'
};
AntTabBar.Item = Item;
exports['default'] = AntTabBar;
;