import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { DeepLinkingService } from '@core/services/deep-linking.service'; import { SpinnerService } from '@core/services/spinner.service'; import { TokenService } from '@core/services/token/token.service'; import { BlackbaudSsoRedirectResolver } from '../resolvers/blackbaud-sso-redirect.resolver'; @Component({ selector: 'gc-blackbaud-sso-redirect', templateUrl: './blackbaud-sso-redirect.component.html', styleUrls: ['./blackbaud-sso-redirect.component.scss'] }) export class BlackbaudSsoRedirectComponent implements OnInit { errorSigningIn = false; constructor ( private tokenService: TokenService, private deepLinkingService: DeepLinkingService, private spinnerService: SpinnerService, private activatedRoute: ActivatedRoute, private blackbaudSsoRedirectResolver: BlackbaudSsoRedirectResolver ) { } async ngOnInit () { if (!this.tokenService.getIsLoggedIn()) { this.spinnerService.startSpinner(); const needsRedirect = this.tokenService.handlePlatformDomainTransfer(); if (needsRedirect) { return; } const error = await this.tokenService.platformAdminSsoExchange(); if (error) { this.errorSigningIn = true; } else { this.navigateToHome(); } this.spinnerService.stopSpinner(); } else { this.navigateToHome(); } } navigateToHome () { this.deepLinkingService.attemptDeepLink('platform/home'); } async tryAgain () { this.spinnerService.startSpinner(); await this.blackbaudSsoRedirectResolver.resolve(this.activatedRoute.snapshot); this.spinnerService.stopSpinner(); } }