From 734a5ceb3d04088743d72babcb9b05e6142043f6 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 7 Jun 2018 11:19:26 +0200 Subject: Fix account/channel pages route subscription --- client/src/app/+accounts/accounts.component.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'client/src/app/+accounts/accounts.component.ts') diff --git a/client/src/app/+accounts/accounts.component.ts b/client/src/app/+accounts/accounts.component.ts index 24bde61ce..2a6856c10 100644 --- a/client/src/app/+accounts/accounts.component.ts +++ b/client/src/app/+accounts/accounts.component.ts @@ -3,7 +3,8 @@ import { ActivatedRoute } from '@angular/router' import { AccountService } from '@app/shared/account/account.service' import { Account } from '@app/shared/account/account.model' import { RestExtractor } from '@app/shared' -import { catchError } from 'rxjs/operators' +import { catchError, switchMap, distinctUntilChanged, map } from 'rxjs/operators' +import { Subscription } from 'rxjs' @Component({ templateUrl: './accounts.component.html', @@ -12,6 +13,8 @@ import { catchError } from 'rxjs/operators' export class AccountsComponent implements OnInit { account: Account + private routeSub: Subscription + constructor ( private route: ActivatedRoute, private accountService: AccountService, @@ -19,10 +22,17 @@ export class AccountsComponent implements OnInit { ) {} ngOnInit () { - const accountId = this.route.snapshot.params['accountId'] + this.routeSub = this.route.params + .pipe( + map(params => params[ 'accountId' ]), + distinctUntilChanged(), + switchMap(accountId => this.accountService.getAccount(accountId)), + catchError(err => this.restExtractor.redirectTo404IfNotFound(err, [ 400, 404 ])) + ) + .subscribe(account => this.account = account) + } - this.accountService.getAccount(accountId) - .pipe(catchError(err => this.restExtractor.redirectTo404IfNotFound(err, [ 400, 404 ]))) - .subscribe(account => this.account = account) + ngOnDestroy () { + if (this.routeSub) this.routeSub.unsubscribe() } } -- cgit v1.2.3