1- import { Component , OnInit } from '@angular/core' ;
1+ import { Component , OnDestroy , OnInit } from '@angular/core' ;
22
33import { Subscription } from 'rxjs' ;
44
55import { AuthService } from '@services/auth.service' ;
6+ import { FileService } from '@services/file.service' ;
67import { FolderService } from '@services/folder.service' ;
78
89import { Folder } from '@models/folder.model' ;
@@ -12,23 +13,38 @@ import { Folder } from '@models/folder.model';
1213 templateUrl : './home.component.html' ,
1314 styleUrls : [ './home.component.scss' ]
1415} )
15- export class HomeComponent implements OnInit {
16+ export class HomeComponent implements OnInit , OnDestroy {
1617 root : Folder ;
1718 folderCreatedSubscription : Subscription ;
19+ filesCreatedSubscription : Subscription ;
1820 constructor (
1921 private authService : AuthService ,
20- private folderService : FolderService
22+ private folderService : FolderService ,
23+ private fileService : FileService ,
2124 ) { }
2225
26+ ngOnDestroy ( ) : void {
27+ this . folderCreatedSubscription . unsubscribe ( ) ;
28+ this . filesCreatedSubscription . unsubscribe ( ) ;
29+ }
30+
2331 ngOnInit ( ) : void {
2432 this . root = this . authService . userActive . rootFolder ;
2533 this . folderCreatedSubscription = this . folderService . folderCreated . subscribe ( ( folder ) => {
2634 this . root . folders . push ( folder ) ;
2735 this . orderFolders ( ) ;
2836 } ) ;
37+ this . filesCreatedSubscription = this . fileService . filesCreated . subscribe ( ( files ) => {
38+ this . root . files . push ( ...files ) ;
39+ this . orderFiles ( ) ;
40+ } ) ;
2941 }
3042
3143 private orderFolders ( ) : void {
32- this . root . folders . sort ( ( a , b ) => a . name > b . name ? 1 : - 1 ) ;
44+ this . root . folders . sort ( ( a , b ) => a . name . toLowerCase ( ) > b . name . toLowerCase ( ) ? 1 : - 1 ) ;
45+ }
46+
47+ private orderFiles ( ) : void {
48+ this . root . files . sort ( ( a , b ) => a . name . toLowerCase ( ) > b . name . toLowerCase ( ) ? 1 : - 1 ) ;
3349 }
3450}
0 commit comments