UNPKG

@guardian/threads

Version:
49 lines 2.26 kB
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