phx-react
Version:
PHX REACT
33 lines • 3.76 kB
JavaScript
;
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