1234567891011121314151617181920212223242526272829303132333435 |
- import React, { useCallback } from 'react';
- import { useDispatch } from 'react-redux';
- import { DataSourcePluginMeta } from '@grafana/data';
- import { Button } from '@grafana/ui';
- import { addDataSource } from 'app/features/datasources/state/actions';
- import { isDataSourceEditor } from '../../permissions';
- import { CatalogPlugin } from '../../types';
- type Props = {
- plugin: CatalogPlugin;
- };
- export function GetStartedWithDataSource({ plugin }: Props): React.ReactElement | null {
- const dispatch = useDispatch();
- const onAddDataSource = useCallback(() => {
- const meta = {
- name: plugin.name,
- id: plugin.id,
- } as DataSourcePluginMeta;
- dispatch(addDataSource(meta));
- }, [dispatch, plugin]);
- if (!isDataSourceEditor()) {
- return null;
- }
- return (
- <Button variant="primary" onClick={onAddDataSource}>
- Create a {plugin.name} data source
- </Button>
- );
- }
|