import { BreakpointObserver , Breakpoints } from '@angular/cdk/layout' ; import { Component , OnInit , ChangeDetectorRef } from '@angular/core' ; import { Store } from '@ngrx/store' ; import { SiteEntry , FavoritePaging , Pagination } from '@alfresco/js-api' ; import { ContentManagementService } from '../../services/content-management.service' ; import { AppExtensionService , AppHookService , ContentApiService } from '@alfresco/aca-shared' ; import { NavigateLibraryAction } from '@alfresco/aca-shared/store' ; import { PageComponent } from '../page.component' ; import { UserPreferencesService } from '@alfresco/adf-core' ; import { DocumentListPresetRef } from '@alfresco/adf-extensions' ; @ Component ( { templateUrl : './favorite-libraries.component.html' } ) export class FavoriteLibrariesComponent extends PageComponent implements OnInit { pagination : Pagination = new Pagination ( { skipCount : 0 , maxItems : 25 , totalItems : 0 } ) ; isLoading = false ; list : FavoritePaging ; isSmallScreen = false ; columns : DocumentListPresetRef [ ] = [ ] ; constructor ( content , store , extensions , private appHookService , private contentApiService , private breakpointObserver , private preferences , private changeDetectorRef ) { super ( store , extensions , content ) ; } ngOnInit ( ) { super . ngOnInit ( ) ; this . getList ( { maxItems : this . preferences . paginationSize } ) ; this . subscriptions = this . subscriptions . concat ( [ this . appHookService . libraryDeleted . subscribe ( ( ) => this . reloadList ( ) ) , this . appHookService . libraryUpdated . subscribe ( ( ) => this . reloadList ( ) ) , this . appHookService . libraryJoined . subscribe ( ( ) => this . reloadList ( ) ) , this . appHookService . libraryLeft . subscribe ( ( ) => this . reloadList ( ) ) , this . appHookService . favoriteLibraryToggle . subscribe ( ( ) => this . reloadList ( ) ) , this . breakpointObserver . observe ( [ Breakpoints . HandsetPortrait , Breakpoints . HandsetLandscape ] ) . subscribe ( ( result ) => { this . isSmallScreen = result . matches ; } ) ] ) ; this . columns = this . extensions . documentListPresets . favoriteLibraries || [ ] ; } navigateTo ( node ) { if ( node && node . entry && node . entry . guid ) { this . store . dispatch ( new NavigateLibraryAction ( node . entry . guid , 'favorite/libraries' ) ) ; } } handleNodeClick ( event ) { this . navigateTo ( ( event as CustomEvent ) . detail ?. node ) ; } onChangePageSize ( pagination ) { this . preferences . paginationSize = pagination . maxItems ; this . getList ( pagination ) ; } onChange ( pagination ) { this . getList ( pagination ) ; } private getList ( pagination ) { this . isLoading = true ; this . contentApiService . getFavoriteLibraries ( '-me-' , pagination ) . subscribe ( ( favoriteLibraries ) => { this . list = favoriteLibraries ; this . pagination = favoriteLibraries . list . pagination ; this . isLoading = false ; this . changeDetectorRef . detectChanges ( ) ; } , ( ) => { this . list = null ; this . pagination = null ; this . isLoading = false ; } ) ; } private reloadList ( ) { this . reload ( ) ; this . getList ( this . pagination ) ; } }