@geezee/react-ui
Version:
Modern and minimalist React UI library.
41 lines (35 loc) • 1.06 kB
JavaScript
import React, { useEffect, useMemo } from 'react';
import { useTabsContext } from './tabs-context';
var defaultProps = {
disabled: false
};
var TabsItem = function TabsItem(_ref) {
var children = _ref.children,
value = _ref.value,
label = _ref.label,
disabled = _ref.disabled;
var _ref2 = useTabsContext(),
register = _ref2.register,
currentValue = _ref2.currentValue;
var isActive = useMemo(function () {
return currentValue === value;
}, [currentValue, value]);
useEffect(function () {
register && register({
value: value,
label: label,
disabled: disabled
});
}, [value, label, disabled]); //remove corresponding data model when unmount
useEffect(function () {
return function () {
register && register({
remove: value
});
};
}, []);
/* eslint-disable react/jsx-no-useless-fragment */
return isActive ? /*#__PURE__*/React.createElement(React.Fragment, null, children) : null;
};
TabsItem.defaultProps = defaultProps;
export default TabsItem;