File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change @@ -18,11 +18,20 @@ export type Suggestion = {
18
18
export function useDatasourceFields ( datasource : BaseQuickwitDataSource , range : TimeRange ) {
19
19
const [ fields , setFields ] = useState < MetricFindValue [ ] > ( [ ] ) ;
20
20
21
+ const [ niceRange , setNiceRange ] = useState ( ( ) => range )
22
+
23
+ useEffect ( ( ) => {
24
+ // range may change several times during a render with a delta of a few hundred milliseconds
25
+ // we don't need to fetch with such a granularity, this effect filters out range updates that are within the same minute
26
+ if ( range . from . isSame ( niceRange . from , 'minute' ) && range . to . isSame ( niceRange . to , 'minute' ) ) { return }
27
+ setNiceRange ( range )
28
+ } , [ range , niceRange ] )
29
+
21
30
useEffect ( ( ) => {
22
31
if ( datasource . getTagKeys ) {
23
- datasource . getTagKeys ( { searchable : true , timeRange : range } ) . then ( setFields ) ;
32
+ datasource . getTagKeys ( { searchable : true , timeRange : niceRange } ) . then ( setFields ) ;
24
33
}
25
- } , [ datasource , range , setFields ] ) ;
34
+ } , [ datasource , niceRange ] )
26
35
27
36
const getSuggestions = useCallback ( async ( word : string ) : Promise < Suggestion > => {
28
37
let suggestions : Suggestion = { from : 0 , options : [ ] } ;
You can’t perform that action at this time.
0 commit comments