@confi/conflux-react-ui-test-package
Version:
Modern and minimalist React UI library.
45 lines (40 loc) • 1.27 kB
JavaScript
import React, { useEffect, useMemo } from 'react';
import withDefaults from '../utils/with-defaults';
import { useTabsContext } from './tabs-context';
var defaultProps = {
disabled: false
};
var TabsItem = function TabsItem(_ref) {
var children = _ref.children,
userCustomValue = _ref.value,
label = _ref.label,
disabled = _ref.disabled;
var value = useMemo(function () {
return userCustomValue || "".concat(label);
}, [userCustomValue, label]);
var _useTabsContext = useTabsContext(),
register = _useTabsContext.register,
unregister = _useTabsContext.unregister,
currentValue = _useTabsContext.currentValue;
var isActive = useMemo(function () {
return currentValue === value;
}, [currentValue, value]);
useEffect(function () {
register && register({
value: value,
label: label,
disabled: disabled
});
return function () {
unregister && unregister({
value: value,
label: label,
disabled: disabled
});
};
}, []);
/* eslint-disable react/jsx-no-useless-fragment */
return isActive ? /*#__PURE__*/React.createElement(React.Fragment, null, children) : null;
};
export default withDefaults(TabsItem, defaultProps);
/* eslint-enable */