@guardian/threads
Version:
49 lines • 2.26 kB
JavaScript
import { __assign } from "tslib";
import React from 'react';
import { MdCheck } from 'react-icons/md';
import styles from './Menu.module.css';
import { Link } from 'react-router-dom';
export var menuItemTestId = 'menu-item-test-id';
export var menuItemEmulateHoverKey = 'data-emulate-hover';
export var MenuItem = function (_a) {
var _b;
var href = _a.href, to = _a.to, onClick = _a.onClick, label = _a.label, sublabel = _a.sublabel, icon = _a.icon, disabled = _a.disabled, isDefault = _a.isDefault, emulateHover = _a.emulateHover, onMouseOver = _a.onMouseOver, checked = _a.checked, control = _a.control, htmlFor = _a.htmlFor;
var renderInner = function () { return (React.createElement("label", { htmlFor: htmlFor, className: styles.padding },
React.createElement("span", { className: styles.flex },
React.createElement("span", { className: styles.label },
checked && React.createElement(MdCheck, { className: styles.check }),
icon && React.createElement("span", { className: styles.icon }, icon),
label),
sublabel && React.createElement("span", { className: styles.sublabel }, sublabel)))); };
var sharedProps = (_b = {
className: styles.item,
onMouseOver: onMouseOver,
disabled: disabled,
'data-checked': checked,
'data-is-default': !!isDefault
},
_b[menuItemEmulateHoverKey] = emulateHover ? true : null,
_b['data-testid'] = menuItemTestId,
_b);
if (to) {
return (React.createElement(Link, __assign({ to: to }, sharedProps),
renderInner(),
control ? control : null));
}
else if (href) {
return (React.createElement("a", __assign({ href: href }, sharedProps),
renderInner(),
control ? control : null));
}
else if (onClick) {
return (React.createElement("button", __assign({ onClick: onClick }, sharedProps),
renderInner(),
control ? control : null));
}
else {
return (React.createElement("div", __assign({}, sharedProps),
renderInner(),
control ? control : null));
}
};
//# sourceMappingURL=MenuItem.js.map