Skip to content

Commit 35622a9

Browse files
Move ProblemsViewCheckbox to a separate component
1 parent 2ff0ee5 commit 35622a9

File tree

2 files changed

+43
-28
lines changed

2 files changed

+43
-28
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import * as React from "react";
2+
import { ALERTS_TABLE_NAME } from "../../common/interface-types";
3+
import {
4+
alertExtrasClassName,
5+
toggleDiagnosticsClassName,
6+
} from "./result-table-utils";
7+
8+
interface Props {
9+
selectedTable: string;
10+
problemsViewSelected: boolean;
11+
handleCheckboxChanged: (event: React.ChangeEvent<HTMLInputElement>) => void;
12+
}
13+
14+
export function ProblemsViewCheckbox(props: Props): JSX.Element | null {
15+
const { selectedTable, problemsViewSelected, handleCheckboxChanged } = props;
16+
17+
if (selectedTable !== ALERTS_TABLE_NAME) {
18+
return null;
19+
}
20+
return (
21+
<div className={alertExtrasClassName}>
22+
<div className={toggleDiagnosticsClassName}>
23+
<input
24+
type="checkbox"
25+
id="toggle-diagnostics"
26+
name="toggle-diagnostics"
27+
onChange={handleCheckboxChanged}
28+
checked={problemsViewSelected}
29+
/>
30+
<label htmlFor="toggle-diagnostics">
31+
Show results in Problems view
32+
</label>
33+
</div>
34+
</div>
35+
);
36+
}

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

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,14 @@ import {
1414
ParsedResultSets,
1515
IntoResultsViewMsg,
1616
} from "../../common/interface-types";
17-
import {
18-
tableHeaderClassName,
19-
toggleDiagnosticsClassName,
20-
alertExtrasClassName,
21-
} from "./result-table-utils";
17+
import { tableHeaderClassName } from "./result-table-utils";
2218
import { vscode } from "../vscode-api";
2319
import { sendTelemetry } from "../common/telemetry";
2420
import { ResultTable } from "./ResultTable";
2521
import { ResultTablesHeader } from "./ResultTablesHeader";
2622
import { useCallback, useEffect, useMemo, useState } from "react";
2723
import { ResultCount } from "./ResultCount";
24+
import { ProblemsViewCheckbox } from "./ProblemsViewCheckbox";
2825

2926
/**
3027
* Properties for the `ResultTables` component.
@@ -200,28 +197,6 @@ export function ResultTables(props: ResultTablesProps) {
200197
[database, metadata, origResultsPaths, problemsViewSelected, resultsPath],
201198
);
202199

203-
const alertTableExtras = useMemo((): JSX.Element | undefined => {
204-
if (selectedTable !== ALERTS_TABLE_NAME) {
205-
return undefined;
206-
}
207-
return (
208-
<div className={alertExtrasClassName}>
209-
<div className={toggleDiagnosticsClassName}>
210-
<input
211-
type="checkbox"
212-
id="toggle-diagnostics"
213-
name="toggle-diagnostics"
214-
onChange={handleCheckboxChanged}
215-
checked={problemsViewSelected}
216-
/>
217-
<label htmlFor="toggle-diagnostics">
218-
Show results in Problems view
219-
</label>
220-
</div>
221-
</div>
222-
);
223-
}, [handleCheckboxChanged, problemsViewSelected, selectedTable]);
224-
225200
const offset = parsedResultSets.pageNumber * parsedResultSets.pageSize;
226201

227202
const resultSets = useMemo(
@@ -253,7 +228,11 @@ export function ResultTables(props: ResultTablesProps) {
253228
{resultSetOptions}
254229
</select>
255230
<ResultCount resultSet={resultSet} />
256-
{alertTableExtras}
231+
<ProblemsViewCheckbox
232+
selectedTable={selectedTable}
233+
problemsViewSelected={problemsViewSelected}
234+
handleCheckboxChanged={handleCheckboxChanged}
235+
/>
257236
{isLoadingNewResults ? (
258237
<span className={UPDATING_RESULTS_TEXT_CLASS_NAME}>
259238
Updating results…

0 commit comments

Comments
 (0)