Fix cli and extension status
Signed-off-by: Sanjula Ganepola <sanjulagane@gmail.com>
This commit is contained in:
@@ -1,17 +1,17 @@
|
||||
import { ThemeIcon, TreeItem, TreeItemCollapsibleState, Uri } from "vscode";
|
||||
import { Component } from "../../componentManager";
|
||||
import { CliStatus, Component, ExtensionStatus } from "../../componentManager";
|
||||
import { GithubLocalActionsTreeItem } from "../githubLocalActionsTreeItem";
|
||||
|
||||
export default class ComponentTreeItem extends TreeItem implements GithubLocalActionsTreeItem {
|
||||
static contextValue = 'githubLocalActions.component';
|
||||
component: Component;
|
||||
component: Component<CliStatus | ExtensionStatus>;
|
||||
|
||||
constructor(component: Component) {
|
||||
constructor(component: Component<CliStatus | ExtensionStatus>) {
|
||||
super(component.name, TreeItemCollapsibleState.None);
|
||||
this.component = component;
|
||||
this.contextValue = ComponentTreeItem.contextValue;
|
||||
this.iconPath = new ThemeIcon(component.icon);
|
||||
this.resourceUri = Uri.parse(`${ComponentTreeItem.contextValue}:${component.name}?status=${component.status}`, true);
|
||||
this.resourceUri = Uri.parse(`${ComponentTreeItem.contextValue}:${component.name}?status=${component.status}&required=${component.required}`, true);
|
||||
this.tooltip = `Name: ${component.name}\n` +
|
||||
`Status: ${component.status}\n` +
|
||||
(component.message ? `Message: ${component.message}` : ``);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { CancellationToken, commands, EventEmitter, ExtensionContext, TreeDataProvider, TreeItem } from "vscode";
|
||||
import { CancellationToken, commands, EventEmitter, ExtensionContext, extensions, TreeDataProvider, TreeItem } from "vscode";
|
||||
import { ComponentManager } from "../../componentManager";
|
||||
import { GithubLocalActionsTreeItem } from "../githubLocalActionsTreeItem";
|
||||
import ComponentTreeItem from "./component";
|
||||
@@ -9,7 +9,11 @@ export default class ComponentsTreeDataProvider implements TreeDataProvider<Gith
|
||||
static VIEW_ID = 'components';
|
||||
|
||||
constructor(context: ExtensionContext) {
|
||||
context.subscriptions.push(
|
||||
extensions.onDidChange(e => {
|
||||
this.refresh();
|
||||
});
|
||||
|
||||
context.subscriptions.push(
|
||||
commands.registerCommand('githubLocalActions.refreshComponents', async () => {
|
||||
this.refresh();
|
||||
})
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { CancellationToken, Event, FileDecoration, FileDecorationProvider, ProviderResult, ThemeColor, Uri } from "vscode";
|
||||
import { ComponentStatus } from "../componentManager";
|
||||
import { CliStatus, ExtensionStatus } from "../componentManager";
|
||||
import ComponentTreeItem from "./components/component";
|
||||
import WorkflowTreeItem from "./workflows/workflow";
|
||||
|
||||
@@ -9,25 +9,29 @@ export class DecorationProvider implements FileDecorationProvider {
|
||||
const params = new URLSearchParams(uri.query);
|
||||
|
||||
if (uri.scheme === ComponentTreeItem.contextValue) {
|
||||
if (params.get('status') === ComponentStatus.Enabled) {
|
||||
const status = params.get('status');
|
||||
const required = params.get('required');
|
||||
|
||||
if (status === CliStatus.Installed || status === ExtensionStatus.Activated) {
|
||||
return {
|
||||
badge: '✅',
|
||||
color: new ThemeColor('GitHubLocalActions.green')
|
||||
};
|
||||
} else if (params.get('status') === ComponentStatus.Warning) {
|
||||
} else if (!required && (status === CliStatus.NotInstalled || status === ExtensionStatus.NotActivated)) {
|
||||
return {
|
||||
badge: '⚠️',
|
||||
color: new ThemeColor('GitHubLocalActions.yellow')
|
||||
};
|
||||
} else if (params.get('status') === ComponentStatus.Disabled) {
|
||||
} else if (required && (status === CliStatus.NotInstalled || status === ExtensionStatus.NotActivated)) {
|
||||
return {
|
||||
badge: '❌',
|
||||
color: new ThemeColor('GitHubLocalActions.red')
|
||||
};
|
||||
}
|
||||
} else if (uri.scheme === WorkflowTreeItem.contextValue) {
|
||||
// TODO: Fix color
|
||||
if (params.get('error')) {
|
||||
const error = params.get('error');
|
||||
|
||||
if (error) {
|
||||
return {
|
||||
badge: '❌',
|
||||
color: new ThemeColor('GitHubLocalActions.red')
|
||||
|
||||
Reference in New Issue
Block a user