DashboardScenes: Fix issue where timezone was not considered in relative time override (#99316)
* Fix issue where timezone was not considered in relative time override * fix
This commit is contained in:
@@ -97,6 +97,20 @@ describe('PanelTimeRange', () => {
|
||||
expect(panelTime.state.from).toBe('now-12h');
|
||||
expect(panelTime.state.to).toBe('now-2h');
|
||||
});
|
||||
|
||||
it('should properly apply timeZone', () => {
|
||||
const panelTime = new PanelTimeRange({ timeFrom: '2h' });
|
||||
|
||||
const panel = new SceneCanvasText({ text: 'Hello', $timeRange: panelTime });
|
||||
const scene = new SceneFlexLayout({
|
||||
$timeRange: new SceneTimeRange({ from: 'now-6h', to: 'now', timeZone: 'utc' }),
|
||||
children: [new SceneFlexItem({ body: panel })],
|
||||
});
|
||||
activateFullSceneTree(scene);
|
||||
|
||||
expect(panelTime.state.value.from.format('Z')).toBe('+00:00'); // UTC
|
||||
expect(panelTime.state.value.to.format('Z')).toBe('+00:00'); // UTC
|
||||
});
|
||||
});
|
||||
|
||||
function buildAndActivateSceneFor(panelTime: PanelTimeRange) {
|
||||
|
||||
@@ -81,10 +81,11 @@ export class PanelTimeRange extends SceneTimeRangeTransformerBase<PanelTimeRange
|
||||
|
||||
// Only evaluate if the timeFrom if parent time is relative
|
||||
if (rangeUtil.isRelativeTimeRange(parentTimeRange.raw)) {
|
||||
const timeZone = this.getTimeZone();
|
||||
newTimeData.timeInfo = timeFromInfo.display;
|
||||
newTimeData.timeRange = {
|
||||
from: dateMath.parse(timeFromInfo.from)!,
|
||||
to: dateMath.parse(timeFromInfo.to)!,
|
||||
from: dateMath.parse(timeFromInfo.from, undefined, timeZone)!,
|
||||
to: dateMath.parse(timeFromInfo.to, undefined, timeZone)!,
|
||||
raw: { from: timeFromInfo.from, to: timeFromInfo.to },
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user