-
Notifications
You must be signed in to change notification settings - Fork 227
Expand file tree
/
Copy pathVariantAnalysisActions.tsx
More file actions
113 lines (105 loc) · 2.93 KB
/
VariantAnalysisActions.tsx
File metadata and controls
113 lines (105 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
import { styled } from "styled-components";
import { VSCodeButton } from "@vscode/webview-ui-toolkit/react";
import { VariantAnalysisStatus } from "../../variant-analysis/shared/variant-analysis";
export type VariantAnalysisActionsProps = {
variantAnalysisStatus: VariantAnalysisStatus;
onStopQueryClick: () => void;
stopQueryDisabled?: boolean;
showResultActions?: boolean;
onCopyRepositoryListClick: () => void;
onExportResultsClick: () => void;
copyRepositoryListDisabled?: boolean;
exportResultsDisabled?: boolean;
hasSelectedRepositories?: boolean;
hasFilteredRepositories?: boolean;
};
const Container = styled.div`
margin-left: auto;
display: flex;
gap: 1em;
`;
const Button = styled(VSCodeButton)`
white-space: nowrap;
`;
const chooseText = ({
hasSelectedRepositories,
hasFilteredRepositories,
normalText,
selectedText,
filteredText,
}: {
hasSelectedRepositories?: boolean;
hasFilteredRepositories?: boolean;
normalText: string;
selectedText: string;
filteredText: string;
}) => {
if (hasSelectedRepositories) {
return selectedText;
}
if (hasFilteredRepositories) {
return filteredText;
}
return normalText;
};
export const VariantAnalysisActions = ({
variantAnalysisStatus,
onStopQueryClick,
stopQueryDisabled,
showResultActions,
onCopyRepositoryListClick,
onExportResultsClick,
copyRepositoryListDisabled,
exportResultsDisabled,
hasSelectedRepositories,
hasFilteredRepositories,
}: VariantAnalysisActionsProps) => {
return (
<Container>
{showResultActions && (
<>
<Button
appearance="secondary"
onClick={onCopyRepositoryListClick}
disabled={copyRepositoryListDisabled}
>
{chooseText({
hasSelectedRepositories,
hasFilteredRepositories,
normalText: "Copy repository list",
selectedText: "Copy selected repositories as a list",
filteredText: "Copy filtered repositories as a list",
})}
</Button>
<Button
appearance="primary"
onClick={onExportResultsClick}
disabled={exportResultsDisabled}
>
{chooseText({
hasSelectedRepositories,
hasFilteredRepositories,
normalText: "Export results",
selectedText: "Export selected results",
filteredText: "Export filtered results",
})}
</Button>
</>
)}
{variantAnalysisStatus === VariantAnalysisStatus.InProgress && (
<Button
appearance="secondary"
onClick={onStopQueryClick}
disabled={stopQueryDisabled}
>
Stop query
</Button>
)}
{variantAnalysisStatus === VariantAnalysisStatus.Canceling && (
<Button appearance="secondary" disabled={true}>
Stopping query
</Button>
)}
</Container>
);
};