88 lines
3.1 KiB
JavaScript
88 lines
3.1 KiB
JavaScript
import _extends from 'babel-runtime/helpers/extends';
|
|
import _defineProperty from 'babel-runtime/helpers/defineProperty';
|
|
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
|
|
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
|
|
import _createClass from 'babel-runtime/helpers/createClass';
|
|
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
|
|
import _inherits from 'babel-runtime/helpers/inherits';
|
|
import React, { cloneElement } from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import classnames from 'classnames';
|
|
import { getDataAttr } from './utils';
|
|
|
|
var TabBarRootNode = function (_React$Component) {
|
|
_inherits(TabBarRootNode, _React$Component);
|
|
|
|
function TabBarRootNode() {
|
|
_classCallCheck(this, TabBarRootNode);
|
|
|
|
return _possibleConstructorReturn(this, (TabBarRootNode.__proto__ || Object.getPrototypeOf(TabBarRootNode)).apply(this, arguments));
|
|
}
|
|
|
|
_createClass(TabBarRootNode, [{
|
|
key: 'render',
|
|
value: function render() {
|
|
var _props = this.props,
|
|
prefixCls = _props.prefixCls,
|
|
onKeyDown = _props.onKeyDown,
|
|
className = _props.className,
|
|
extraContent = _props.extraContent,
|
|
style = _props.style,
|
|
tabBarPosition = _props.tabBarPosition,
|
|
children = _props.children,
|
|
restProps = _objectWithoutProperties(_props, ['prefixCls', 'onKeyDown', 'className', 'extraContent', 'style', 'tabBarPosition', 'children']);
|
|
|
|
var cls = classnames(prefixCls + '-bar', _defineProperty({}, className, !!className));
|
|
var topOrBottom = tabBarPosition === 'top' || tabBarPosition === 'bottom';
|
|
var tabBarExtraContentStyle = topOrBottom ? { float: 'right' } : {};
|
|
var extraContentStyle = extraContent && extraContent.props ? extraContent.props.style : {};
|
|
var newChildren = children;
|
|
if (extraContent) {
|
|
newChildren = [cloneElement(extraContent, {
|
|
key: 'extra',
|
|
style: _extends({}, tabBarExtraContentStyle, extraContentStyle)
|
|
}), cloneElement(children, { key: 'content' })];
|
|
newChildren = topOrBottom ? newChildren : newChildren.reverse();
|
|
}
|
|
return React.createElement(
|
|
'div',
|
|
_extends({
|
|
role: 'tablist',
|
|
className: cls,
|
|
tabIndex: '0',
|
|
ref: this.props.saveRef('root'),
|
|
onKeyDown: onKeyDown,
|
|
style: style
|
|
}, getDataAttr(restProps)),
|
|
newChildren
|
|
);
|
|
}
|
|
}]);
|
|
|
|
return TabBarRootNode;
|
|
}(React.Component);
|
|
|
|
export default TabBarRootNode;
|
|
|
|
|
|
TabBarRootNode.propTypes = {
|
|
prefixCls: PropTypes.string,
|
|
className: PropTypes.string,
|
|
style: PropTypes.object,
|
|
tabBarPosition: PropTypes.oneOf(['left', 'right', 'top', 'bottom']),
|
|
children: PropTypes.node,
|
|
extraContent: PropTypes.node,
|
|
onKeyDown: PropTypes.func,
|
|
saveRef: PropTypes.func
|
|
};
|
|
|
|
TabBarRootNode.defaultProps = {
|
|
prefixCls: '',
|
|
className: '',
|
|
style: {},
|
|
tabBarPosition: 'top',
|
|
extraContent: null,
|
|
children: null,
|
|
onKeyDown: function onKeyDown() {},
|
|
saveRef: function saveRef() {}
|
|
}; |