diff --git a/extensions/ql-vscode/src/remote-queries/view/Badge.tsx b/extensions/ql-vscode/src/remote-queries/view/Badge.tsx
index 037585954..e140fa039 100644
--- a/extensions/ql-vscode/src/remote-queries/view/Badge.tsx
+++ b/extensions/ql-vscode/src/remote-queries/view/Badge.tsx
@@ -1,9 +1,29 @@
import * as React from 'react';
+import styled from 'styled-components';
+
+const BadgeContainer = styled.span`
+ justify-content: center;
+ align-items: center;
+ min-height: 100vh;
+ padding-left: 0.2em;
+`;
+
+const BadgeText = styled.span`
+ display: inline-block;
+ min-width: 1.5em;
+ padding: 0.3em;
+ border-radius: 35%;
+ font-size: x-small;
+ text-align: center;
+ background: var(--vscode-badge-background);
+ color: var(--vscode-badge-foreground);
+ border-color: var(--vscode-badge-background);
+`;
const Badge = ({ text }: { text: string }) => (
-
- {text}
-
+
+ {text}
+
);
export default Badge;
diff --git a/extensions/ql-vscode/src/remote-queries/view/DownloadButton.tsx b/extensions/ql-vscode/src/remote-queries/view/DownloadButton.tsx
index f521dfdda..edbba030e 100644
--- a/extensions/ql-vscode/src/remote-queries/view/DownloadButton.tsx
+++ b/extensions/ql-vscode/src/remote-queries/view/DownloadButton.tsx
@@ -1,11 +1,23 @@
import * as React from 'react';
import * as octicons from '../../view/octicons';
+import styled from 'styled-components';
+
+const ButtonLink = styled.a`
+ display: inline-block;
+ font-size: x-small;
+ text-decoration: none;
+ cursor: pointer;
+ vertical-align: middle;
+
+ svg {
+ fill: var(--vscode-textLink-foreground);
+ }
+`;
const DownloadButton = ({ text, onClick }: { text: string, onClick: () => void }) => (
-
+
{octicons.download}{text}
-
+
);
export default DownloadButton;
diff --git a/extensions/ql-vscode/src/remote-queries/view/DownloadSpinner.tsx b/extensions/ql-vscode/src/remote-queries/view/DownloadSpinner.tsx
index cf6a8ff70..8ed698adc 100644
--- a/extensions/ql-vscode/src/remote-queries/view/DownloadSpinner.tsx
+++ b/extensions/ql-vscode/src/remote-queries/view/DownloadSpinner.tsx
@@ -1,10 +1,20 @@
import { Spinner } from '@primer/react';
import * as React from 'react';
+import styled from 'styled-components';
+
+const SpinnerContainer = styled.span`
+ vertical-align: middle;
+
+ svg {
+ width: 0.8em;
+ height: 0.8em;
+ }
+`;
const DownloadSpinner = () => (
-
+
-
+
);
export default DownloadSpinner;
diff --git a/extensions/ql-vscode/src/remote-queries/view/HorizontalSpace.tsx b/extensions/ql-vscode/src/remote-queries/view/HorizontalSpace.tsx
index d9d85fabf..77d1b4b7d 100644
--- a/extensions/ql-vscode/src/remote-queries/view/HorizontalSpace.tsx
+++ b/extensions/ql-vscode/src/remote-queries/view/HorizontalSpace.tsx
@@ -1,7 +1,9 @@
-import * as React from 'react';
+import styled from 'styled-components';
-const HorizontalSpace = () => (
-
-);
+const HorizontalSpace = styled.div<{ size: 1 | 2 | 3 }>`
+ flex: 0 0 auto;
+ display: inline-block;
+ width: ${props => 0.2 * props.size}em;
+`;
export default HorizontalSpace;
diff --git a/extensions/ql-vscode/src/remote-queries/view/RemoteQueries.tsx b/extensions/ql-vscode/src/remote-queries/view/RemoteQueries.tsx
index 99034e23e..a46aa6157 100644
--- a/extensions/ql-vscode/src/remote-queries/view/RemoteQueries.tsx
+++ b/extensions/ql-vscode/src/remote-queries/view/RemoteQueries.tsx
@@ -69,10 +69,10 @@ const sumAnalysesResults = (analysesResults: AnalysisResults[]) =>
const QueryInfo = (queryResult: RemoteQueryResult) => (
<>
-
+
{queryResult.totalResultCount} results in {queryResult.totalRepositoryCount} repositories
({queryResult.executionDuration}), {queryResult.executionTimestamp}
-
+
{octicons.file}
openQueryFile(queryResult)}>
{queryResult.queryFileName}
@@ -97,7 +97,7 @@ const SummaryTitleWithResults = ({
return (
-
+
Repositories with results ({queryResult.affectedRepositoryCount}):
{
showDownloadButton &&
(
-
+ No results found
);
@@ -128,7 +128,7 @@ const SummaryItemDownload = ({
if (analysisResults.status === 'InProgress') {
return <>
-
+
>;
}
@@ -196,16 +196,16 @@ const Summary = ({
const AnalysesResultsTitle = ({ totalAnalysesResults, totalResults }: { totalAnalysesResults: number, totalResults: number }) => {
if (totalAnalysesResults === totalResults) {
- return ;
+ return {totalAnalysesResults} results;
}
- return ;
+ return {totalAnalysesResults}/{totalResults} results;
};
const AnalysesResultsDescription = ({ totalAnalysesResults, totalResults }: { totalAnalysesResults: number, totalResults: number }) => {
if (totalAnalysesResults < totalResults) {
return <>
-
+
Some results haven't been downloaded automatically because of their size or because enough were downloaded already.
Download them manually from the list above if you want to see them here.
>;
@@ -223,8 +223,7 @@ const AnalysesResults = ({ analysesResults, totalResults }: { analysesResults: A
return (
<>
-
-
+
@@ -263,7 +262,7 @@ export function RemoteQueries(): JSX.Element {
try {
return
-
+ {queryResult.queryTitle}
diff --git a/extensions/ql-vscode/src/remote-queries/view/SectionTitle.tsx b/extensions/ql-vscode/src/remote-queries/view/SectionTitle.tsx
index d780e01a5..f4245c5bf 100644
--- a/extensions/ql-vscode/src/remote-queries/view/SectionTitle.tsx
+++ b/extensions/ql-vscode/src/remote-queries/view/SectionTitle.tsx
@@ -1,7 +1,12 @@
-import * as React from 'react';
+import styled from 'styled-components';
-const SectionTitle = ({ text }: { text: string }) => (
- {text}
-);
+const SectionTitle = styled.h2`
+ font-size: medium;
+ font-weight: 500;
+ padding: 0 0.5em 0 0;
+ margin: 0;
+ display: inline-block;
+ vertical-align: middle;
+`;
export default SectionTitle;
diff --git a/extensions/ql-vscode/src/remote-queries/view/VerticalSpace.tsx b/extensions/ql-vscode/src/remote-queries/view/VerticalSpace.tsx
index fa019c0e8..bd01ccfc9 100644
--- a/extensions/ql-vscode/src/remote-queries/view/VerticalSpace.tsx
+++ b/extensions/ql-vscode/src/remote-queries/view/VerticalSpace.tsx
@@ -1,7 +1,8 @@
-import * as React from 'react';
+import styled from 'styled-components';
-const VerticalSpace = () => (
-
-);
+const VerticalSpace = styled.div<{ size: 1 | 2 | 3 }>`
+ flex: 0 0 auto;
+ height: ${props => 0.5 * props.size}em;
+`;
export default VerticalSpace;
diff --git a/extensions/ql-vscode/src/remote-queries/view/ViewTitle.tsx b/extensions/ql-vscode/src/remote-queries/view/ViewTitle.tsx
index d6c5ba983..db14cdade 100644
--- a/extensions/ql-vscode/src/remote-queries/view/ViewTitle.tsx
+++ b/extensions/ql-vscode/src/remote-queries/view/ViewTitle.tsx
@@ -1,7 +1,9 @@
-import * as React from 'react';
+import styled from 'styled-components';
-const ViewTitle = ({ title }: { title: string }) => (
- {title}
-);
+const ViewTitle = styled.h1`
+ font-size: large;
+ margin-bottom: 0.5em;
+ font-weight: 500;
+`;
export default ViewTitle;
diff --git a/extensions/ql-vscode/src/remote-queries/view/baseStyles.css b/extensions/ql-vscode/src/remote-queries/view/baseStyles.css
index 8f357832a..4d3d4d543 100644
--- a/extensions/ql-vscode/src/remote-queries/view/baseStyles.css
+++ b/extensions/ql-vscode/src/remote-queries/view/baseStyles.css
@@ -2,96 +2,3 @@ body {
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,
sans-serif, Apple Color Emoji, Segoe UI Emoji;
}
-
-/* -------------------------------------------------------------------------- */
-/* SectionTitle component */
-/* -------------------------------------------------------------------------- */
-
-.vscode-codeql__section-title {
- font-size: medium;
- font-weight: 500;
- padding: 0 0.5em 0 0;
- margin: 0;
- display: inline-block;
- vertical-align: middle;
-}
-
-/* -------------------------------------------------------------------------- */
-/* ViewTitle component */
-/* -------------------------------------------------------------------------- */
-
-.vscode-codeql__view-title {
- font-size: large;
- margin-bottom: 0.5em;
- font-weight: 500;
-}
-
-/* -------------------------------------------------------------------------- */
-/* VerticalSpace component */
-/* -------------------------------------------------------------------------- */
-
-.vscode-codeql__vertical-space {
- flex: 0 0 auto;
- height: 0.5rem;
-}
-
-/* -------------------------------------------------------------------------- */
-/* HorizontalSpace component */
-/* -------------------------------------------------------------------------- */
-
-.vscode-codeql__horizontal-space {
- flex: 0 0 auto;
- display: inline-block;
- width: 0.2rem;
-}
-
-/* -------------------------------------------------------------------------- */
-/* Badge component */
-/* -------------------------------------------------------------------------- */
-
-.vscode-codeql__badge-container {
- justify-content: center;
- align-items: center;
- min-height: 100vh;
- padding-left: 0.2em;
-}
-
-.vscode-codeql__badge {
- display: inline-block;
- min-width: 1.5em;
- padding: 0.3em;
- border-radius: 35%;
- font-size: x-small;
- text-align: center;
- background: var(--vscode-badge-background);
- color: var(--vscode-badge-foreground);
- border-color: var(--vscode-badge-background);
-}
-
-/* -------------------------------------------------------------------------- */
-/* DownloadButton component */
-/* -------------------------------------------------------------------------- */
-
-.vscode-codeql__download-button {
- display: inline-block;
- font-size: x-small;
- text-decoration: none;
- cursor: pointer;
- vertical-align: middle;
-}
-
-.vscode-codeql__download-button svg {
- fill: var(--vscode-textLink-foreground);
-}
-
-/* -------------------------------------------------------------------------- */
-/* DownloadSpinner component */
-/* -------------------------------------------------------------------------- */
-.vscode-codeql__download-spinner {
- vertical-align: middle;
-}
-
-.vscode-codeql__download-spinner svg {
- width: 0.8em;
- height: 0.8em;
-}