UNPKG

2.08 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
6
7exports.__esModule = true;
8exports.default = void 0;
9
10var _react = _interopRequireWildcard(require("react"));
11
12var _uncontrollable = require("uncontrollable");
13
14var _TabContext = _interopRequireDefault(require("./TabContext"));
15
16var _SelectableContext = _interopRequireDefault(require("./SelectableContext"));
17
18var TabContainer = function TabContainer(props) {
19 var _useUncontrolled = (0, _uncontrollable.useUncontrolled)(props, {
20 activeKey: 'onSelect'
21 }),
22 id = _useUncontrolled.id,
23 generateCustomChildId = _useUncontrolled.generateChildId,
24 onSelect = _useUncontrolled.onSelect,
25 activeKey = _useUncontrolled.activeKey,
26 transition = _useUncontrolled.transition,
27 mountOnEnter = _useUncontrolled.mountOnEnter,
28 unmountOnExit = _useUncontrolled.unmountOnExit,
29 children = _useUncontrolled.children;
30
31 var generateChildId = (0, _react.useMemo)(function () {
32 return generateCustomChildId || function (key, type) {
33 return id ? id + "-" + type + "-" + key : null;
34 };
35 }, [id, generateCustomChildId]);
36 var tabContext = (0, _react.useMemo)(function () {
37 return {
38 onSelect: onSelect,
39 activeKey: activeKey,
40 transition: transition,
41 mountOnEnter: mountOnEnter,
42 unmountOnExit: unmountOnExit,
43 getControlledId: function getControlledId(key) {
44 return generateChildId(key, 'tabpane');
45 },
46 getControllerId: function getControllerId(key) {
47 return generateChildId(key, 'tab');
48 }
49 };
50 }, [onSelect, activeKey, transition, mountOnEnter, unmountOnExit, generateChildId]);
51 return _react.default.createElement(_TabContext.default.Provider, {
52 value: tabContext
53 }, _react.default.createElement(_SelectableContext.default.Provider, {
54 value: onSelect
55 }, children));
56};
57
58var _default = TabContainer;
59exports.default = _default;
60module.exports = exports["default"];
\No newline at end of file