diff --git a/extensions/ql-vscode/src/stories/variant-analysis/FailureReasonAlert.stories.tsx b/extensions/ql-vscode/src/stories/variant-analysis/FailureReasonAlert.stories.tsx new file mode 100644 index 000000000..5df603766 --- /dev/null +++ b/extensions/ql-vscode/src/stories/variant-analysis/FailureReasonAlert.stories.tsx @@ -0,0 +1,29 @@ +import React from 'react'; + +import { ComponentMeta, ComponentStory } from '@storybook/react'; +import { VariantAnalysisFailureReason } from '../../remote-queries/shared/variant-analysis'; +import { FailureReasonAlert } from '../../view/variant-analysis/FailureReasonAlert'; + +export default { + title: 'Variant Analysis/Failure reason alert', + component: FailureReasonAlert, +} as ComponentMeta; + +const Template: ComponentStory = (args) => ( + +); + +export const NoReposQueried = Template.bind({}); +NoReposQueried.args = { + failureReason: VariantAnalysisFailureReason.NoReposQueried, +}; + +export const ActionsWorkflowRunFailed = Template.bind({}); +ActionsWorkflowRunFailed.args = { + failureReason: VariantAnalysisFailureReason.ActionsWorkflowRunFailed, +}; + +export const InternalError = Template.bind({}); +InternalError.args = { + failureReason: VariantAnalysisFailureReason.InternalError, +}; diff --git a/extensions/ql-vscode/src/view/variant-analysis/FailureReasonAlert.tsx b/extensions/ql-vscode/src/view/variant-analysis/FailureReasonAlert.tsx index f3a7c179f..e04fce503 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/FailureReasonAlert.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/FailureReasonAlert.tsx @@ -1,30 +1,12 @@ import * as React from 'react'; -import { VSCodeButton } from '@vscode/webview-ui-toolkit/react'; +import { ReactNode } from 'react'; +import { VSCodeLink } from '@vscode/webview-ui-toolkit/react'; import { Alert } from '../common'; import { vscode } from '../vscode-api'; import { VariantAnalysisFailureReason } from '../../remote-queries/shared/variant-analysis'; type Props = { failureReason: VariantAnalysisFailureReason; - showLogsButton: boolean; -}; - -const getTitle = (failureReason: VariantAnalysisFailureReason): string => { - switch (failureReason) { - case VariantAnalysisFailureReason.NoReposQueried: - return 'No repositories to analyze'; - case VariantAnalysisFailureReason.InternalError: - return 'Something unexpected happened'; - } -}; - -const getMessage = (failureReason: VariantAnalysisFailureReason): string => { - switch (failureReason) { - case VariantAnalysisFailureReason.NoReposQueried: - return 'No repositories available after processing. No repositories were analyzed.'; - case VariantAnalysisFailureReason.InternalError: - return 'An internal error occurred while running this variant analysis. Please try again later.'; - } }; const openLogs = () => { @@ -33,16 +15,36 @@ const openLogs = () => { }); }; +const getTitle = (failureReason: VariantAnalysisFailureReason): string => { + switch (failureReason) { + case VariantAnalysisFailureReason.NoReposQueried: + return 'No repositories to analyze'; + case VariantAnalysisFailureReason.ActionsWorkflowRunFailed: + return 'GitHub Actions workflow run failed'; + case VariantAnalysisFailureReason.InternalError: + return 'Something unexpected happened'; + } +}; + +const getMessage = (failureReason: VariantAnalysisFailureReason): ReactNode => { + switch (failureReason) { + case VariantAnalysisFailureReason.NoReposQueried: + return 'No repositories available after processing. No repositories were analyzed.'; + case VariantAnalysisFailureReason.ActionsWorkflowRunFailed: + return <>The GitHub Actions workflow run has failed. Check logs and try running this query again.; + case VariantAnalysisFailureReason.InternalError: + return 'An internal error occurred while running this variant analysis. Please try again later.'; + } +}; + export const FailureReasonAlert = ({ failureReason, - showLogsButton, }: Props) => { return ( View logs} /> ); }; diff --git a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx index 7ae348839..5f4806105 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisOutcomePanels.tsx @@ -65,7 +65,7 @@ export const VariantAnalysisOutcomePanels = ({ /> )} {variantAnalysis.status === VariantAnalysisStatus.Failed && variantAnalysis.failureReason && ( - + )} {overLimitRepositoryCount > 0 && (