Skip to content

Commit

Permalink
Fix useDatasourceFields calls with timeRange
Browse files Browse the repository at this point in the history
  • Loading branch information
ddelemeny committed Mar 26, 2024
1 parent ab85052 commit 9e8c60c
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
4 changes: 1 addition & 3 deletions src/LogContext/components/LogContextUI.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React, { useEffect, useState, useCallback, useMemo } from "react";
import { LogRowModel, Field as GrafanaField, getDefaultTimeRange } from '@grafana/data';
import { LogRowModel, Field as GrafanaField } from '@grafana/data';
import { ElasticsearchQuery as DataQuery } from '../../types';
import { LuceneQueryEditor } from "../../components/LuceneQueryEditor";

Expand Down Expand Up @@ -54,8 +54,6 @@ export function LogContextUI(props: LogContextUIProps ){
const {row, origQuery, updateQuery, runContextQuery } = props;

const fieldsSuggestionTimeRange = useMemo(()=>createContextTimeRange(row.timeEpochMs), [row])
const defaultTimeRange = getDefaultTimeRange()
console.log("RANGES", fieldsSuggestionTimeRange, defaultTimeRange)
const {fields, getSuggestions} = useDatasourceFields(props.datasource, fieldsSuggestionTimeRange);

useEffect(()=>{
Expand Down
8 changes: 5 additions & 3 deletions src/datasource/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ export type Suggestion = {

export function useDatasourceFields(datasource: BaseQuickwitDataSource, range: TimeRange) {
const [fields, setFields] = useState<MetricFindValue[]>([]);

console.log('from', range.from.toString())
useEffect(() => {
if (datasource.getTagKeys) {
datasource.getTagKeys({ searchable: true, range: range}).then(setFields);
datasource.getTagKeys({ searchable: true, timeRange: range}).then(setFields);
}
}, [datasource, range, setFields]);

Expand All @@ -29,7 +31,7 @@ export function useDatasourceFields(datasource: BaseQuickwitDataSource, range: T
const wordIsField = word.match(/([^:\s]+):"?([^"\s]*)"?/);
if (wordIsField?.length) {
const [_match, fieldName, _fieldValue] = wordIsField;
const candidateValues = await datasource.getTagValues({ key: fieldName });
const candidateValues = await datasource.getTagValues({ key: fieldName, timeRange: range });
suggestions.from = fieldName.length + 1; // Replace only the value part
suggestions.options = candidateValues.map(v => ({
type: 'text',
Expand All @@ -46,7 +48,7 @@ export function useDatasourceFields(datasource: BaseQuickwitDataSource, range: T
}
return suggestions;

}, [datasource, fields]);
}, [datasource, fields, range]);

return {fields, getSuggestions}
}

0 comments on commit 9e8c60c

Please sign in to comment.