mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Remove panel inspect Actions hack (#64643)
remove actions tab hook
This commit is contained in:
@@ -1,85 +0,0 @@
|
||||
import React, { ComponentType } from 'react';
|
||||
|
||||
import { PanelData } from '@grafana/data';
|
||||
|
||||
import { PanelModel } from '../../state';
|
||||
|
||||
export interface PanelInspectActionProps {
|
||||
panel: PanelModel;
|
||||
data?: PanelData;
|
||||
}
|
||||
|
||||
export interface PanelInspectAction {
|
||||
title: string;
|
||||
description: string;
|
||||
|
||||
component: ComponentType<PanelInspectActionProps>;
|
||||
}
|
||||
|
||||
export interface PanelInspectActionSupplier {
|
||||
getActions: (panel: PanelModel) => PanelInspectAction[] | null;
|
||||
}
|
||||
|
||||
// const dummySupplier: PanelInspectActionSupplier = {
|
||||
// getActions: (panel: PanelModel) => {
|
||||
// return [
|
||||
// {
|
||||
// title: 'Do something',
|
||||
// description: 'that thingy',
|
||||
// // eslint-disable-next-line react/display-name
|
||||
// component: ({ panel }) => {
|
||||
// return (
|
||||
// <div>
|
||||
// DO THING ONE. Panel: <pre>{JSON.stringify(panel.targets)}</pre>
|
||||
// </div>
|
||||
// );
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// title: 'Do something else',
|
||||
// description: 'another thing',
|
||||
// // eslint-disable-next-line react/display-name
|
||||
// component: ({ panel }) => {
|
||||
// return (
|
||||
// <div>
|
||||
// DO THING TWO. Panel: <pre>{JSON.stringify(panel.targets)}</pre>
|
||||
// </div>
|
||||
// );
|
||||
// },
|
||||
// },
|
||||
// ];
|
||||
// },
|
||||
// };
|
||||
|
||||
// In Grafana 8.1, this can be improved and moved to `@grafana/runtime`
|
||||
// NOTE: This is an internal/experimental API/hack and will change!
|
||||
// (window as any).grafanaPanelInspectActionSupplier = dummySupplier;
|
||||
|
||||
interface InspectActionsTabProps {
|
||||
panel: PanelModel;
|
||||
data?: PanelData;
|
||||
}
|
||||
|
||||
export const InspectActionsTab: React.FC<InspectActionsTabProps> = ({ panel, data }) => {
|
||||
const supplier = (window as any).grafanaPanelInspectActionSupplier as PanelInspectActionSupplier;
|
||||
if (!supplier) {
|
||||
return <div>Missing actions</div>;
|
||||
}
|
||||
|
||||
const actions = supplier.getActions(panel);
|
||||
if (!actions?.length) {
|
||||
return <div>No actions avaliable</div>;
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
{actions.map((a, idx) => (
|
||||
<div key={idx}>
|
||||
<h2>{a.title}</h2>
|
||||
<span>{a.description}</span>
|
||||
<a.component panel={panel} data={data} />
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@@ -9,8 +9,6 @@ import { InspectTab } from 'app/features/inspector/types';
|
||||
|
||||
import { supportsDataQuery } from '../PanelEditor/utils';
|
||||
|
||||
import { PanelInspectActionSupplier } from './PanelInspectActions';
|
||||
|
||||
/**
|
||||
* Given PanelData return first data source supporting metadata inspector
|
||||
*/
|
||||
@@ -62,19 +60,9 @@ export const useInspectTabs = (
|
||||
tabs.push({ label: t('dashboard.inspect.error-tab', 'Error'), value: InspectTab.Error });
|
||||
}
|
||||
|
||||
// This is a quick internal hack to allow custom actions in inspect
|
||||
// For 8.1, something like this should be exposed through grafana/runtime
|
||||
const supplier = (window as any).grafanaPanelInspectActionSupplier as PanelInspectActionSupplier;
|
||||
if (supplier && supplier.getActions(panel)?.length) {
|
||||
tabs.push({
|
||||
label: t('dashboard.inspect.actions-tab', 'Actions'),
|
||||
value: InspectTab.Actions,
|
||||
});
|
||||
}
|
||||
|
||||
if (dashboard.meta.canEdit && supportsDataQuery(plugin)) {
|
||||
tabs.push({ label: t('dashboard.inspect.query-tab', 'Query'), value: InspectTab.Query });
|
||||
}
|
||||
return tabs;
|
||||
}, [panel, plugin, metaDs, dashboard, error]);
|
||||
}, [plugin, metaDs, dashboard, error]);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user