2022-07-07 01:53:02 -05:00
|
|
|
import React from 'react';
|
|
|
|
|
|
|
|
import { RefreshPicker, ToolbarButtonRow } from '@grafana/ui';
|
|
|
|
import { TimePickerWithHistory } from 'app/core/components/TimePicker/TimePickerWithHistory';
|
|
|
|
|
|
|
|
import { SceneObjectBase } from '../core/SceneObjectBase';
|
2022-11-16 04:36:30 -06:00
|
|
|
import { sceneGraph } from '../core/sceneGraph';
|
2022-07-19 10:46:49 -05:00
|
|
|
import { SceneComponentProps, SceneObjectStatePlain } from '../core/types';
|
2022-07-07 01:53:02 -05:00
|
|
|
|
2022-07-19 10:46:49 -05:00
|
|
|
export interface SceneTimePickerState extends SceneObjectStatePlain {
|
2022-07-07 01:53:02 -05:00
|
|
|
hidePicker?: boolean;
|
|
|
|
}
|
|
|
|
|
|
|
|
export class SceneTimePicker extends SceneObjectBase<SceneTimePickerState> {
|
2022-11-07 08:32:02 -06:00
|
|
|
public static Component = SceneTimePickerRenderer;
|
2022-07-07 01:53:02 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
function SceneTimePickerRenderer({ model }: SceneComponentProps<SceneTimePicker>) {
|
|
|
|
const { hidePicker } = model.useState();
|
2022-11-16 04:36:30 -06:00
|
|
|
const timeRange = sceneGraph.getTimeRange(model);
|
2022-07-07 01:53:02 -05:00
|
|
|
const timeRangeState = timeRange.useState();
|
|
|
|
|
|
|
|
if (hidePicker) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (
|
2022-08-24 05:19:36 -05:00
|
|
|
<ToolbarButtonRow alignment="right">
|
2022-07-07 01:53:02 -05:00
|
|
|
<TimePickerWithHistory
|
2022-11-29 07:49:26 -06:00
|
|
|
value={timeRangeState.value}
|
2022-07-07 01:53:02 -05:00
|
|
|
onChange={timeRange.onTimeRangeChange}
|
|
|
|
timeZone={'browser'}
|
|
|
|
fiscalYearStartMonth={0}
|
|
|
|
onMoveBackward={() => {}}
|
|
|
|
onMoveForward={() => {}}
|
|
|
|
onZoom={() => {}}
|
|
|
|
onChangeTimeZone={() => {}}
|
|
|
|
onChangeFiscalYearStartMonth={() => {}}
|
|
|
|
/>
|
|
|
|
|
|
|
|
<RefreshPicker onRefresh={timeRange.onRefresh} onIntervalChanged={timeRange.onIntervalChanged} />
|
|
|
|
</ToolbarButtonRow>
|
|
|
|
);
|
|
|
|
}
|