Skip to content

Commit aa9cb89

Browse files
committed
Extract RawCompareResultTable component
1 parent cce8585 commit aa9cb89

File tree

2 files changed

+60
-38
lines changed

2 files changed

+60
-38
lines changed

extensions/ql-vscode/src/view/compare/CompareTable.tsx

Lines changed: 15 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import * as React from "react";
22

33
import { SetComparisonsMessage } from "../../common/interface-types";
4-
import RawTableHeader from "../results/RawTableHeader";
54
import { className } from "../results/result-table-utils";
6-
import { ResultRow } from "../../common/bqrs-cli-types";
7-
import RawTableRow from "../results/RawTableRow";
85
import { vscode } from "../vscode-api";
9-
import { sendTelemetry } from "../common/telemetry";
106
import TextButton from "../common/TextButton";
117
import { styled } from "styled-components";
8+
import { RawCompareResultTable } from "./RawCompareResultTable";
129

1310
interface Props {
1411
comparison: SetComparisonsMessage;
@@ -31,24 +28,6 @@ export default function CompareTable(props: Props) {
3128
});
3229
}
3330

34-
function createRows(rows: ResultRow[], databaseUri: string) {
35-
return (
36-
<tbody>
37-
{rows.map((row, rowIndex) => (
38-
<RawTableRow
39-
key={rowIndex}
40-
rowIndex={rowIndex}
41-
row={row}
42-
databaseUri={databaseUri}
43-
onSelected={() => {
44-
sendTelemetry("comapre-view-result-clicked");
45-
}}
46-
/>
47-
))}
48-
</tbody>
49-
);
50-
}
51-
5231
return (
5332
<table className="vscode-codeql__compare-body">
5433
<thead>
@@ -76,24 +55,22 @@ export default function CompareTable(props: Props) {
7655
<tbody>
7756
<tr>
7857
<td>
79-
<table className={className}>
80-
<RawTableHeader
81-
columns={result.columns}
82-
schemaName={comparison.currentResultSetName}
83-
preventSort={true}
84-
/>
85-
{createRows(result.from, comparison.databaseUri)}
86-
</table>
58+
<RawCompareResultTable
59+
columns={result.columns}
60+
schemaName={comparison.currentResultSetName}
61+
rows={result.from}
62+
databaseUri={comparison.databaseUri}
63+
className={className}
64+
/>
8765
</td>
8866
<td>
89-
<table className={className}>
90-
<RawTableHeader
91-
columns={result.columns}
92-
schemaName={comparison.currentResultSetName}
93-
preventSort={true}
94-
/>
95-
{createRows(result.to, comparison.databaseUri)}
96-
</table>
67+
<RawCompareResultTable
68+
columns={result.columns}
69+
schemaName={comparison.currentResultSetName}
70+
rows={result.to}
71+
databaseUri={comparison.databaseUri}
72+
className={className}
73+
/>
9774
</td>
9875
</tr>
9976
</tbody>
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import * as React from "react";
2+
import { ResultRow } from "../../common/bqrs-cli-types";
3+
import { sendTelemetry } from "../common/telemetry";
4+
import RawTableHeader from "../results/RawTableHeader";
5+
import RawTableRow from "../results/RawTableRow";
6+
7+
interface Props {
8+
columns: ReadonlyArray<{ name?: string }>;
9+
schemaName: string;
10+
rows: ResultRow[];
11+
databaseUri: string;
12+
13+
className?: string;
14+
}
15+
16+
export function RawCompareResultTable({
17+
columns,
18+
schemaName,
19+
rows,
20+
databaseUri,
21+
className,
22+
}: Props) {
23+
return (
24+
<table className={className}>
25+
<RawTableHeader
26+
columns={columns}
27+
schemaName={schemaName}
28+
preventSort={true}
29+
/>
30+
<tbody>
31+
{rows.map((row, rowIndex) => (
32+
<RawTableRow
33+
key={rowIndex}
34+
rowIndex={rowIndex}
35+
row={row}
36+
databaseUri={databaseUri}
37+
onSelected={() => {
38+
sendTelemetry("comapre-view-result-clicked");
39+
}}
40+
/>
41+
))}
42+
</tbody>
43+
</table>
44+
);
45+
}

0 commit comments

Comments
 (0)