react-dyn-tabs
Version:
React dynamic tabs with full API
28 lines • 1.37 kB
JavaScript
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
import React from 'react';
import { ApiContext, ForceUpdateContext } from '../context.js';
import PropTypes from 'prop-types';
var TabComponent = function TabComponent(deps, props) {
React.useContext(ForceUpdateContext);
var api = React.useContext(ApiContext);
var _deps = deps(api),
tabPropsManager = _deps.tabPropsManager,
tabInnerPropsManager = _deps.tabInnerPropsManager,
closeIconPropsManager = _deps.closeIconPropsManager;
var id = props.id,
selectedTabID = props.selectedTabID,
TabInnerComponent = api.getOption('tabComponent'),
tabObj = api.getTab(id),
clkHandler = function clkHandler(e) {
api.eventHandlerFactory({
e: e,
id: id
});
};
return /*#__PURE__*/React.createElement("li", _extends({}, tabPropsManager(props), {
onClick: function onClick(e) {
clkHandler(e);
}
}), /*#__PURE__*/React.createElement(TabInnerComponent, tabInnerPropsManager(props), tabObj.title), tabObj.closable ? /*#__PURE__*/React.createElement("span", closeIconPropsManager(), "\xD7") : null);
};
export default TabComponent;