You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
915 B
30 lines
915 B
import React from 'react';
|
|
import { css } from '@emotion/css';
|
|
import { GrafanaTheme2, PluginType } from '@grafana/data';
|
|
import { useStyles2 } from '@grafana/ui';
|
|
import { CatalogPlugin } from '../../types';
|
|
|
|
type Props = {
|
|
plugin: CatalogPlugin;
|
|
};
|
|
|
|
export function PluginUpdateAvailableBadge({ plugin }: Props): React.ReactElement | null {
|
|
const styles = useStyles2(getStyles);
|
|
|
|
// Currently renderer plugins are not supported by the catalog due to complications related to installation / update / uninstall.
|
|
if (plugin.hasUpdate && !plugin.isCore && plugin.type !== PluginType.renderer) {
|
|
return <p className={styles.hasUpdate}>Update available!</p>;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
export const getStyles = (theme: GrafanaTheme2) => {
|
|
return {
|
|
hasUpdate: css`
|
|
color: ${theme.colors.text.secondary};
|
|
font-size: ${theme.typography.bodySmall.fontSize};
|
|
margin-bottom: 0;
|
|
`,
|
|
};
|
|
};
|
|
|