UNPKG

phx-react

Version:

PHX REACT

33 lines 3.76 kB
"use strict"; exports.__esModule = true; exports.PHXSwitchView = void 0; var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var types_1 = require("../types"); function PHXSwitchView(_a) { var _b, _c; var className = _a.className, dataSwitch = _a.dataSwitch, defaultTab = _a.defaultTab, getOnlyTitleOfSwitch = _a.getOnlyTitleOfSwitch, onClickSwitch = _a.onClickSwitch; var defaultActive = dataSwitch ? (getOnlyTitleOfSwitch ? dataSwitch[0].id : dataSwitch[0].name) : null; var _d = (0, react_1.useState)(defaultTab ? defaultTab : defaultActive), current = _d[0], setCurrent = _d[1]; return (react_1["default"].createElement("div", { className: className }, react_1["default"].createElement("div", { className: 'mb-4' }, react_1["default"].createElement("div", { className: 'sm:hidden' }, react_1["default"].createElement("label", { className: 'sr-only', htmlFor: 'tabs' }), react_1["default"].createElement("select", { className: 'block w-full rounded-md border-gray-300 py-2 pl-3 pr-10 text-base focus:border-indigo-500 focus:outline-none focus:ring-indigo-500 sm:text-sm', defaultValue: (_b = dataSwitch === null || dataSwitch === void 0 ? void 0 : dataSwitch.find(function (switchItem) { return (switchItem.id || switchItem.name) === current; })) === null || _b === void 0 ? void 0 : _b.name, id: 'tabs', name: 'tabs', onChange: function (e) { setCurrent(e.target.value); getOnlyTitleOfSwitch === null || getOnlyTitleOfSwitch === void 0 ? void 0 : getOnlyTitleOfSwitch(e.target.value); } }, dataSwitch === null || dataSwitch === void 0 ? void 0 : dataSwitch.map(function (switchItem) { return (react_1["default"].createElement("option", { key: switchItem.name, value: switchItem.id || switchItem.name }, switchItem.name)); }))), react_1["default"].createElement("div", { className: 'hidden sm:block' }, react_1["default"].createElement("nav", { "aria-label": 'Tabs', className: 'flex space-x-1 rounded-xl border border-gray-300 bg-[#F5F5F5] p-1 shadow' }, dataSwitch === null || dataSwitch === void 0 ? void 0 : dataSwitch.map(function (switchItem) { return (react_1["default"].createElement("button", { key: switchItem.name, className: (0, types_1.classNames)((switchItem.id || switchItem.name) === current ? 'text-gray-950' : 'text-gray-500 hover:text-gray-700', 'group relative rounded-lg px-3 py-1.5 text-xs font-normal leading-4 focus:z-10'), onClick: function () { setCurrent(switchItem.id || switchItem.name); getOnlyTitleOfSwitch === null || getOnlyTitleOfSwitch === void 0 ? void 0 : getOnlyTitleOfSwitch(switchItem.id); onClickSwitch && onClickSwitch(switchItem); }, type: 'button' }, react_1["default"].createElement("span", null, switchItem.name), react_1["default"].createElement("span", { "aria-hidden": 'true', className: (0, types_1.classNames)((switchItem.id || switchItem.name) === current ? 'bg-gray-800' : 'bg-transparent', 'absolute inset-x-0 bottom-[-0.25rem] left-[0.1rem] h-[3px] rounded-t-md transition-colors duration-200 group-hover:bg-gray-400') }))); }))), react_1["default"].createElement("div", { className: 'pt-4' }, dataSwitch && ((_c = dataSwitch === null || dataSwitch === void 0 ? void 0 : dataSwitch.find(function (switchItem) { return (switchItem.id || switchItem.name) === current; })) === null || _c === void 0 ? void 0 : _c.component))))); } exports.PHXSwitchView = PHXSwitchView; //# sourceMappingURL=SwitchView.js.map