33import * as path from "path" ;
44import * as vscode from "vscode" ;
55import * as list from "./commands/list" ;
6+ import { leetCodeManager } from "./leetCodeManager" ;
67
78// tslint:disable:max-classes-per-file
89export 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