[v11.3.x] DashboardScene: Fix layout issues with repeated panels when repeatDirection is missing (#97156)

DashboardScene: Fix layout issues with repeated panels when `repeatDirection` is missing (#97149)

fix

(cherry picked from commit 0bf9d68070)

Co-authored-by: Victor Marin <36818606+mdvictor@users.noreply.github.com>
This commit is contained in:
grafana-delivery-bot[bot]
2024-11-28 14:48:02 +02:00
committed by GitHub
co-authored by Victor Marin
parent 1c201629d5
commit f8dfaebf4c
2 changed files with 21 additions and 1 deletions
@@ -648,6 +648,26 @@ describe('transformSaveModelToScene', () => {
expect(vizPanel.state.$data).toBeUndefined();
});
it('When repeat is set but repeatDirection is not it should default to horizontal repeat', () => {
const panel = {
title: '',
type: 'text-plugin-34',
gridPos: { x: 0, y: 0, w: 8, h: 8 },
repeat: 'server',
maxPerRow: 8,
};
const gridItem = buildGridItemForPanel(new PanelModel(panel));
const repeater = gridItem as DashboardGridItem;
expect(repeater.state.maxPerRow).toBe(8);
expect(repeater.state.variableName).toBe('server');
expect(repeater.state.width).toBe(24);
expect(repeater.state.height).toBe(8);
expect(repeater.state.repeatDirection).toBe('h');
expect(repeater.state.maxPerRow).toBe(8);
});
it('When repeat is set should build PanelRepeaterGridItem', () => {
const panel = {
title: '',
@@ -273,7 +273,7 @@ export function buildGridItemForPanel(panel: PanelModel): DashboardGridItem {
const repeatOptions: Partial<{ variableName: string; repeatDirection: RepeatDirection }> = panel.repeat
? {
variableName: panel.repeat,
repeatDirection: panel.repeatDirection === 'h' ? 'h' : 'v',
repeatDirection: panel.repeatDirection === 'v' ? 'v' : 'h',
}
: {};