DashboardScenes: Fix issue where relative time does not pass properly (#99282)

fix issue where relative time does not pass properly
This commit is contained in:
Victor Marin
2025-01-21 09:37:40 +02:00
committed by GitHub
parent d3a27a8c73
commit bf1a0837af
2 changed files with 22 additions and 0 deletions
@@ -84,6 +84,19 @@ describe('PanelTimeRange', () => {
expect(panelTime.state.timeInfo).toBe('Last 15 seconds timeshift -25s');
});
it('should update panelTimeRange from/to based on scene timeRange on activate', () => {
const panelTime = new PanelTimeRange({});
const panel = new SceneCanvasText({ text: 'Hello', $timeRange: panelTime });
const scene = new SceneFlexLayout({
$timeRange: new SceneTimeRange({ from: 'now-12h', to: 'now-2h' }),
children: [new SceneFlexItem({ body: panel })],
});
activateFullSceneTree(scene);
expect(panelTime.state.from).toBe('now-12h');
expect(panelTime.state.to).toBe('now-2h');
});
});
function buildAndActivateSceneFor(panelTime: PanelTimeRange) {
@@ -51,6 +51,15 @@ export class PanelTimeRange extends SceneTimeRangeTransformerBase<PanelTimeRange
}
})
);
const { timeRange } = this.getTimeOverride(this.getAncestorTimeRange().state.value);
// set initial values on activate
this.setState({
value: timeRange,
from: timeRange.raw.from.toString(),
to: timeRange.raw.to.toString(),
});
}
protected ancestorTimeRangeChanged(timeRange: SceneTimeRangeState): void {
const overrideResult = this.getTimeOverride(timeRange.value);