[v11.0.x] DashboardScene: Default hoverHeaderOffset to 0 (#87838)

DashboardScene: Default `hoverHeaderOffset` to 0 (#87561)

* remove hoverHeaderOffsetBehavior and force offset to 0

* force headerHoverOffset in addPanel flow

(cherry picked from commit 5f147644d4)

Co-authored-by: Sergej-Vlasov <37613182+Sergej-Vlasov@users.noreply.github.com>
This commit is contained in:
grafana-delivery-bot[bot]
2024-05-14 21:28:30 +03:00
committed by GitHub
co-authored by Sergej-Vlasov
parent e5237e5ac2
commit e730ea618b
4 changed files with 5 additions and 21 deletions
@@ -66,6 +66,9 @@ export class LibraryVizPanel extends SceneObjectBase<LibraryVizPanelState> {
pluginVersion: libPanelModel.pluginVersion,
displayMode: libPanelModel.transparent ? 'transparent' : undefined,
description: libPanelModel.description,
// To be replaced with it's own option persisted option instead derived
hoverHeader: !libPanelModel.title && !libPanelModel.timeFrom && !libPanelModel.timeShift,
hoverHeaderOffset: 0,
$data: createPanelDataProvider(libPanelModel),
menu: new VizPanelMenu({ $behaviors: [panelMenuBehavior] }),
titleItems: [
@@ -1,18 +0,0 @@
import { VizPanel } from '@grafana/scenes';
import { DashboardGridItem } from './DashboardGridItem';
export const hoverHeaderOffsetBehavior = (grid: DashboardGridItem) => {
const sub = grid.subscribeToState((newState, prevState) => {
if ([newState.y, prevState.y].includes(0) && newState.y !== prevState.y) {
grid.forEachChild((child) => {
if (child instanceof VizPanel && child.state.hoverHeader) {
child.setState({ hoverHeaderOffset: grid.state.y === 0 ? 0 : undefined });
}
});
}
});
return () => {
sub.unsubscribe();
};
};
@@ -45,7 +45,6 @@ import { panelLinksBehavior, panelMenuBehavior } from '../scene/PanelMenuBehavio
import { PanelNotices } from '../scene/PanelNotices';
import { PanelTimeRange } from '../scene/PanelTimeRange';
import { RowRepeaterBehavior } from '../scene/RowRepeaterBehavior';
import { hoverHeaderOffsetBehavior } from '../scene/hoverHeaderOffsetBehavior';
import { RowActions } from '../scene/row-actions/RowActions';
import { setDashboardPanelContext } from '../scene/setDashboardPanelContext';
import { createPanelDataProvider } from '../utils/createPanelDataProvider';
@@ -471,7 +470,7 @@ export function buildGridItemForPanel(panel: PanelModel): DashboardGridItem {
displayMode: panel.transparent ? 'transparent' : undefined,
// To be replaced with it's own option persited option instead derived
hoverHeader: !panel.title && !panel.timeFrom && !panel.timeShift,
hoverHeaderOffset: (panel.gridPos?.y ?? 0) === 0 ? 0 : undefined,
hoverHeaderOffset: 0,
$data: createPanelDataProvider(panel),
titleItems,
@@ -505,7 +504,6 @@ export function buildGridItemForPanel(panel: PanelModel): DashboardGridItem {
body,
maxPerRow: panel.maxPerRow,
...repeatOptions,
$behaviors: [hoverHeaderOffsetBehavior],
});
}
@@ -229,6 +229,7 @@ export function getDefaultVizPanel(dashboard: DashboardScene): VizPanel {
key: getVizPanelKeyForPanelId(panelId),
pluginId: 'timeseries',
titleItems: [new VizPanelLinks({ menu: new VizPanelLinksMenu({}) })],
hoverHeaderOffset: 0,
menu: new VizPanelMenu({
$behaviors: [panelMenuBehavior],
}),