dareway-rui
Version:
147 lines (121 loc) • 6.06 kB
JavaScript
'use strict';
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require('@babel/runtime/helpers/extends'));
var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck'));
var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass'));
var _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn'));
var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf'));
var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits'));
var _react = _interopRequireDefault(require('react'));
var _utils = require('./../utils');
var _TabContext = _interopRequireDefault(require('./../TabContext'));
require('./style.css');
var _ruiTab = _interopRequireDefault(require('rui-tab'));
var _WrapTabPageViewWithFocus = _interopRequireDefault(require('./WrapTabPageViewWithFocus'));
var TabView =
/*#__PURE__*/
(function(_React$Component) {
(0, _inherits2.default)(TabView, _React$Component);
function TabView(props) {
(0, _classCallCheck2.default)(this, TabView);
return (0, _possibleConstructorReturn2.default)(
this,
(0, _getPrototypeOf2.default)(TabView).call(this, props)
);
}
(0, _createClass2.default)(TabView, [
{
key: 'componentWillReceiveProps',
value: function componentWillReceiveProps(newProps) {
var _this$props = this.props,
tabpages = _this$props.tabpages,
updateSuccess = _this$props.updateSuccess;
var newTabpages = (0, _utils.getTabPagesDefineFromProps)(newProps);
if (newTabpages.length != tabpages.length) {
updateSuccess(newTabpages);
}
}
},
{
key: 'render',
value: function render() {
var _this = this;
var _this$props2 = this.props,
activeKey = _this$props2.activeKey,
tabpages = _this$props2.tabpages,
showTabPage = _this$props2.showTabPage,
onTabClick = _this$props2.onTabClick;
var restProps = Object.assign(
{},
onTabClick
? {
onTabClick: onTabClick
}
: {}
); // 这里这么干原因是... 模型中的 tabpages 不包含 TabPage 实体
var tagPageArr = _react.default.Children.toArray(this.props.children);
return _react.default.createElement(
'div',
{
name: 'tab',
className: 'rui-tab-wrapper'
},
_react.default.createElement(
_ruiTab.default,
(0, _extends2.default)(
{
activeKey: activeKey,
onChange: showTabPage,
prefixCls: 'rui-tabs'
},
restProps
),
tagPageArr.map(function(tabPage) {
var _tabPage$props = tabPage.props,
name = _tabPage$props.name,
labelValue = _tabPage$props.labelValue,
children = _tabPage$props.children; // hidden 属性从 state 里面找...
var tabpage = tabpages.find(function(page) {
return page.name == name;
});
if (tabpage) {
var hidden = tabpage.hidden,
_name = tabpage.name;
var tabContextValue = {
tabName: _this.props.name,
tabPageName: _name
};
return _react.default.createElement(
_WrapTabPageViewWithFocus.default,
{
key: _name,
tab: labelValue,
hidden: hidden,
name: _name,
isActive: _name === activeKey,
showTabPage: showTabPage
},
_react.default.createElement(
_TabContext.default.Provider,
{
value: tabContextValue
},
children
)
);
}
return null;
})
)
);
}
}
]);
return TabView;
})(_react.default.Component);
exports.default = TabView;
//@ sourceMappingURL=TabView.js.map