Skip to content

Commit 9effae3

Browse files
refine the explorer
1 parent c99b38b commit 9effae3

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

src/commands/list.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export async function listProblems(): Promise<IProblem[]> {
3535
});
3636
}
3737
}
38-
return problems;
38+
return problems.reverse();
3939
} catch (error) {
4040
await promptForOpenOutputChannel("Failed to list problems. Please open the output channel for details", DialogType.error);
4141
return [];

src/leetCodeExplorer.ts

+42
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import * as path from "path";
44
import * as vscode from "vscode";
55
import * as list from "./commands/list";
6+
import { leetCodeManager } from "./leetCodeManager";
67

78
// tslint:disable:max-classes-per-file
89
export class LeetCodeNode {
@@ -46,6 +47,17 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
4647
}
4748

4849
public getTreeItem(element: LeetCodeNode): vscode.TreeItem | Thenable<vscode.TreeItem> {
50+
if (element.id === "notSignIn") {
51+
return {
52+
label: element.name,
53+
id: element.id,
54+
collapsibleState: vscode.TreeItemCollapsibleState.None,
55+
command: {
56+
command: "leetcode.signin",
57+
title: "Sign in to LeetCode",
58+
},
59+
};
60+
}
4961
return {
5062
label: element.isProblem ? `[${element.id}] ${element.name}` : element.name,
5163
id: element.id,
@@ -58,7 +70,22 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
5870
: "",
5971
};
6072
}
73+
6174
public getChildren(element?: LeetCodeNode | undefined): vscode.ProviderResult<LeetCodeNode[]> {
75+
if (!leetCodeManager.getUser()) {
76+
return [
77+
new LeetCodeNode(
78+
{
79+
solved: false,
80+
id: "notSignIn",
81+
name: "Sign in to LeetCode",
82+
difficulty: "",
83+
passRate: "",
84+
},
85+
false,
86+
),
87+
];
88+
}
6289
if (!element) {
6390
return new Promise(async (resolve: (res: LeetCodeNode[]) => void): Promise<void> => {
6491
await this.getProblemData();
@@ -110,6 +137,21 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
110137
),
111138
);
112139
}
140+
difficultynodes.sort((a: LeetCodeNode, b: LeetCodeNode): number => {
141+
function getValue(input: string): number {
142+
switch (input.toLowerCase()) {
143+
case "easy":
144+
return 1;
145+
case "medium":
146+
return 2;
147+
case "hard":
148+
return 3;
149+
default:
150+
return Number.MAX_SAFE_INTEGER;
151+
}
152+
}
153+
return getValue(a.name) - getValue(b.name);
154+
});
113155
return difficultynodes;
114156
}
115157

0 commit comments

Comments
 (0)