mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-09 18:03:21 +00:00
[ACS-8959] Introduce new takeUntilDestroyed operator where possible (#10388)
This commit is contained in:
@@ -17,14 +17,25 @@
|
||||
|
||||
import { ConfirmDialogComponent } from '@alfresco/adf-core';
|
||||
import { AlfrescoApiService } from '../services/alfresco-api.service';
|
||||
import { Component, Input, OnChanges, ViewEncapsulation, EventEmitter, Output, OnInit, OnDestroy, ViewChild } from '@angular/core';
|
||||
import { VersionsApi, Node, VersionEntry, NodesApi, NodeEntry, ContentApi, ContentPagingQuery } from '@alfresco/js-api';
|
||||
import {
|
||||
Component,
|
||||
DestroyRef,
|
||||
EventEmitter,
|
||||
inject,
|
||||
Input,
|
||||
OnChanges,
|
||||
OnInit,
|
||||
Output,
|
||||
ViewChild,
|
||||
ViewEncapsulation
|
||||
} from '@angular/core';
|
||||
import { ContentApi, ContentPagingQuery, Node, NodeEntry, NodesApi, VersionEntry, VersionsApi } from '@alfresco/js-api';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { ContentVersionService } from './content-version.service';
|
||||
import { ContentService } from '../common';
|
||||
import { InfiniteScrollDatasource } from '../infinite-scroll-datasource';
|
||||
import { from, Observable, Subject } from 'rxjs';
|
||||
import { map, take, takeUntil } from 'rxjs/operators';
|
||||
import { from, Observable } from 'rxjs';
|
||||
import { map, take } from 'rxjs/operators';
|
||||
import { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
||||
@@ -34,6 +45,7 @@ import { MatMenuModule } from '@angular/material/menu';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { VersionCompatibilityDirective } from '../version-compatibility';
|
||||
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||
|
||||
export class VersionListDataSource extends InfiniteScrollDatasource<VersionEntry> {
|
||||
constructor(private versionsApi: VersionsApi, private node: Node) {
|
||||
@@ -69,8 +81,7 @@ export class VersionListDataSource extends InfiniteScrollDatasource<VersionEntry
|
||||
encapsulation: ViewEncapsulation.None,
|
||||
host: { class: 'adf-version-list' }
|
||||
})
|
||||
export class VersionListComponent implements OnChanges, OnInit, OnDestroy {
|
||||
private onDestroy$ = new Subject<void>();
|
||||
export class VersionListComponent implements OnChanges, OnInit {
|
||||
private _contentApi: ContentApi;
|
||||
get contentApi(): ContentApi {
|
||||
this._contentApi = this._contentApi ?? new ContentApi(this.alfrescoApi.getInstance());
|
||||
@@ -132,6 +143,8 @@ export class VersionListComponent implements OnChanges, OnInit, OnDestroy {
|
||||
@ViewChild('viewport')
|
||||
viewport: CdkVirtualScrollViewport;
|
||||
|
||||
private readonly destroyRef = inject(DestroyRef);
|
||||
|
||||
constructor(
|
||||
private alfrescoApi: AlfrescoApiService,
|
||||
private contentService: ContentService,
|
||||
@@ -141,7 +154,7 @@ export class VersionListComponent implements OnChanges, OnInit, OnDestroy {
|
||||
|
||||
ngOnInit() {
|
||||
this.versionsDataSource = new VersionListDataSource(this.versionsApi, this.node);
|
||||
this.versionsDataSource.isLoading.pipe(takeUntil(this.onDestroy$)).subscribe((isLoading) => {
|
||||
this.versionsDataSource.isLoading.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((isLoading) => {
|
||||
this.isLoading = isLoading;
|
||||
this.latestVersion = this.versionsDataSource.firstItem;
|
||||
});
|
||||
@@ -153,10 +166,6 @@ export class VersionListComponent implements OnChanges, OnInit, OnDestroy {
|
||||
}
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
this.onDestroy$.next();
|
||||
this.onDestroy$.complete();
|
||||
}
|
||||
|
||||
canUpdate(): boolean {
|
||||
return this.contentService.hasAllowableOperations(this.node, 'update') && this.versionsDataSource.itemsCount > 1;
|
||||
@@ -188,7 +197,7 @@ export class VersionListComponent implements OnChanges, OnInit, OnDestroy {
|
||||
if (this.allowDownload) {
|
||||
this.contentVersionService
|
||||
.getVersionContentUrl(this.node.id, versionId, true)
|
||||
.pipe(takeUntil(this.onDestroy$))
|
||||
.pipe(takeUntilDestroyed(this.destroyRef))
|
||||
.subscribe((versionDownloadUrl) => this.downloadContent(versionDownloadUrl));
|
||||
}
|
||||
}
|
||||
@@ -207,7 +216,7 @@ export class VersionListComponent implements OnChanges, OnInit, OnDestroy {
|
||||
|
||||
dialogRef
|
||||
.afterClosed()
|
||||
.pipe(takeUntil(this.onDestroy$))
|
||||
.pipe(takeUntilDestroyed(this.destroyRef))
|
||||
.subscribe((result) => {
|
||||
if (result) {
|
||||
this.versionsApi.deleteVersion(this.node.id, versionId).then(() => this.onVersionDeleted(this.node));
|
||||
|
||||
@@ -15,10 +15,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewEncapsulation } from '@angular/core';
|
||||
import { Component, DestroyRef, EventEmitter, inject, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';
|
||||
import { Node, Version } from '@alfresco/js-api';
|
||||
import { Subject } from 'rxjs';
|
||||
import { takeUntil } from 'rxjs/operators';
|
||||
import { ContentService } from '../common/services/content.service';
|
||||
import { UploadService } from '../common/services/upload.service';
|
||||
import { FileUploadErrorEvent, FileUploadEvent } from '../common/events/file.event';
|
||||
@@ -30,6 +28,7 @@ import { MatFormFieldModule } from '@angular/material/form-field';
|
||||
import { MatInputModule } from '@angular/material/input';
|
||||
import { MatButtonModule } from '@angular/material/button';
|
||||
import { UploadVersionButtonComponent } from '../upload';
|
||||
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||
|
||||
@Component({
|
||||
selector: 'adf-version-upload',
|
||||
@@ -49,12 +48,11 @@ import { UploadVersionButtonComponent } from '../upload';
|
||||
encapsulation: ViewEncapsulation.None,
|
||||
host: { class: 'adf-version-upload' }
|
||||
})
|
||||
export class VersionUploadComponent implements OnInit, OnDestroy {
|
||||
export class VersionUploadComponent implements OnInit {
|
||||
semanticVersion: string = 'minor';
|
||||
comment: string;
|
||||
uploadVersion: boolean = false;
|
||||
disabled: boolean = false;
|
||||
onDestroy$ = new Subject<void>();
|
||||
majorVersion = '2.0';
|
||||
minorVersion = '1.1';
|
||||
|
||||
@@ -107,10 +105,12 @@ export class VersionUploadComponent implements OnInit, OnDestroy {
|
||||
@Output()
|
||||
uploadStarted = new EventEmitter<FileUploadEvent>();
|
||||
|
||||
private readonly destroyRef = inject(DestroyRef);
|
||||
|
||||
constructor(private contentService: ContentService, private uploadService: UploadService) {}
|
||||
|
||||
ngOnInit() {
|
||||
this.uploadService.fileUploadStarting.pipe(takeUntil(this.onDestroy$)).subscribe((event: FileUploadEvent) => {
|
||||
this.uploadService.fileUploadStarting.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event: FileUploadEvent) => {
|
||||
this.disabled = true;
|
||||
this.uploadStarted.emit(event);
|
||||
});
|
||||
@@ -146,11 +146,6 @@ export class VersionUploadComponent implements OnInit, OnDestroy {
|
||||
this.error.emit(event);
|
||||
}
|
||||
|
||||
ngOnDestroy() {
|
||||
this.onDestroy$.next(undefined);
|
||||
this.onDestroy$.complete();
|
||||
}
|
||||
|
||||
getNextMinorVersion(version: string): string {
|
||||
const { major, minor } = this.getParsedVersion(version);
|
||||
return `${major}.${minor + 1}`;
|
||||
|
||||
Reference in New Issue
Block a user