choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
133 lines (107 loc) • 4.52 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
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 _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _noop = _interopRequireDefault(require("lodash/noop"));
var _configure = require("../configure");
var _enum = require("./enum");
var _TabPane = _interopRequireDefault(require("./TabPane"));
var _TabGroup = _interopRequireDefault(require("./TabGroup"));
var _TabsWithContext = _interopRequireDefault(require("./TabsWithContext"));
var Tabs = function Tabs(props) {
var customizedCode = props.customizedCode,
_props$customizable = props.customizable,
customizable = _props$customizable === void 0 ? customizedCode ? (0, _configure.getCustomizable)('Tabs') : undefined : _props$customizable;
var $customizable = customizedCode ? customizable : false;
var _useState = (0, _react.useState)(!$customizable),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
loaded = _useState2[0],
setLoaded = _useState2[1];
var _useState3 = (0, _react.useState)(),
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
customized = _useState4[0],
setCustomized = _useState4[1];
var loadCustomized = (0, _react.useCallback)(
/*#__PURE__*/
(0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regenerator["default"].mark(function _callee() {
var customizedLoad, remoteCustomized;
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (!customizedCode) {
_context.next = 11;
break;
}
setLoaded(false);
customizedLoad = (0, _configure.getConfig)('customizedLoad');
_context.prev = 3;
_context.next = 6;
return customizedLoad(customizedCode, 'Tabs');
case 6:
remoteCustomized = _context.sent;
setCustomized((0, _objectSpread2["default"])({
panes: {}
}, remoteCustomized));
case 8:
_context.prev = 8;
setLoaded(true);
return _context.finish(8);
case 11:
case "end":
return _context.stop();
}
}
}, _callee, null, [[3,, 8, 11]]);
})), [customizedCode]);
(0, _react.useEffect)(function () {
if ($customizable) {
loadCustomized();
}
}, [$customizable, loadCustomized]);
return loaded ? _react["default"].createElement(_TabsWithContext["default"], (0, _extends2["default"])({}, props, {
customized: customized,
setCustomized: setCustomized,
customizable: $customizable
})) : null;
};
Tabs.displayName = 'Tabs';
Tabs.propTypes = {
destroyInactiveTabPane: _propTypes["default"].bool,
onChange: _propTypes["default"].func,
children: _propTypes["default"].any,
prefixCls: _propTypes["default"].string,
className: _propTypes["default"].string,
style: _propTypes["default"].object,
activeKey: _propTypes["default"].string,
defaultActiveKey: _propTypes["default"].string,
keyboard: _propTypes["default"].bool,
hideAdd: _propTypes["default"].bool,
tabPosition: _propTypes["default"].oneOf([_enum.TabsPosition.top, _enum.TabsPosition.right, _enum.TabsPosition.bottom, _enum.TabsPosition.left]),
type: _propTypes["default"].oneOf([_enum.TabsType.card, _enum.TabsType.line, _enum.TabsType['editable-card']])
};
Tabs.defaultProps = {
hideAdd: false,
destroyInactiveTabPane: false,
onChange: _noop["default"],
keyboard: true,
tabPosition: _enum.TabsPosition.top,
type: _enum.TabsType.line
};
Tabs.TabPane = _TabPane["default"];
Tabs.TabGroup = _TabGroup["default"];
var _default = Tabs;
exports["default"] = _default;
//# sourceMappingURL=Tabs.js.map