import PropTypes from 'prop-types'; import classNames from 'classnames'; import { NavLink } from 'react-router-dom'; import { Icon } from 'flavours/glitch/components/icon'; const ColumnLink = ({ icon, text, to, onClick, href, method, badge, transparent, ...other }) => { const className = classNames('column-link', { 'column-link--transparent': transparent }); const badgeElement = typeof badge !== 'undefined' ? {badge} : null; const iconElement = typeof icon === 'string' ? : icon; if (href) { return ( {iconElement} {text} {badgeElement} ); } else if (to) { return ( {iconElement} {text} {badgeElement} ); } else { const handleOnClick = (e) => { e.preventDefault(); e.stopPropagation(); return onClick(e); }; return ( // eslint-disable-next-line jsx-a11y/anchor-is-valid -- intentional to have the same look and feel as other menu items {iconElement} {text} {badgeElement} ); } }; ColumnLink.propTypes = { icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired, text: PropTypes.string.isRequired, to: PropTypes.string, onClick: PropTypes.func, href: PropTypes.string, method: PropTypes.string, badge: PropTypes.node, transparent: PropTypes.bool, }; export default ColumnLink;