Library Panel: Allow to delete it when disabled or deprecated (#54662)

This commit is contained in:
Ivan Ortega Alba
2022-09-05 16:45:45 +02:00
committed by GitHub
parent 413c7c7d99
commit fbfe2b2800
@@ -29,9 +29,10 @@ export const PanelTypeCard: React.FC<Props> = ({
children,
}) => {
const styles = useStyles2(getStyles);
const isDisabled = disabled || plugin.state === PluginState.deprecated;
const cssClass = cx({
[styles.item]: true,
[styles.disabled]: disabled || plugin.state === PluginState.deprecated,
[styles.itemDisabled]: isDisabled,
[styles.current]: isCurrent,
});
@@ -39,18 +40,18 @@ export const PanelTypeCard: React.FC<Props> = ({
<div
className={cssClass}
aria-label={selectors.components.PluginVisualization.item(plugin.name)}
onClick={disabled ? undefined : onClick}
onClick={isDisabled ? undefined : onClick}
title={isCurrent ? 'Click again to close this section' : plugin.name}
>
<img className={styles.img} src={plugin.info.logos.small} alt="" />
<img className={cx(styles.img, { [styles.disabled]: isDisabled })} src={plugin.info.logos.small} alt="" />
<div className={styles.itemContent}>
<div className={cx(styles.itemContent, { [styles.disabled]: isDisabled })}>
<div className={styles.name}>{title}</div>
{description ? <span className={styles.description}>{description}</span> : null}
{children}
</div>
{showBadge && (
<div className={cx(styles.badge, disabled && styles.disabled)}>
<div className={cx(styles.badge, { [styles.disabled]: isDisabled })}>
<PanelPluginBadge plugin={plugin} />
</div>
)}
@@ -100,13 +101,21 @@ const getStyles = (theme: GrafanaTheme2) => {
position: relative;
padding: ${theme.spacing(0, 1)};
`,
itemDisabled: css`
cursor: default;
&,
&:hover {
background: ${theme.colors.action.disabledBackground};
}
`,
current: css`
label: currentVisualizationItem;
border: 1px solid ${theme.colors.primary.border};
background: ${theme.colors.action.selected};
`,
disabled: css`
opacity: 0.2;
opacity: ${theme.colors.action.disabledOpacity};
filter: grayscale(1);
cursor: default;
pointer-events: none;
@@ -138,6 +147,7 @@ const getStyles = (theme: GrafanaTheme2) => {
background: ${theme.colors.background.primary};
`,
deleteButton: css`
cursor: pointer;
margin-left: auto;
`,
};