mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
PanelEditor: Fix runtime error caused by panels not installed in Grafana instance (#85592)
FIx runtime error casued by panels non installed in Grafana instance
This commit is contained in:
@@ -13,7 +13,7 @@ export interface Props {
|
||||
export function PanelEditControls({ panelEditor }: Props) {
|
||||
const vizManager = panelEditor.state.vizManager;
|
||||
const { panel, tableView } = vizManager.useState();
|
||||
const skipDataQuery = config.panels[panel.state.pluginId].skipDataQuery;
|
||||
const skipDataQuery = config.panels[panel.state.pluginId]?.skipDataQuery;
|
||||
|
||||
return (
|
||||
<>
|
||||
|
||||
@@ -64,7 +64,7 @@ export class PanelEditor extends SceneObjectBase<PanelEditorState> {
|
||||
}
|
||||
|
||||
private _initDataPane(pluginId: string) {
|
||||
const skipDataQuery = config.panels[pluginId].skipDataQuery;
|
||||
const skipDataQuery = config.panels[pluginId]?.skipDataQuery;
|
||||
|
||||
if (skipDataQuery && this.state.dataPane) {
|
||||
locationService.partial({ tab: null }, true);
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { css } from '@emotion/css';
|
||||
import React, { useMemo } from 'react';
|
||||
|
||||
import { GrafanaTheme2 } from '@grafana/data';
|
||||
import { GrafanaTheme2, PanelPluginMeta } from '@grafana/data';
|
||||
import { selectors } from '@grafana/e2e-selectors';
|
||||
import { SceneComponentProps, SceneObjectBase, SceneObjectState, sceneGraph } from '@grafana/scenes';
|
||||
import { FilterInput, Stack, ToolbarButton, useStyles2 } from '@grafana/ui';
|
||||
import { OptionFilter } from 'app/features/dashboard/components/PanelEditor/OptionsPaneOptions';
|
||||
import { getPanelPluginNotFound } from 'app/features/panel/components/PanelPluginError';
|
||||
import { getAllPanelPluginMeta } from 'app/features/panel/state/util';
|
||||
|
||||
import { PanelEditor } from './PanelEditor';
|
||||
@@ -108,7 +109,15 @@ interface VisualizationButtonProps {
|
||||
|
||||
export function VisualizationButton({ pluginId, onOpen }: VisualizationButtonProps) {
|
||||
const styles = useStyles2(getVizButtonStyles);
|
||||
const pluginMeta = useMemo(() => getAllPanelPluginMeta().filter((p) => p.id === pluginId)[0], [pluginId]);
|
||||
let pluginMeta: PanelPluginMeta | undefined = useMemo(
|
||||
() => getAllPanelPluginMeta().filter((p) => p.id === pluginId)[0],
|
||||
[pluginId]
|
||||
);
|
||||
|
||||
if (!pluginMeta) {
|
||||
const notFound = getPanelPluginNotFound(`Panel plugin not found (${pluginId})`, true);
|
||||
pluginMeta = notFound.meta;
|
||||
}
|
||||
|
||||
return (
|
||||
<Stack gap={1}>
|
||||
|
||||
Reference in New Issue
Block a user