-
Notifications
You must be signed in to change notification settings - Fork 32
/
Copy pathTimeSliderInputs.tsx
60 lines (54 loc) · 1.9 KB
/
TimeSliderInputs.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import React, { PureComponent } from 'react';
import { TimeUtils } from '@deephaven/utils';
import { TimeSlider } from '@deephaven/components';
import SampleSection from './SampleSection';
interface TimeSliderInputsState {
initialStartTime: number;
initialEndTime: number;
startTime: number;
endTime: number;
}
class TimeSliderInputs extends PureComponent<
Record<string, never>,
TimeSliderInputsState
> {
constructor(props: Record<string, never>) {
super(props);
this.handleSliderChange = this.handleSliderChange.bind(this);
this.state = {
initialStartTime: 24 * 60 * 60 * 0.25,
initialEndTime: 24 * 60 * 60 * 0.75,
startTime: 24 * 60 * 60 * 0.25, // example start and end times
endTime: 24 * 60 * 60 * 0.75, // example start and end times
};
}
handleSliderChange(values: { startTime: number; endTime: number }): void {
const { startTime, endTime } = values;
this.setState({ startTime });
this.setState({ endTime });
}
render(): React.ReactElement {
const { startTime, endTime, initialStartTime, initialEndTime } = this.state;
const isStartModified = startTime !== initialStartTime;
const isEndModified = endTime !== initialEndTime;
return (
<SampleSection name="time-slider-inputs" className="style-guide-inputs">
<h2 className="ui-title">Time Slider</h2>
<TimeSlider
startTime={startTime}
endTime={endTime}
isStartModified={isStartModified}
isEndModified={isEndModified}
onChange={this.handleSliderChange}
/>
<p style={isStartModified ? { color: 'var(--dh-color-modified)' } : {}}>
StartTime: {TimeUtils.formatTime(startTime)}
</p>
<p style={isEndModified ? { color: 'var(--dh-color-modified)' } : {}}>
EndTime: {TimeUtils.formatTime(endTime)}
</p>
</SampleSection>
);
}
}
export default TimeSliderInputs;