Grafana-ui: Fix context menu item always using onClick instead of href (#30350)

This commit is contained in:
Andrej Ocenas 2021-01-18 12:07:48 +01:00 committed by GitHub
parent e54e997801
commit 6a2b0dde63
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -84,7 +84,14 @@ const MenuGroup: React.FC<MenuGroupProps> = ({ group, onClick }) => {
target={item.target}
icon={item.icon}
onClick={(e: React.MouseEvent<HTMLElement>) => {
// We can have both url and onClick and we want to allow user to open the link in new tab/window
const isSpecialKeyPressed = e.ctrlKey || e.metaKey || e.shiftKey;
if (isSpecialKeyPressed && item.url) {
return;
}
if (item.onClick) {
e.preventDefault();
item.onClick(e);
}
@ -115,23 +122,7 @@ const MenuItemComponent: React.FC<MenuItemProps> = React.memo(({ url, icon, labe
const styles = useStyles(getMenuStyles);
return (
<div className={styles.item}>
<a
href={url ? url : undefined}
target={target}
className={cx(className, styles.link)}
onClick={e => {
// We can have both url and onClick and we want to allow user to open the link in new tab/window
const isSpecialKeyPressed = e.ctrlKey || e.metaKey || e.shiftKey;
if (isSpecialKeyPressed && url) {
return;
}
if (onClick) {
e.preventDefault();
onClick(e);
}
}}
>
<a href={url ? url : undefined} target={target} className={cx(className, styles.link)} onClick={onClick}>
{icon && <Icon name={icon} className={styles.icon} />} {label}
</a>
</div>