import React from 'react';
import { PluginMeta } from '@grafana/data';
import { Button } from '@grafana/ui';
import { updatePluginSettings } from '../../api';
import { usePluginConfig } from '../../hooks/usePluginConfig';
import { CatalogPlugin } from '../../types';
type Props = {
plugin: CatalogPlugin;
};
export function GetStartedWithApp({ plugin }: Props): React.ReactElement | null {
const { value: pluginConfig } = usePluginConfig(plugin);
if (!pluginConfig) {
return null;
}
const { enabled, jsonData } = pluginConfig?.meta;
const enable = () =>
updatePluginSettingsAndReload(plugin.id, {
enabled: true,
pinned: true,
jsonData,
});
const disable = () => {
updatePluginSettingsAndReload(plugin.id, {
enabled: false,
pinned: false,
jsonData,
});
};
return (
<>
{!enabled && (
)}
{enabled && (
)}
>
);
}
const updatePluginSettingsAndReload = async (id: string, data: Partial) => {
try {
await updatePluginSettings(id, data);
// Reloading the page as the plugin meta changes made here wouldn't be propagated throughout the app.
window.location.reload();
} catch (e) {
console.error('Error while updating the plugin', e);
}
};