Skip to content

Commit ac3b94d

Browse files
Merge pull request #1541 from github/robertbrignull/loading-component
Add loading component
2 parents 0a5c272 + 32ec043 commit ac3b94d

4 files changed

Lines changed: 89 additions & 9 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import React from 'react';
2+
3+
import { ComponentMeta, ComponentStory } from '@storybook/react';
4+
5+
import { VariantAnalysisContainer } from '../../view/variant-analysis/VariantAnalysisContainer';
6+
import { VariantAnalysisLoading as VariantAnalysisLoadingComponent } from '../../view/variant-analysis/VariantAnalysisLoading';
7+
8+
export default {
9+
title: 'Variant Analysis/Variant Analysis Loading',
10+
component: VariantAnalysisLoadingComponent,
11+
decorators: [
12+
(Story) => (
13+
<VariantAnalysisContainer>
14+
<Story />
15+
</VariantAnalysisContainer>
16+
)
17+
],
18+
argTypes: {}
19+
} as ComponentMeta<typeof VariantAnalysisLoadingComponent>;
20+
21+
const Template: ComponentStory<typeof VariantAnalysisLoadingComponent> = () => (
22+
<VariantAnalysisLoadingComponent />
23+
);
24+
25+
export const VariantAnalysisLoading = Template.bind({});

extensions/ql-vscode/src/view/variant-analysis/VariantAnalysis.tsx

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
} from '../../remote-queries/shared/variant-analysis';
99
import { VariantAnalysisContainer } from './VariantAnalysisContainer';
1010
import { VariantAnalysisHeader } from './VariantAnalysisHeader';
11+
import { VariantAnalysisLoading } from './VariantAnalysisLoading';
1112

1213
const variantAnalysis: VariantAnalysisDomainModel = {
1314
id: 1,
@@ -19,6 +20,7 @@ const variantAnalysis: VariantAnalysisDomainModel = {
1920
},
2021
databases: {},
2122
status: VariantAnalysisStatus.InProgress,
23+
actionsWorkflowRunId: 123,
2224
scannedRepos: [
2325
{
2426
repository: {
@@ -103,18 +105,28 @@ const variantAnalysis: VariantAnalysisDomainModel = {
103105
]
104106
};
105107

108+
function getContainerContents(variantAnalysis: VariantAnalysisDomainModel) {
109+
if (variantAnalysis.actionsWorkflowRunId === undefined) {
110+
return <VariantAnalysisLoading />;
111+
}
112+
113+
return (
114+
<VariantAnalysisHeader
115+
variantAnalysis={variantAnalysis}
116+
onOpenQueryFileClick={() => console.log('Open query')}
117+
onViewQueryTextClick={() => console.log('View query')}
118+
onStopQueryClick={() => console.log('Stop query')}
119+
onCopyRepositoryListClick={() => console.log('Copy repository list')}
120+
onExportResultsClick={() => console.log('Export results')}
121+
onViewLogsClick={() => console.log('View logs')}
122+
/>
123+
);
124+
}
125+
106126
export function VariantAnalysis(): JSX.Element {
107127
return (
108128
<VariantAnalysisContainer>
109-
<VariantAnalysisHeader
110-
variantAnalysis={variantAnalysis}
111-
onOpenQueryFileClick={() => console.log('Open query')}
112-
onViewQueryTextClick={() => console.log('View query')}
113-
onStopQueryClick={() => console.log('Stop query')}
114-
onCopyRepositoryListClick={() => console.log('Copy repository list')}
115-
onExportResultsClick={() => console.log('Export results')}
116-
onViewLogsClick={() => console.log('View logs')}
117-
/>
129+
{getContainerContents(variantAnalysis)}
118130
</VariantAnalysisContainer>
119131
);
120132
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import * as React from 'react';
2+
import styled from 'styled-components';
3+
4+
const Container = styled.div`
5+
display: flex;
6+
flex-direction: column;
7+
align-items: center;
8+
gap: 1em;
9+
padding: 1em;
10+
`;
11+
12+
const FirstRow = styled.div`
13+
font-size: x-large;
14+
font-weight: 600;
15+
`;
16+
17+
const SecondRow = styled.div`
18+
color: var(--vscode-descriptionForeground);
19+
`;
20+
21+
export const VariantAnalysisLoading = () => {
22+
return (
23+
<Container>
24+
<FirstRow>We are getting everything ready</FirstRow>
25+
<SecondRow>Results will appear here shortly</SecondRow>
26+
</Container>
27+
);
28+
};
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import * as React from 'react';
2+
import { render as reactRender, screen } from '@testing-library/react';
3+
import { VariantAnalysisLoading } from '../VariantAnalysisLoading';
4+
5+
describe(VariantAnalysisLoading.name, () => {
6+
const render = () =>
7+
reactRender(<VariantAnalysisLoading />);
8+
9+
it('renders loading text', async () => {
10+
render();
11+
12+
expect(screen.getByText('We are getting everything ready')).toBeInTheDocument();
13+
expect(screen.getByText('Results will appear here shortly')).toBeInTheDocument();
14+
});
15+
});

0 commit comments

Comments
 (0)