mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-25 09:55:15 +00:00
87 lines
2.8 KiB
JavaScript
87 lines
2.8 KiB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
var _excluded = ["id", "onSelect", "transition", "mountOnEnter", "unmountOnExit", "children", "activeKey"];
|
|
import React from 'react';
|
|
import requiredForA11y from 'prop-types-extra/lib/isRequiredForA11y';
|
|
import { useUncontrolled } from 'uncontrollable';
|
|
import Nav from './Nav';
|
|
import NavLink from './NavLink';
|
|
import NavItem from './NavItem';
|
|
import TabContainer from './TabContainer';
|
|
import TabContent from './TabContent';
|
|
import TabPane from './TabPane';
|
|
import { forEach, map } from './ElementChildren';
|
|
var defaultProps = {
|
|
variant: 'tabs',
|
|
mountOnEnter: false,
|
|
unmountOnExit: false
|
|
};
|
|
|
|
function getDefaultActiveKey(children) {
|
|
var defaultActiveKey;
|
|
forEach(children, function (child) {
|
|
if (defaultActiveKey == null) {
|
|
defaultActiveKey = child.props.eventKey;
|
|
}
|
|
});
|
|
return defaultActiveKey;
|
|
}
|
|
|
|
function renderTab(child) {
|
|
var _child$props = child.props,
|
|
title = _child$props.title,
|
|
eventKey = _child$props.eventKey,
|
|
disabled = _child$props.disabled,
|
|
tabClassName = _child$props.tabClassName,
|
|
id = _child$props.id;
|
|
|
|
if (title == null) {
|
|
return null;
|
|
}
|
|
|
|
return /*#__PURE__*/React.createElement(NavItem, {
|
|
as: NavLink,
|
|
eventKey: eventKey,
|
|
disabled: disabled,
|
|
id: id,
|
|
className: tabClassName
|
|
}, title);
|
|
}
|
|
|
|
var Tabs = function Tabs(props) {
|
|
var _useUncontrolled = useUncontrolled(props, {
|
|
activeKey: 'onSelect'
|
|
}),
|
|
id = _useUncontrolled.id,
|
|
onSelect = _useUncontrolled.onSelect,
|
|
transition = _useUncontrolled.transition,
|
|
mountOnEnter = _useUncontrolled.mountOnEnter,
|
|
unmountOnExit = _useUncontrolled.unmountOnExit,
|
|
children = _useUncontrolled.children,
|
|
_useUncontrolled$acti = _useUncontrolled.activeKey,
|
|
activeKey = _useUncontrolled$acti === void 0 ? getDefaultActiveKey(children) : _useUncontrolled$acti,
|
|
controlledProps = _objectWithoutPropertiesLoose(_useUncontrolled, _excluded);
|
|
|
|
return /*#__PURE__*/React.createElement(TabContainer, {
|
|
id: id,
|
|
activeKey: activeKey,
|
|
onSelect: onSelect,
|
|
transition: transition,
|
|
mountOnEnter: mountOnEnter,
|
|
unmountOnExit: unmountOnExit
|
|
}, /*#__PURE__*/React.createElement(Nav, _extends({}, controlledProps, {
|
|
role: "tablist",
|
|
as: "nav"
|
|
}), map(children, renderTab)), /*#__PURE__*/React.createElement(TabContent, null, map(children, function (child) {
|
|
var childProps = _extends({}, child.props);
|
|
|
|
delete childProps.title;
|
|
delete childProps.disabled;
|
|
delete childProps.tabClassName;
|
|
return /*#__PURE__*/React.createElement(TabPane, childProps);
|
|
})));
|
|
};
|
|
|
|
Tabs.defaultProps = defaultProps;
|
|
Tabs.displayName = 'Tabs';
|
|
export default Tabs; |