@mskcc/carbon-react
Version:
Carbon react components for the MSKCC DSM
61 lines (53 loc) • 1.83 kB
JavaScript
/**
* MSKCC 2021, 2024
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var PropTypes = require('prop-types');
var cx = require('classnames');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
/**
*
* TODO:
* Child for flexibility
*/
function HeaderNavItem(_ref) {
let {
as,
active,
className,
url,
children,
label,
urlPropName = 'href'
} = _ref;
const containerClassName = cx__default["default"]('msk-header-app-nav-li', className);
const navigationClass = cx__default["default"]('msk-header-app-nav-item', {
active: active
});
const linkProps = {
[urlPropName]: url,
className: navigationClass
};
const LinkComponent = as || 'a';
return /*#__PURE__*/React__default["default"].createElement("li", {
className: containerClassName
}, !!children && children !== null ? children : /*#__PURE__*/React__default["default"].createElement(LinkComponent, linkProps, /*#__PURE__*/React__default["default"].createElement("span", {
className: "msk-header-app-nav-item-text"
}, label)));
}
HeaderNavItem.displayName = 'HeaderNavItem';
HeaderNavItem.propTypes = {
active: PropTypes__default["default"].bool,
as: PropTypes__default["default"].elementType,
children: PropTypes__default["default"].node,
className: PropTypes__default["default"].string,
label: PropTypes__default["default"].node,
url: PropTypes__default["default"].string,
urlPropName: PropTypes__default["default"].string
};
exports.HeaderNavItem = HeaderNavItem;