Skip to content

Commit ad87ff5

Browse files
authored
Merge pull request #126 from quickwit-oss/ddelemeny/fix-fieldcaps-spam
Don't fetch field_caps on TimeRange update spam
2 parents 604983d + 041f5c5 commit ad87ff5

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/datasource/utils.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,20 @@ export type Suggestion = {
1818
export function useDatasourceFields(datasource: BaseQuickwitDataSource, range: TimeRange) {
1919
const [fields, setFields] = useState<MetricFindValue[]>([]);
2020

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+
2130
useEffect(() => {
2231
if (datasource.getTagKeys) {
23-
datasource.getTagKeys({ searchable: true, timeRange: range}).then(setFields);
32+
datasource.getTagKeys({ searchable: true, timeRange: niceRange}).then(setFields);
2433
}
25-
}, [datasource, range, setFields]);
34+
}, [datasource, niceRange])
2635

2736
const getSuggestions = useCallback(async (word: string): Promise<Suggestion> => {
2837
let suggestions: Suggestion = { from: 0, options: [] };

0 commit comments

Comments
 (0)