Skip to content

Commit 56dbe2e

Browse files
committed
Add internet connection indicator
1 parent 417341b commit 56dbe2e

File tree

5 files changed

+59
-35
lines changed

5 files changed

+59
-35
lines changed

src/treeViews/currentBranch.ts

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,13 @@ import {CurrentBranchRepoNode} from "./current-branch/currentBranchRepoNode";
55

66
import {log, logDebug} from "../log";
77
import {RunStore} from "../store/store";
8-
import {NoRunForBranchNode} from "./current-branch/noRunForBranchNode";
98
import {AttemptNode} from "./shared/attemptNode";
10-
import {NoWorkflowJobsNode} from "./shared/noWorkflowJobsNode";
119
import {PreviousAttemptsNode} from "./shared/previousAttemptsNode";
1210
import {WorkflowJobNode} from "./shared/workflowJobNode";
1311
import {WorkflowRunNode} from "./shared/workflowRunNode";
1412
import {WorkflowRunTreeDataProvider} from "./workflowRunTreeDataProvider";
15-
import {WorkflowStepNode} from "./workflows/workflowStepNode";
16-
17-
type CurrentBranchTreeNode =
18-
| CurrentBranchRepoNode
19-
| WorkflowRunNode
20-
| PreviousAttemptsNode
21-
| AttemptNode
22-
| WorkflowJobNode
23-
| NoWorkflowJobsNode
24-
| WorkflowStepNode
25-
| NoRunForBranchNode;
13+
import {NoInternetConnectivityNode} from "./shared/noInternetConnectivityNode";
14+
import {CurrentBranchTreeNode} from "./settings/types";
2615

