Files
grafana/public/app/features/datasources/components/EditDataSourceActions.tsx
Yulia Shanyrova 80bdfbe2eb Plugins: Fix Explore button visibility for datasource plugins (#88614)
Use hasAccessToExplore method at datasource list
2024-06-10 14:27:17 +02:00

58 lines
1.6 KiB
TypeScript

import React from 'react';
import { config } from '@grafana/runtime';
import { LinkButton } from '@grafana/ui';
import { contextSrv } from 'app/core/core';
import { useDataSource } from '../state';
import { trackCreateDashboardClicked, trackDsConfigClicked, trackExploreClicked } from '../tracking';
import { constructDataSourceExploreUrl } from '../utils';
interface Props {
uid: string;
}
export function EditDataSourceActions({ uid }: Props) {
const dataSource = useDataSource(uid);
const hasExploreRights = contextSrv.hasAccessToExplore();
return (
<>
{hasExploreRights && (
<LinkButton
variant="secondary"
size="sm"
href={constructDataSourceExploreUrl(dataSource)}
onClick={() => {
trackDsConfigClicked('explore');
trackExploreClicked({
grafana_version: config.buildInfo.version,
datasource_uid: dataSource.uid,
plugin_name: dataSource.typeName,
path: location.pathname,
});
}}
>
Explore data
</LinkButton>
)}
<LinkButton
size="sm"
variant="secondary"
href={`dashboard/new-with-ds/${dataSource.uid}`}
onClick={() => {
trackDsConfigClicked('build_a_dashboard');
trackCreateDashboardClicked({
grafana_version: config.buildInfo.version,
datasource_uid: dataSource.uid,
plugin_name: dataSource.typeName,
path: location.pathname,
});
}}
>
Build a dashboard
</LinkButton>
</>
);
}