Skip to content

Commit 4594a93

Browse files
authored
fix: monaco-ghost infinite loop (#3021)
1 parent 1ea995c commit 4594a93

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

src/containers/Tenant/Query/QueryEditor/helpers.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@ import type Monaco from 'monaco-editor';
66
import {codeAssistApi} from '../../../../store/reducers/codeAssist/codeAssist';
77
import {selectQueriesHistory} from '../../../../store/reducers/query/query';
88
import type {TelemetryOpenTabs} from '../../../../types/api/codeAssist';
9-
import {AUTOCOMPLETE_ON_ENTER, ENABLE_AUTOCOMPLETE} from '../../../../utils/constants';
9+
import type {SavedQuery} from '../../../../types/store/query';
10+
import {
11+
AUTOCOMPLETE_ON_ENTER,
12+
ENABLE_AUTOCOMPLETE,
13+
SAVED_QUERIES_KEY,
14+
} from '../../../../utils/constants';
1015
import {useSetting, useTypedSelector} from '../../../../utils/hooks';
1116
import {YQL_LANGUAGE_ID} from '../../../../utils/monaco/constats';
12-
import {useSavedQueries} from '../utils/useSavedQueries';
1317

1418
export type EditorOptions = Monaco.editor.IEditorOptions & Monaco.editor.IGlobalEditorOptions;
1519

@@ -46,7 +50,7 @@ export function useCodeAssistHelpers() {
4650
const [ignoreSuggestion] = codeAssistApi.useIgnoreSuggestionMutation();
4751
const [sendUserQueriesData] = codeAssistApi.useSendUserQueriesDataMutation();
4852
const historyQueries = useTypedSelector(selectQueriesHistory);
49-
const savedQueries = useSavedQueries();
53+
const [savedQueries] = useSetting<SavedQuery[]>(SAVED_QUERIES_KEY, []);
5054

5155
const getCodeAssistSuggestions = React.useCallback(
5256
async (promptFiles: PromptFile[]) => sendCodeAssistPrompt(promptFiles).unwrap(),
Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
1+
import React from 'react';
2+
13
import {selectSavedQueriesFilter} from '../../../../store/reducers/queryActions/queryActions';
24
import type {SavedQuery} from '../../../../types/store/query';
35
import {SAVED_QUERIES_KEY} from '../../../../utils/constants';
46
import {useSetting, useTypedSelector} from '../../../../utils/hooks';
57

68
export function useSavedQueries() {
79
const [savedQueries] = useSetting<SavedQuery[]>(SAVED_QUERIES_KEY, []);
8-
const filter = useTypedSelector(selectSavedQueriesFilter).toLowerCase();
10+
const filter = useTypedSelector(selectSavedQueriesFilter).trim().toLowerCase();
11+
12+
const filteredSavedQueries = React.useMemo(() => {
13+
if (filter.length === 0) {
14+
return savedQueries;
15+
}
16+
return savedQueries.filter((item) => item.body.toLowerCase().includes(filter));
17+
}, [savedQueries, filter]);
918

10-
return filter
11-
? savedQueries.filter((item) => item.body.toLowerCase().includes(filter))
12-
: savedQueries;
19+
return filteredSavedQueries;
1320
}

0 commit comments

Comments
 (0)