From 1dbb3bfdea76da4b6d6604288c91b547c9e0baa1 Mon Sep 17 00:00:00 2001 From: kay delaney <45561153+kaydelaney@users.noreply.github.com> Date: Fri, 26 Apr 2024 18:44:18 +0100 Subject: [PATCH] Scenes/PanelVizTypePicker: Use default tab if listMode is unsupported (#86885) Closes #84565 --- .../panel-edit/PanelVizTypePicker.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/public/app/features/dashboard-scene/panel-edit/PanelVizTypePicker.tsx b/public/app/features/dashboard-scene/panel-edit/PanelVizTypePicker.tsx index 7a8cf670d9e..4338c159725 100644 --- a/public/app/features/dashboard-scene/panel-edit/PanelVizTypePicker.tsx +++ b/public/app/features/dashboard-scene/panel-edit/PanelVizTypePicker.tsx @@ -1,5 +1,5 @@ import { css } from '@emotion/css'; -import React, { useMemo, useState } from 'react'; +import React, { useEffect, useMemo, useState } from 'react'; import { useLocalStorage } from 'react-use'; import { GrafanaTheme2, PanelData, SelectableValue } from '@grafana/data'; @@ -30,7 +30,21 @@ export function PanelVizTypePicker({ vizManager, data, onChange }: Props) { const defaultTab = isWidgetEnabled ? VisualizationSelectPaneTab.Widgets : VisualizationSelectPaneTab.Visualizations; const panelModel = useMemo(() => new PanelModelCompatibilityWrapper(panel), [panel]); + const supportedListModes = useMemo( + () => + new Set([ + VisualizationSelectPaneTab.Widgets, + VisualizationSelectPaneTab.Visualizations, + VisualizationSelectPaneTab.Suggestions, + ]), + [] + ); const [listMode, setListMode] = useLocalStorage(tabKey, defaultTab); + useEffect(() => { + if (listMode && !supportedListModes.has(listMode)) { + setListMode(defaultTab); + } + }, [defaultTab, listMode, setListMode, supportedListModes]); const radioOptions: Array> = [ { label: 'Visualizations', value: VisualizationSelectPaneTab.Visualizations },