2025-04-01 10:38:02 +09:00

22 lines
599 B
TypeScript

import { useAsync } from 'react-use';
import { config } from '@grafana/runtime';
import { loadPlugin } from '../../utils';
import { CatalogPlugin } from '../types';
export const usePluginConfig = (plugin?: CatalogPlugin) => {
return useAsync(async () => {
if (!plugin) {
return null;
}
const isPluginInstalled = config.pluginAdminExternalManageEnabled ? plugin.isFullyInstalled : plugin.isInstalled;
if (isPluginInstalled && !plugin.isDisabled) {
return loadPlugin(plugin.id);
}
return null;
}, [plugin?.id, plugin?.isInstalled, plugin?.isDisabled]);
};