2716
export class CurrentBranchTreeProvider
2817
extends WorkflowRunTreeDataProvider
@@ -51,7 +40,7 @@ export class CurrentBranchTreeProvider
5140
if (!element) {
5241
const gitHubContext = await getGitHubContext();
5342
if (!gitHubContext) {
54-
return [];
43+
return [new NoInternetConnectivityNode()];
5544
}
5645

5746
if (gitHubContext.repos.length === 1) {

src/treeViews/settings.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {EnvironmentSecretsNode} from "./settings/environmentSecretsNode";
1414
import {EnvironmentVariablesNode} from "./settings/environmentVariablesNode";
1515
import {OrgVariablesNode} from "./settings/orgVariablesNode";
1616
import {OrgSecretsNode} from "./settings/orgSecretsNode";
17+
import { NoInternetConnectivityNode } from "./shared/noInternetConnectivityNode";
1718

1819
export class SettingsTreeProvider implements vscode.TreeDataProvider<SettingsExplorerNode> {
1920
private _onDidChangeTreeData = new vscode.EventEmitter<SettingsExplorerNode | null>();
@@ -30,7 +31,7 @@ export class SettingsTreeProvider implements vscode.TreeDataProvider<SettingsExp
3031
async getChildren(element?: SettingsExplorerNode | undefined): Promise<SettingsExplorerNode[]> {
3132
const gitHubContext = await getGitHubContext();
3233
if (!gitHubContext) {
33-
return [];
34+
return [new NoInternetConnectivityNode()];
3435
}
3536

3637
if (!element) {

src/treeViews/settings/types.ts

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,18 @@ import {RepoVariablesNode} from "./repoVariablesNode";
1111
import {OrgVariablesNode} from "./orgVariablesNode";
1212
import {OrgSecretsNode} from "./orgSecretsNode";
1313
import {RepoSecretsNode} from "./repoSecretsNode";
14+
import {NoGitHubRepositoryNode} from "../shared/noGitHubRepositoryNode";
15+
import {NoWorkflowJobsNode} from "../shared/noWorkflowJobsNode";
16+
import {WorkflowStepNode} from "../workflows/workflowStepNode";
17+
import {AttemptNode} from "../shared/attemptNode";
18+
import {AuthenticationNode} from "../shared/authenticationNode";
19+
import {PreviousAttemptsNode} from "../shared/previousAttemptsNode";
20+
import {WorkflowJobNode} from "../shared/workflowJobNode";
21+
import {WorkflowRunNode} from "../shared/workflowRunNode";
22+
import {WorkflowNode} from "../workflows/workflowNode";
23+
import {NoInternetConnectivityNode} from "../shared/noInternetConnectivityNode";
24+
import {NoRunForBranchNode} from "../current-branch/noRunForBranchNode";
25+
import {CurrentBranchRepoNode} from "../current-branch/currentBranchRepoNode";
1426

1527
export type SettingsExplorerNode =
1628
| SecretsNode
@@ -25,4 +37,28 @@ export type SettingsExplorerNode =
2537
| RepoVariablesNode
2638
| VariableNode
2739
| VariablesNode
28-
| EmptyNode;
40+
| EmptyNode
41+
| NoInternetConnectivityNode;
42+
43+
export type WorkflowsTreeNode =
44+
| AuthenticationNode
45+
| NoGitHubRepositoryNode
46+
| WorkflowNode
47+
| WorkflowRunNode
48+
| PreviousAttemptsNode
49+
| AttemptNode
50+
| WorkflowJobNode
51+
| NoWorkflowJobsNode
52+
| WorkflowStepNode
53+
| NoInternetConnectivityNode;
54+
55+
export type CurrentBranchTreeNode =
56+
| CurrentBranchRepoNode
57+
| WorkflowRunNode
58+
| PreviousAttemptsNode
59+
| AttemptNode
60+
| WorkflowJobNode
61+
| NoWorkflowJobsNode
62+
| WorkflowStepNode
63+
| NoRunForBranchNode
64+
| NoInternetConnectivityNode;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import * as vscode from "vscode";
2+
3+
/**
4+
* When no github.com remote can be found in the current workspace.
5+
*/
6+
export class NoInternetConnectivityNode extends vscode.TreeItem {
7+
constructor() {
8+
super("No internet connection");
9+
this.iconPath = new vscode.ThemeIcon("notebook-state-error");
10+
}
11+
}

src/treeViews/workflows.ts

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,19 @@
11
import * as vscode from "vscode";
22

3-
import {log, logDebug, logError} from "../log";
4-
import {getWorkflowNodes, WorkflowsRepoNode} from "./workflows/workflowsRepoNode";
5-
63
import {getGitHubContext} from "../git/repository";
4+
import {log, logDebug, logError} from "../log";
75
import {RunStore} from "../store/store";
86
import {AttemptNode} from "./shared/attemptNode";
97
import {AuthenticationNode} from "./shared/authenticationNode";
108
import {ErrorNode} from "./shared/errorNode";
11-
import {NoGitHubRepositoryNode} from "./shared/noGitHubRepositoryNode";
12-
import {NoWorkflowJobsNode} from "./shared/noWorkflowJobsNode";
139
import {PreviousAttemptsNode} from "./shared/previousAttemptsNode";
1410
import {WorkflowJobNode} from "./shared/workflowJobNode";
1511
import {WorkflowRunNode} from "./shared/workflowRunNode";
1612
import {WorkflowRunTreeDataProvider} from "./workflowRunTreeDataProvider";
1713
import {WorkflowNode} from "./workflows/workflowNode";
18-
import {WorkflowStepNode} from "./workflows/workflowStepNode";
19-
20-
type WorkflowsTreeNode =
21-
| AuthenticationNode
22-
| NoGitHubRepositoryNode
23-
| WorkflowNode
24-
| WorkflowRunNode
25-
| PreviousAttemptsNode
26-
| AttemptNode
27-
| WorkflowJobNode
28-
| NoWorkflowJobsNode
29-
| WorkflowStepNode;
14+
import {getWorkflowNodes, WorkflowsRepoNode} from "./workflows/workflowsRepoNode";
15+
import {WorkflowsTreeNode} from "./settings/types"
16+
import { NoInternetConnectivityNode } from "./shared/noInternetConnectivityNode";
3017

3118
export class WorkflowsTreeProvider
3219
extends WorkflowRunTreeDataProvider
@@ -59,8 +46,8 @@ export class WorkflowsTreeProvider
5946
try {
6047
const gitHubContext = await getGitHubContext();
6148
if (!gitHubContext) {
62-
logDebug("could not get github context");
63-
return [];
49+
logDebug("could not get github context for workflows");
50+
return [new NoInternetConnectivityNode()];
6451
}
6552

6653
if (gitHubContext.repos.length > 0) {

0 commit comments

Comments
 (0)