File

projects/prestations-ng/src/foehn-page/foehn-page.service.ts

Index

Properties
Methods

Constructor

constructor()

Methods

foehnPageObservable
foehnPageObservable()
Returns : Observable<string>
isUserCategoryVisible
isUserCategoryVisible(isFirstPage: boolean, isLastPage: boolean, isUserCategoryEnabled: boolean, isInitialStep: boolean, isUserNeverConnected: boolean, backendResponse: FormPostResponse<any>, isCurrentRouteDefined: boolean)
Parameters :
Name Type Optional
isFirstPage boolean No
isLastPage boolean No
isUserCategoryEnabled boolean No
isInitialStep boolean No
isUserNeverConnected boolean No
backendResponse FormPostResponse<any> No
isCurrentRouteDefined boolean No
Returns : boolean
onEtapeIdChange
onEtapeIdChange()
Returns : Observable<string>
requestFormSave
requestFormSave(displaySuccessMessage: boolean)
Parameters :
Name Type Optional Default value
displaySuccessMessage boolean No true
Returns : void
saveFormRequest
saveFormRequest()
Returns : Observable<boolean>
setCurrentEtapeId
setCurrentEtapeId(etapeId: string)
Parameters :
Name Type Optional
etapeId string No
Returns : void
setPageTitle
setPageTitle(title: string)
Parameters :
Name Type Optional
title string No
Returns : void

Properties

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)
        );
    }
}

results matching ""

    No results matching ""