From a56bd2b3e4480a5424dea40c65475f80e57a9c88 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Mon, 13 Feb 2023 13:33:03 -0500 Subject: [PATCH] cleanup header actions module --- .../header-actions.component.ts | 44 +++++++++++++++---- .../header-actions/header-actions.module.ts | 18 +------- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/projects/aca-content/src/lib/components/header-actions/header-actions.component.ts b/projects/aca-content/src/lib/components/header-actions/header-actions.component.ts index bbfcc5383..0a0f6a718 100644 --- a/projects/aca-content/src/lib/components/header-actions/header-actions.component.ts +++ b/projects/aca-content/src/lib/components/header-actions/header-actions.component.ts @@ -23,12 +23,14 @@ * along with Alfresco. If not, see . */ -import { Component, OnDestroy, ViewEncapsulation } from '@angular/core'; +import { Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core'; import { Router } from '@angular/router'; import { Store } from '@ngrx/store'; -import { ContentManagementService } from '../../services/content-management.service'; -import { AppExtensionService, PageComponent } from '@alfresco/aca-shared'; +import { AppExtensionService } from '@alfresco/aca-shared'; import { SetCurrentFolderAction, AppStore } from '@alfresco/aca-shared/store'; +import { ContentActionRef } from '@alfresco/adf-extensions'; +import { takeUntil } from 'rxjs/operators'; +import { Subject } from 'rxjs'; @Component({ selector: 'aca-header-actions', @@ -36,14 +38,38 @@ import { SetCurrentFolderAction, AppStore } from '@alfresco/aca-shared/store'; styleUrls: ['./header-actions.component.scss'], encapsulation: ViewEncapsulation.None }) -export class HeaderActionsComponent extends PageComponent implements OnDestroy { - constructor(private router: Router, store: Store, content: ContentManagementService, extensions: AppExtensionService) { - super(store, extensions, content); +export class HeaderActionsComponent implements OnInit, OnDestroy { + private onDestroy$ = new Subject(); + + createActions: Array = []; + uploadActions: Array = []; + + constructor(private router: Router, private store: Store, private extensions: AppExtensionService) {} + + ngOnInit(): void { + this.extensions + .getCreateActions() + .pipe(takeUntil(this.onDestroy$)) + .subscribe((actions) => { + this.createActions = actions; + }); + + this.extensions + .getUploadActions() + .pipe(takeUntil(this.onDestroy$)) + .subscribe((actions) => { + this.uploadActions = actions; + }); } ngOnDestroy() { + this.onDestroy$.next(true); + this.onDestroy$.complete(); this.store.dispatch(new SetCurrentFolderAction(null)); - super.ngOnDestroy(); + } + + trackByActionId(_: number, action: ContentActionRef) { + return action.id; } private isPersonalFilesRoute(): boolean { @@ -59,11 +85,11 @@ export class HeaderActionsComponent extends PageComponent implements OnDestroy { } canShowCreateButton(): boolean { - return this.isPersonalFilesRoute() || this.isFavoriteLibrariesRoute() || this.isLibrariesRoute(); + return this.createActions.length > 0 && (this.isPersonalFilesRoute() || this.isFavoriteLibrariesRoute() || this.isLibrariesRoute()); } canShowUploadButton(): boolean { - return this.isPersonalFilesRoute(); + return this.uploadActions.length > 0 && this.isPersonalFilesRoute(); } canShowSearchSeparator(): boolean { diff --git a/projects/aca-content/src/lib/components/header-actions/header-actions.module.ts b/projects/aca-content/src/lib/components/header-actions/header-actions.module.ts index 0ee61d2c9..6073b30c2 100644 --- a/projects/aca-content/src/lib/components/header-actions/header-actions.module.ts +++ b/projects/aca-content/src/lib/components/header-actions/header-actions.module.ts @@ -26,29 +26,13 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { CoreModule } from '@alfresco/adf-core'; -import { ContentModule } from '@alfresco/adf-content-services'; -import { AppCommonModule } from '../common/common.module'; import { AppToolbarModule } from '../toolbar/toolbar.module'; -import { DirectivesModule } from '../../directives/directives.module'; -import { ContextMenuModule } from '../context-menu/context-menu.module'; import { AppSearchInputModule } from '../search/search-input.module'; import { HeaderActionsComponent } from './header-actions.component'; import { MainActionModule } from '../main-action/main-action.module'; -import { PageLayoutModule } from '@alfresco/aca-shared'; @NgModule({ - imports: [ - CommonModule, - CoreModule.forChild(), - ContentModule.forChild(), - DirectivesModule, - AppCommonModule, - AppToolbarModule, - ContextMenuModule, - PageLayoutModule, - AppSearchInputModule, - MainActionModule - ], + imports: [CommonModule, CoreModule.forChild(), AppToolbarModule, AppSearchInputModule, MainActionModule], declarations: [HeaderActionsComponent], exports: [HeaderActionsComponent] })