@@ -4,6 +4,7 @@ import { LegendItem } from "./LegendItem";
4
4
import { MonitorSettings , PluggableMonitor } from "./utils" ;
5
5
import { Scrollbars } from "react-custom-scrollbars" ;
6
6
import Switch from "react-switch" ;
7
+ import Select from "react-select" ;
7
8
import classNames from "classnames" ;
8
9
9
10
export function Legend ( {
@@ -14,16 +15,20 @@ export function Legend({
14
15
wsSend,
15
16
setPause,
16
17
setInterpolate,
18
+ dataPointThreshold,
19
+ setDataPointThreshold,
17
20
} : {
18
21
chartRef : ChartJSOrUndefined < "line" > ;
19
22
pause : boolean ;
20
23
config : Partial < MonitorSettings > ;
21
24
cubicInterpolationMode : "monotone" | "default" ;
25
+ dataPointThreshold : number ;
22
26
wsSend : (
23
27
clientCommand : PluggableMonitor . Protocol . ClientCommandMessage
24
28
) => void ;
25
29
setPause : ( pause : boolean ) => void ;
26
30
setInterpolate : ( interpolate : boolean ) => void ;
31
+ setDataPointThreshold : ( dataPointThreshold : number ) => void ;
27
32
} ) : React . ReactElement {
28
33
const scrollRef = useRef < Scrollbars > ( null ) ;
29
34
@@ -131,6 +136,41 @@ export function Legend({
131
136
) }
132
137
</ div >
133
138
< div className = "actions" >
139
+ < label className = "interpolate" >
140
+ < span > Number of Datapoints</ span >
141
+ < Select
142
+ className = "singleselect datapointscount"
143
+ classNamePrefix = "select"
144
+ value = { {
145
+ value : dataPointThreshold ,
146
+ label : dataPointThreshold . toString ( ) ,
147
+ } }
148
+ name = "datapointscount"
149
+ options = { [
150
+ { value : 50 , label : "50" } ,
151
+ { value : 100 , label : "100" } ,
152
+ { value : 200 , label : "200" } ,
153
+ { value : 500 , label : "500" } ,
154
+ { value : 1000 , label : "1000" } ,
155
+ { value : 5000 , label : "5000" } ,
156
+ ] }
157
+ menuPlacement = "top"
158
+ onChange = { ( event ) => {
159
+ if ( event ) {
160
+ setDataPointThreshold ( event . value ) ;
161
+ wsSend ( {
162
+ command :
163
+ PluggableMonitor . Protocol . ClientCommand . CHANGE_SETTINGS ,
164
+ data : {
165
+ monitorUISettings : {
166
+ dataPointThreshold : event . value ,
167
+ } ,
168
+ } ,
169
+ } ) ;
170
+ }
171
+ } }
172
+ />
173
+ </ label >
134
174
< label className = "interpolate" >
135
175
< span > Interpolate</ span >
136
176
< Switch
0 commit comments