mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
add unsupported renderer message to catalog (#41898)
This commit is contained in:
parent
0462577f3d
commit
4fa7fd2c75
@ -30,10 +30,14 @@ export const InstallControls = ({ plugin, latestCompatibleVersion }: Props) => {
|
|||||||
: PluginStatus.UNINSTALL
|
: PluginStatus.UNINSTALL
|
||||||
: PluginStatus.INSTALL;
|
: PluginStatus.INSTALL;
|
||||||
|
|
||||||
if (plugin.isCore || plugin.isDisabled || plugin.type === PluginType.renderer) {
|
if (plugin.isCore || plugin.isDisabled) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (plugin.type === PluginType.renderer) {
|
||||||
|
return <div className={styles.message}>Renderer plugins cannot be managed by the Plugin Catalog.</div>;
|
||||||
|
}
|
||||||
|
|
||||||
if (plugin.isEnterprise && !config.licenseInfo?.hasValidLicense) {
|
if (plugin.isEnterprise && !config.licenseInfo?.hasValidLicense) {
|
||||||
return (
|
return (
|
||||||
<HorizontalGroup height="auto" align="center">
|
<HorizontalGroup height="auto" align="center">
|
||||||
|
@ -1,49 +0,0 @@
|
|||||||
import { useMemo } from 'react';
|
|
||||||
import { useAsync } from 'react-use';
|
|
||||||
import { CatalogPlugin, CatalogPluginsState } from '../types';
|
|
||||||
import { api } from '../api';
|
|
||||||
import { mapLocalToCatalog, mapRemoteToCatalog, mapToCatalogPlugin } from '../helpers';
|
|
||||||
|
|
||||||
export function usePlugins(): CatalogPluginsState {
|
|
||||||
const { loading, value, error } = useAsync(async () => {
|
|
||||||
const remote = await api.getRemotePlugins();
|
|
||||||
const installed = await api.getInstalledPlugins();
|
|
||||||
return { remote, installed };
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const plugins = useMemo(() => {
|
|
||||||
const installed = value?.installed || [];
|
|
||||||
const remote = value?.remote || [];
|
|
||||||
const unique: Record<string, CatalogPlugin> = {};
|
|
||||||
|
|
||||||
for (const plugin of installed) {
|
|
||||||
unique[plugin.id] = mapLocalToCatalog(plugin);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (const plugin of remote) {
|
|
||||||
if (plugin.typeCode === 'renderer') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Boolean(plugin.versionSignatureType)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (unique[plugin.slug]) {
|
|
||||||
unique[plugin.slug] = mapToCatalogPlugin(
|
|
||||||
installed.find((installedPlugin) => installedPlugin.id === plugin.slug),
|
|
||||||
plugin
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
unique[plugin.slug] = mapRemoteToCatalog(plugin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return Object.values(unique);
|
|
||||||
}, [value?.installed, value?.remote]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
loading,
|
|
||||||
error,
|
|
||||||
plugins,
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user