diff --git a/apps/mina-sidor-fa/src/app/pages/start/start.component.html b/apps/mina-sidor-fa/src/app/pages/start/start.component.html index a5b4808..e67bdc5 100644 --- a/apps/mina-sidor-fa/src/app/pages/start/start.component.html +++ b/apps/mina-sidor-fa/src/app/pages/start/start.component.html @@ -26,8 +26,9 @@

Målet är helt enkelt att underlätta ditt dagliga arbete!

-
- +
+ +
@@ -45,6 +46,3 @@ - - - diff --git a/apps/mina-sidor-fa/src/app/pages/start/start.component.ts b/apps/mina-sidor-fa/src/app/pages/start/start.component.ts index 2a01d44..1a9efd3 100644 --- a/apps/mina-sidor-fa/src/app/pages/start/start.component.ts +++ b/apps/mina-sidor-fa/src/app/pages/start/start.component.ts @@ -1,4 +1,6 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { Feature } from '@msfa-enums/feature.enum'; +import { environment } from '@msfa-environment'; import { News } from '@msfa-models/news.model'; import { Role } from '@msfa-models/role.model'; import { UserService } from '@msfa-services/api/user.service'; @@ -13,6 +15,7 @@ import { StartService } from './start.service'; changeDetection: ChangeDetectionStrategy.OnPush, }) export class StartComponent { + private _activeFeatures: Feature[] = environment.activeFeatures; userFullName$: Observable = this.userService.user$.pipe( filter(user => !!user), map(userName => userName.fullName) @@ -26,4 +29,8 @@ export class StartComponent { isAuthorizedUser(userRoles: Role[]): boolean { return !!userRoles.length; } + + get newsVisible(): boolean { + return this._activeFeatures.includes(Feature.NEWS); + } } diff --git a/apps/mina-sidor-fa/src/app/pages/start/start.service.ts b/apps/mina-sidor-fa/src/app/pages/start/start.service.ts index fe9128a..4768355 100644 --- a/apps/mina-sidor-fa/src/app/pages/start/start.service.ts +++ b/apps/mina-sidor-fa/src/app/pages/start/start.service.ts @@ -2,7 +2,7 @@ import { Injectable } from '@angular/core'; import { mapNewsResponseToNews, News } from '@msfa-models/news.model'; import { NewsApiService } from '@msfa-services/api/news.api.service'; import { BehaviorSubject, Observable } from 'rxjs'; -import { map } from 'rxjs/operators'; +import { catchError, map } from 'rxjs/operators'; @Injectable() export class StartService { @@ -18,6 +18,10 @@ export class StartService { map(response => { this._newsLoading$.next(false); return mapNewsResponseToNews(response); + }), + catchError(error => { + this._newsLoading$.next(false); + throw error; }) ); } diff --git a/apps/mina-sidor-fa/src/app/shared/services/api/news.api.service.ts b/apps/mina-sidor-fa/src/app/shared/services/api/news.api.service.ts index b11fe1d..68f0771 100644 --- a/apps/mina-sidor-fa/src/app/shared/services/api/news.api.service.ts +++ b/apps/mina-sidor-fa/src/app/shared/services/api/news.api.service.ts @@ -5,7 +5,7 @@ import { environment } from '@msfa-environment'; import { NewsResponse } from '@msfa-models/api/news.response.model'; import { CustomError } from '@msfa-models/error/custom-error'; import { ErrorService } from '@msfa-services/error.service'; -import { BehaviorSubject, Observable } from 'rxjs'; +import { Observable } from 'rxjs'; import { catchError, map } from 'rxjs/operators'; @Injectable({ @@ -13,14 +13,10 @@ import { catchError, map } from 'rxjs/operators'; }) export class NewsApiService { private _apiBaseUrl = `${environment.api.url}/confluence/nyheter`; - private _newsLoading$ = new BehaviorSubject(false); - public newsLoading$: Observable = this._newsLoading$.asObservable(); constructor(private http: HttpClient, private errorService: ErrorService) {} public fetchNews$(): Observable { - this._newsLoading$.next(true); - return this.http.get<{ data: NewsResponse }>(this._apiBaseUrl).pipe( map(({ data }) => data), catchError((error: Error) => {