@teamsnap/teamsnap-ui
Version:
a CSS component library for TeamSnap
53 lines (52 loc) • 2.17 kB
JavaScript
;
/**
* @name Tabs
*
* @description
* Used to show tabs and dynamic content to be displayed while a given tab is active
*
* @example
* <Tabs
* mods="u-spaceRightSm"
* tabs={[
* {
* heading: "Tab 1",
* content: <h1>Hello from Tab 1!</h1>
* },
* {
* heading: "Tab 2",
* content: <h1>Hello from Tab 2!</h1>
* }
* ]}
* />
*
*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
var React = __importStar(require("react"));
var Tabs = function (_a) {
var mods = _a.mods, tabs = _a.tabs;
var _b = React.useState(0), activeTabIndex = _b[0], setActiveTabIndex = _b[1];
return (React.createElement("div", { className: "Tabs " + (!!mods ? mods : "") },
React.createElement("ul", { className: "Tabs-header" }, tabs.map(function (tab, index) { return (React.createElement("li", { onClick: function () { return setActiveTabIndex(index); }, className: "Tabs-headerItem " + (index === activeTabIndex ? "is-active" : "") }, tab.heading)); })),
React.createElement("div", { className: "Tabs-content" }, tabs.map(function (tab, index) { return (React.createElement("div", { className: "Tabs-contentItem " + (index === activeTabIndex ? "is-active" : "") }, tab.content)); }))));
};
exports.default = Tabs;