UNPKG

4.52 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
5var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
7Object.defineProperty(exports, "__esModule", {
8 value: true
9});
10exports["default"] = void 0;
11
12var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
14var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
16var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
17
18var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
19
20var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
21
22var _react = _interopRequireWildcard(require("react"));
23
24var _propTypes = _interopRequireDefault(require("prop-types"));
25
26var _noop = _interopRequireDefault(require("lodash/noop"));
27
28var _configure = require("../configure");
29
30var _enum = require("./enum");
31
32var _TabPane = _interopRequireDefault(require("./TabPane"));
33
34var _TabGroup = _interopRequireDefault(require("./TabGroup"));
35
36var _TabsWithContext = _interopRequireDefault(require("./TabsWithContext"));
37
38var Tabs = function Tabs(props) {
39 var customizedCode = props.customizedCode,
40 _props$customizable = props.customizable,
41 customizable = _props$customizable === void 0 ? customizedCode ? (0, _configure.getCustomizable)('Tabs') : undefined : _props$customizable;
42 var $customizable = customizedCode ? customizable : false;
43
44 var _useState = (0, _react.useState)(!$customizable),
45 _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
46 loaded = _useState2[0],
47 setLoaded = _useState2[1];
48
49 var _useState3 = (0, _react.useState)(),
50 _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
51 customized = _useState4[0],
52 setCustomized = _useState4[1];
53
54 var loadCustomized = (0, _react.useCallback)(
55 /*#__PURE__*/
56 (0, _asyncToGenerator2["default"])(
57 /*#__PURE__*/
58 _regenerator["default"].mark(function _callee() {
59 var customizedLoad, remoteCustomized;
60 return _regenerator["default"].wrap(function _callee$(_context) {
61 while (1) {
62 switch (_context.prev = _context.next) {
63 case 0:
64 if (!customizedCode) {
65 _context.next = 11;
66 break;
67 }
68
69 setLoaded(false);
70 customizedLoad = (0, _configure.getConfig)('customizedLoad');
71 _context.prev = 3;
72 _context.next = 6;
73 return customizedLoad(customizedCode, 'Tabs');
74
75 case 6:
76 remoteCustomized = _context.sent;
77 setCustomized((0, _objectSpread2["default"])({
78 panes: {}
79 }, remoteCustomized));
80
81 case 8:
82 _context.prev = 8;
83 setLoaded(true);
84 return _context.finish(8);
85
86 case 11:
87 case "end":
88 return _context.stop();
89 }
90 }
91 }, _callee, null, [[3,, 8, 11]]);
92 })), [customizedCode]);
93 (0, _react.useEffect)(function () {
94 if ($customizable) {
95 loadCustomized();
96 }
97 }, [$customizable, loadCustomized]);
98 return loaded ? _react["default"].createElement(_TabsWithContext["default"], (0, _extends2["default"])({}, props, {
99 customized: customized,
100 setCustomized: setCustomized,
101 customizable: $customizable
102 })) : null;
103};
104
105Tabs.displayName = 'Tabs';
106Tabs.propTypes = {
107 destroyInactiveTabPane: _propTypes["default"].bool,
108 onChange: _propTypes["default"].func,
109 children: _propTypes["default"].any,
110 prefixCls: _propTypes["default"].string,
111 className: _propTypes["default"].string,
112 style: _propTypes["default"].object,
113 activeKey: _propTypes["default"].string,
114 defaultActiveKey: _propTypes["default"].string,
115 keyboard: _propTypes["default"].bool,
116 hideAdd: _propTypes["default"].bool,
117 tabPosition: _propTypes["default"].oneOf([_enum.TabsPosition.top, _enum.TabsPosition.right, _enum.TabsPosition.bottom, _enum.TabsPosition.left]),
118 type: _propTypes["default"].oneOf([_enum.TabsType.card, _enum.TabsType.line, _enum.TabsType['editable-card']])
119};
120Tabs.defaultProps = {
121 hideAdd: false,
122 destroyInactiveTabPane: false,
123 onChange: _noop["default"],
124 keyboard: true,
125 tabPosition: _enum.TabsPosition.top,
126 type: _enum.TabsType.line
127};
128Tabs.TabPane = _TabPane["default"];
129Tabs.TabGroup = _TabGroup["default"];
130var _default = Tabs;
131exports["default"] = _default;
132//# sourceMappingURL=Tabs.js.map