Switch to styled-components for compare components

This commit is contained in:
Koen Vlaswinkel
2023-12-06 11:04:45 +01:00
parent cce858561f
commit b421a1916c
3 changed files with 28 additions and 27 deletions

View File

@@ -1,5 +1,6 @@
import * as React from "react"; import * as React from "react";
import { useState, useEffect } from "react"; import { useState, useEffect } from "react";
import { styled } from "styled-components";
import { import {
ToCompareViewMessage, ToCompareViewMessage,
@@ -21,6 +22,18 @@ const emptyComparison: SetComparisonsMessage = {
message: "Empty comparison", message: "Empty comparison",
}; };
const Header = styled.div`
display: flex;
`;
const HeaderTitle = styled.div`
margin: 0 1.5rem;
`;
const Message = styled.div`
padding: 1.5rem;
`;
export function Compare(_: Record<string, never>): JSX.Element { export function Compare(_: Record<string, never>): JSX.Element {
const [comparison, setComparison] = const [comparison, setComparison] =
useState<SetComparisonsMessage>(emptyComparison); useState<SetComparisonsMessage>(emptyComparison);
@@ -57,8 +70,8 @@ export function Compare(_: Record<string, never>): JSX.Element {
try { try {
return ( return (
<> <>
<div className="vscode-codeql__compare-header"> <Header>
<div className="vscode-codeql__compare-header-item">Comparing:</div> <HeaderTitle>Comparing:</HeaderTitle>
<CompareSelector <CompareSelector
availableResultSets={comparison.commonResultSetNames} availableResultSets={comparison.commonResultSetNames}
currentResultSetName={comparison.currentResultSetName} currentResultSetName={comparison.currentResultSetName}
@@ -66,11 +79,11 @@ export function Compare(_: Record<string, never>): JSX.Element {
vscode.postMessage({ t: "changeCompare", newResultSetName }) vscode.postMessage({ t: "changeCompare", newResultSetName })
} }
/> />
</div> </Header>
{hasRows ? ( {hasRows ? (
<CompareTable comparison={comparison}></CompareTable> <CompareTable comparison={comparison}></CompareTable>
) : ( ) : (
<div className="vscode-codeql__compare-message">{message}</div> <Message>{message}</Message>
)} )}
</> </>
); );

View File

@@ -20,6 +20,15 @@ const OpenButton = styled(TextButton)`
padding: 0; padding: 0;
`; `;
const Table = styled.table`
margin: 20px 0;
width: 100%;
& > tbody {
vertical-align: top;
}
`;
export default function CompareTable(props: Props) { export default function CompareTable(props: Props) {
const comparison = props.comparison; const comparison = props.comparison;
const result = props.comparison.result!; const result = props.comparison.result!;
@@ -50,7 +59,7 @@ export default function CompareTable(props: Props) {
} }
return ( return (
<table className="vscode-codeql__compare-body"> <Table>
<thead> <thead>
<tr> <tr>
<td> <td>
@@ -97,6 +106,6 @@ export default function CompareTable(props: Props) {
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </Table>
); );
} }

View File

@@ -168,27 +168,6 @@ td.vscode-codeql__path-index-cell {
opacity: 0.6; opacity: 0.6;
} }
.vscode-codeql__compare-header {
display: flex;
}
.vscode-codeql__compare-header-item {
margin: 0 1.5rem;
}
.vscode-codeql__compare-message {
padding: 1.5rem;
}
.vscode-codeql__compare-body {
margin: 20px 0;
width: 100%;
}
.vscode-codeql__compare-body > tbody {
vertical-align: top;
}
.vscode-codeql__empty-query-message { .vscode-codeql__empty-query-message {
height: 300px; height: 300px;
display: flex; display: flex;