3
3
import * as path from "path" ;
4
4
import * as vscode from "vscode" ;
5
5
import * as list from "./commands/list" ;
6
+ import { leetCodeManager } from "./leetCodeManager" ;
6
7
7
8
// tslint:disable:max-classes-per-file
8
9
export class LeetCodeNode {
@@ -46,6 +47,17 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
46
47
}
47
48
48
49
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
+ }
49
61
return {
50
62
label : element . isProblem ? `[${ element . id } ] ${ element . name } ` : element . name ,
51
63
id : element . id ,
@@ -58,7 +70,22 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
58
70
: "" ,
59
71
} ;
60
72
}
73
+
61
74
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
+ }
62
89
if ( ! element ) {
63
90
return new Promise ( async ( resolve : ( res : LeetCodeNode [ ] ) => void ) : Promise < void > => {
64
91
await this . getProblemData ( ) ;
@@ -110,6 +137,21 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
110
137
) ,
111
138
) ;
112
139
}
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
+ } ) ;
113
155
return difficultynodes ;
114
156
}
115
157
0 commit comments