projects/prestations-ng/src/foehn-page/foehn-page.service.ts
Properties |
|
Methods |
constructor()
|
foehnPageObservable |
foehnPageObservable()
|
Returns :
Observable<string>
|
isUserCategoryVisible | ||||||||||||||||||||||||
isUserCategoryVisible(isFirstPage: boolean, isLastPage: boolean, isUserCategoryEnabled: boolean, isInitialStep: boolean, isUserNeverConnected: boolean, backendResponse: FormPostResponse<any>, isCurrentRouteDefined: boolean)
|
||||||||||||||||||||||||
Parameters :
Returns :
boolean
|
onEtapeIdChange |
onEtapeIdChange()
|
Returns :
Observable<string>
|
requestFormSave | ||||||||
requestFormSave(displaySuccessMessage: boolean)
|
||||||||
Parameters :
Returns :
void
|
saveFormRequest |
saveFormRequest()
|
Returns :
Observable<boolean>
|
setCurrentEtapeId | ||||||
setCurrentEtapeId(etapeId: string)
|
||||||
Parameters :
Returns :
void
|
setPageTitle | ||||||
setPageTitle(title: string)
|
||||||
Parameters :
Returns :
void
|
Private _currentEtapeId |
Type : Subject<string>
|
Default value : new BehaviorSubject<string>(
null
)
|
Private _foehnPageSubject |
Type : Subject<string>
|
Default value : new Subject<string>()
|
Private _saveFormRequestSubject |
Type : Subject<boolean>
|
Default value : new Subject<boolean>()
|
Private currentEtapeIdObs |
Type : Observable<string>
|
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { filter } from 'rxjs/operators';
import { FormPostResponse } from '../form-post-response';
import { ActionStatut, GesdemStatutUtils } from '../gesdem/gesdem-statut-utils';
@Injectable({
providedIn: 'root'
})
export class FoehnPageService {
private _foehnPageSubject: Subject<string> = new Subject<string>();
private _saveFormRequestSubject: Subject<boolean> = new Subject<boolean>();
private _currentEtapeId: Subject<string> = new BehaviorSubject<string>(
null
);
private currentEtapeIdObs: Observable<string>;
constructor() {
this.currentEtapeIdObs = this._currentEtapeId.asObservable();
}
foehnPageObservable(): Observable<string> {
return this._foehnPageSubject.asObservable();
}
setPageTitle(title: string): void {
this._foehnPageSubject.next(title);
}
requestFormSave(displaySuccessMessage: boolean = true): void {
this._saveFormRequestSubject.next(displaySuccessMessage);
}
saveFormRequest(): Observable<boolean> {
return this._saveFormRequestSubject.asObservable();
}
setCurrentEtapeId(etapeId: string): void {
this._currentEtapeId.next(etapeId);
}
onEtapeIdChange(): Observable<string> {
return this._currentEtapeId
.asObservable()
.pipe(filter(etapeInfo => !!etapeInfo));
}
isUserCategoryVisible(
isFirstPage: boolean,
isLastPage: boolean,
isUserCategoryEnabled: boolean,
isInitialStep: boolean,
isUserNeverConnected: boolean,
// eslint-disable-next-line @typescript-eslint/no-explicit-any
backendResponse: FormPostResponse<any>,
isCurrentRouteDefined: boolean
): boolean {
const isStatusFinal =
backendResponse &&
GesdemStatutUtils.isFinal(
ActionStatut[backendResponse.meta.statut as ActionStatut]
);
return (
isCurrentRouteDefined &&
!isStatusFinal &&
!isUserNeverConnected &&
isUserCategoryEnabled &&
isInitialStep &&
(isFirstPage || isLastPage)
);
}
}