zent
Version:
一套前端设计语言和基于React的实现
31 lines (30 loc) • 1.5 kB
JavaScript
import { __assign, __extends } from "tslib";
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { Component } from 'react';
var BaseTabs = (function (_super) {
__extends(BaseTabs, _super);
function BaseTabs() {
return _super !== null && _super.apply(this, arguments) || this;
}
BaseTabs.prototype.renderWithPanel = function () {
var children = this.props.children;
var tabDataList = this.getTabDataListFromChildren(children);
return (_jsxs("div", __assign({ className: this.tabsCls, "data-zv": '10.0.17' }, { children: [this.renderNav(tabDataList), _jsx("div", __assign({ className: "zent-tabs-panel-wrapper", "data-zv": '10.0.17' }, { children: tabDataList.map(this.renderTabPanel.bind(this)) }), void 0)] }), void 0));
};
BaseTabs.prototype.renderWithoutPanel = function () {
var tabs = this.props.tabs;
return (_jsx("div", __assign({ className: this.tabsCls, "data-zv": '10.0.17' }, { children: this.renderNav(this.getTabDataListFromTabs(tabs)) }), void 0));
};
BaseTabs.prototype.render = function () {
var _a = this.props, tabs = _a.tabs, children = _a.children;
if (!tabs && !children) {
throw new Error("Tabs Componment must receive one prop of 'tabs' and 'children'");
}
if (tabs) {
return this.renderWithoutPanel();
}
return this.renderWithPanel();
};
return BaseTabs;
}(Component));
export default BaseTabs;