diff --git a/src/LogContext/components/LogContextQueryBuilderSidebar.tsx b/src/LogContext/components/LogContextQueryBuilderSidebar.tsx index 06ceffc..ffe7477 100644 --- a/src/LogContext/components/LogContextQueryBuilderSidebar.tsx +++ b/src/LogContext/components/LogContextQueryBuilderSidebar.tsx @@ -159,7 +159,6 @@ export function LogContextQueryBuilderSidebar(props: LogContextProps & QueryBuil } const renderFieldSection = (field: Field)=>{ - console.log('FIELD', field) return ( any, - onChange: (query: string)=>void + autocompleter: (word: string) => any, + onChange: (query: string) => void } export function LuceneQueryEditor(props: LuceneQueryEditorProps){ @@ -33,17 +33,20 @@ export function LuceneQueryEditor(props: LuceneQueryEditorProps){ return diagnostics }) - const autocomplete = useMemo(()=>autocompletion({ - override: [async (context: CompletionContext)=>{ - let word = context.matchBefore(/\S*/); - if (!word){ return null } - const suggestions = await props.autocompleter(word?.text); - return { - from: word.from + suggestions.from, - options: suggestions.options - } - }] - }),[props.autocompleter]) + + const {autocompleter} = props; + const datasourceCompletions = useCallback(async (context: CompletionContext)=>{ + let word = context.matchBefore(/\S*/); + if (!word){ return null } + const suggestions = await autocompleter(word?.text); + return { + from: word.from + suggestions.from, + options: suggestions.options + } + },[autocompleter]) + + + const autocomplete = autocompletion({ override: [datasourceCompletions] }) return ( void }) => { const styles = useStyles2(getStyles); const builder = useQueryBuilder(); - const {query, setQuery} = builder; + const {setQuery} = builder; const datasource = useDatasource() const [fields, autocompleter] = useDatasourceFields(datasource); @@ -68,10 +68,10 @@ export const ElasticSearchQueryField = ({ value, onChange }: { value?: string; o setQuery(value || '') }, [setQuery, value]) - const onEditorChange = useCallback((query:string)=>{ + const onEditorChange = useCallback((query: string)=>{ setQuery(query); onChange(query) - },[query, setQuery]) + },[setQuery, onChange]) return (
diff --git a/src/datasource.utils.ts b/src/datasource.utils.ts index d779fb4..f110f2d 100644 --- a/src/datasource.utils.ts +++ b/src/datasource.utils.ts @@ -11,7 +11,9 @@ export function useDatasourceFields(datasource: QuickwitDataSource): [any[], (wo const [fields, setFields] = useState([]); useEffect(() => { - datasource.getTagKeys({ searchable: true }).then(setFields); + if (datasource.getTagKeys) { + datasource.getTagKeys({ searchable: true }).then(setFields); + } }, [datasource, setFields]); const getSuggestions = useCallback(async (word: string) => {