digitransit-ui/app/component/ExternalLink.js
Vesa Meskanen fe9f24fca0 feat: arrow option to external link
New designs seem to always include an arrow
2026-02-25 11:29:33 +02:00

58 lines
1.2 KiB
JavaScript

import PropTypes from 'prop-types';
import React from 'react';
import Icon from './Icon';
export default function ExternalLink({
name,
children,
href,
className,
onClick,
withArrow,
}) {
return (
(name || children !== undefined) && (
<span className={className}>
<span className="external-link-container">
<a
onClick={e => {
e.stopPropagation();
if (onClick) {
onClick(e);
}
}}
className="external-link"
href={href}
target="_blank"
rel="noopener noreferrer"
>
{name || children}
</a>
{withArrow && (
<Icon className="arrow" img="icon_arrow-collapse--right" />
)}
</span>
</span>
)
);
}
ExternalLink.propTypes = {
name: PropTypes.string,
children: PropTypes.node,
href: PropTypes.string,
className: PropTypes.string,
onClick: PropTypes.func,
withArrow: PropTypes.bool,
};
ExternalLink.defaultProps = {
name: undefined,
children: undefined,
href: undefined,
onClick: undefined,
className: '',
withArrow: false,
};
ExternalLink.displayName = 'ExternalLink';