@prefect9/ui
Version:
UI React components
39 lines (38 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
require("core-js/modules/es.string.trim.js");
var _react = require("react");
var _isType = require("@prefect9/is-type");
var _jsxRuntime = require("react/jsx-runtime");
function Tab(_ref) {
let {
children,
value = '',
selected,
disabled,
onSelect: selectHandler,
className: userClassName
} = _ref;
const clickHandler = (0, _react.useCallback)(e => {
e.preventDefault();
if (disabled || selected) return;
if ((0, _isType.isFunc)(selectHandler)) selectHandler();
}, [disabled, selected, selectHandler]);
const className = (0, _react.useMemo)(() => {
const result = ['prefect9-tab'];
if (selected) result.push('prefect9-tab__active');
if (disabled) result.push('prefect9-tab__disabled');
if ((0, _isType.isStr)(userClassName) && userClassName.trim().length) result.push(userClassName.trim());
return result.join(' ');
}, [selected, disabled, userClassName]);
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
className: className,
"data-value": value,
onClick: clickHandler,
children: children
});
}
var _default = exports.default = Tab;