Skip to content

Commit a9fd7be

Browse files
committed
Pass down selection filter data
1 parent 9eec6d0 commit a9fd7be

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

extensions/ql-vscode/src/view/results/ResultTables.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import type {
22
DatabaseInfo,
3+
EditorSelection,
4+
FileFilteredResults,
35
Interpretation,
46
RawResultsSortState,
57
QueryMetadata,
@@ -44,6 +46,8 @@ interface ResultTablesProps {
4446
queryPath: string;
4547
selectedTable: string;
4648
onSelectedTableChange: (tableName: string) => void;
49+
selectionFilter: EditorSelection | undefined;
50+
fileFilteredResults: FileFilteredResults | undefined;
4751
selectionFilterEnabled: boolean;
4852
onSelectionFilterEnabledChange: (value: boolean) => void;
4953
problemsViewSelected: boolean;
@@ -108,6 +112,8 @@ export function ResultTables(props: ResultTablesProps) {
108112
sortStates,
109113
selectedTable,
110114
onSelectedTableChange,
115+
selectionFilter,
116+
fileFilteredResults,
111117
selectionFilterEnabled,
112118
onSelectionFilterEnabledChange,
113119
problemsViewSelected,
@@ -186,6 +192,10 @@ export function ResultTables(props: ResultTablesProps) {
186192

187193
const resultSetName = resultSet ? getResultSetName(resultSet) : undefined;
188194

195+
// True if file-filtered results are still loading from the extension
196+
const isLoadingFilteredResults =
197+
selectionFilter != null && fileFilteredResults == null;
198+
189199
return (
190200
<div>
191201
<ResultTablesHeader {...props} selectedTable={selectedTable} />
@@ -215,7 +225,8 @@ export function ResultTables(props: ResultTablesProps) {
215225
</span>
216226
) : null}
217227
</div>
218-
{resultSet && resultSetName && (
228+
{isLoadingFilteredResults && <span>Loading filtered results…</span>}
229+
{!isLoadingFilteredResults && resultSet && resultSetName && (
219230
<ResultTable
220231
key={resultSetName}
221232
resultSet={resultSet}
@@ -229,6 +240,7 @@ export function ResultTables(props: ResultTablesProps) {
229240
sendTelemetry("local-results-show-raw-results");
230241
}}
231242
offset={offset}
243+
selectionFilter={selectionFilter}
232244
/>
233245
)}
234246
</div>

extensions/ql-vscode/src/view/results/ResultsApp.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,10 @@ export function ResultsApp() {
152152
}
153153
}, [displayedResultsInfo, state.selectedTable, onSelectedTableChange]);
154154

155+
const selectionFilter = state.selectionFilterEnabled
156+
? state.editorSelection
157+
: undefined;
158+
155159
const updateStateWithNewResultsInfo = useCallback(
156160
(resultsInfo: ResultsInfo): void => {
157161
let results: Results | null = null;
@@ -336,6 +340,8 @@ export function ResultsApp() {
336340
queryPath={displayedResults.resultsInfo.queryPath}
337341
selectedTable={state.selectedTable ?? ""}
338342
onSelectedTableChange={onSelectedTableChange}
343+
selectionFilter={selectionFilter}
344+
fileFilteredResults={state.fileFilteredResults}
339345
selectionFilterEnabled={state.selectionFilterEnabled}
340346
onSelectionFilterEnabledChange={(selectionFilterEnabled) => {
341347
setState((prev) => ({ ...prev, selectionFilterEnabled }));

extensions/ql-vscode/src/view/results/result-table-utils.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ export interface ResultTableProps {
2929
* Callback to show raw results.
3030
*/
3131
showRawResults: () => void;
32+
33+
selectionFilter?: EditorSelection;
3234
}
3335

3436
export const className = "vscode-codeql__result-table";

0 commit comments

Comments
 (0)