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; -}