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;