libs/core/web-components/src/back-link-adapter/back-link-utils.service.ts

Metadata

Index

Methods

Constructor

constructor()

Methods

isBackLinkFeatureActiveForActions
isBackLinkFeatureActiveForActions(isLastPage: boolean)
Parameters :
Name Type Optional
isLastPage boolean No
Returns : boolean
isBackLinkFeatureActiveForStage
isBackLinkFeatureActiveForStage(hideBackLink: boolean | undefined)
Parameters :
Name Type Optional
hideBackLink boolean | undefined No
Returns : boolean
import { CHANNEL, CHANNEL_TOKEN, IS_A1 } from '@allianz/taly-core';
import { Injectable, inject } from '@angular/core';
import { BackLinkAdapterService } from './back-link-adapter.service';

@Injectable({
  providedIn: 'root'
})
export class BackLinkUtilsService {
  private backLinkAdapterService = inject(BackLinkAdapterService, { optional: true });
  private isA1 = inject(IS_A1);
  private isRetailChannel: boolean;

  constructor() {
    const channel = inject<CHANNEL>(CHANNEL_TOKEN);

    this.isRetailChannel = channel === CHANNEL.RETAIL;
  }

  isBackLinkFeatureActiveForStage(hideBackLink: boolean | undefined): boolean {
    return Boolean(
      (this.isA1 || this.isRetailChannel) &&
        !hideBackLink &&
        this.backLinkAdapterService?.backLinkData?.stageLinkLabel
    );
  }

  isBackLinkFeatureActiveForActions(isLastPage: boolean): boolean {
    return Boolean((this.isA1 || this.isRetailChannel) && isLastPage && this.hasNextButtonLabel());
  }

  private hasNextButtonLabel(): boolean {
    const nextButtonLabel = this.backLinkAdapterService?.backLinkData?.nextButtonLabel;
    if (Array.isArray(nextButtonLabel) && nextButtonLabel.length > 0) {
      return true;
    }

    return Boolean(nextButtonLabel);
  }
}

results matching ""

    No results matching ""