diff --git a/apps/browser/src/auth/popup/extension-anon-layout-wrapper/extension-anon-layout-wrapper-data.service.ts b/apps/browser/src/auth/popup/extension-anon-layout-wrapper/extension-anon-layout-wrapper-data.service.ts index 1b844d4b2c..e6f764f57e 100644 --- a/apps/browser/src/auth/popup/extension-anon-layout-wrapper/extension-anon-layout-wrapper-data.service.ts +++ b/apps/browser/src/auth/popup/extension-anon-layout-wrapper/extension-anon-layout-wrapper-data.service.ts @@ -1,9 +1,6 @@ -import { Observable, Subject } from "rxjs"; +import { BehaviorSubject, Observable } from "rxjs"; -import { - AnonLayoutWrapperDataService, - DefaultAnonLayoutWrapperDataService, -} from "@bitwarden/auth/angular"; +import { AnonLayoutWrapperData, AnonLayoutWrapperDataService , DefaultAnonLayoutWrapperDataService } from "@bitwarden/auth/angular"; import { ExtensionAnonLayoutWrapperData } from "./extension-anon-layout-wrapper.component"; @@ -11,13 +8,20 @@ export class ExtensionAnonLayoutWrapperDataService extends DefaultAnonLayoutWrapperDataService implements AnonLayoutWrapperDataService { - protected override anonLayoutWrapperDataSubject = new Subject(); + protected anonLayoutWrapperDataSubject = new BehaviorSubject( + null, + ); + anonLayoutWrapperDataObservable$ = this.anonLayoutWrapperDataSubject.asObservable(); - override setAnonLayoutWrapperData(data: ExtensionAnonLayoutWrapperData): void { + anonLayoutWrapperData$(): Observable { + return this.anonLayoutWrapperDataObservable$; + } + + setAnonLayoutWrapperData(data: ExtensionAnonLayoutWrapperData): void { this.anonLayoutWrapperDataSubject.next(data); } - override anonLayoutWrapperData$(): Observable { - return this.anonLayoutWrapperDataSubject.asObservable(); + getAnonLayoutWrapperData$(): Observable { + return this.anonLayoutWrapperDataObservable$; } } diff --git a/apps/browser/src/auth/popup/extension-anon-layout-wrapper/extension-anon-layout-wrapper.component.ts b/apps/browser/src/auth/popup/extension-anon-layout-wrapper/extension-anon-layout-wrapper.component.ts index 9d7644878d..e2144e5112 100644 --- a/apps/browser/src/auth/popup/extension-anon-layout-wrapper/extension-anon-layout-wrapper.component.ts +++ b/apps/browser/src/auth/popup/extension-anon-layout-wrapper/extension-anon-layout-wrapper.component.ts @@ -3,11 +3,7 @@ import { Component, OnDestroy, OnInit } from "@angular/core"; import { ActivatedRoute, Data, NavigationEnd, Router, RouterModule } from "@angular/router"; import { Subject, filter, switchMap, takeUntil, tap } from "rxjs"; -import { - AnonLayoutComponent, - AnonLayoutWrapperData, - AnonLayoutWrapperDataService, -} from "@bitwarden/auth/angular"; +import { AnonLayoutComponent, AnonLayoutWrapperData } from "@bitwarden/auth/angular"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { Icon, IconModule, Translation } from "@bitwarden/components"; @@ -16,6 +12,7 @@ import { PopupHeaderComponent } from "../../../platform/popup/layout/popup-heade import { PopupPageComponent } from "../../../platform/popup/layout/popup-page.component"; import { CurrentAccountComponent } from "../account-switching/current-account.component"; +import { ExtensionAnonLayoutWrapperDataService } from "./extension-anon-layout-wrapper-data.service"; import { ExtensionBitwardenLogo } from "./extension-bitwarden-logo.icon"; export interface ExtensionAnonLayoutWrapperData extends AnonLayoutWrapperData { @@ -58,7 +55,7 @@ export class ExtensionAnonLayoutWrapperComponent implements OnInit, OnDestroy { private router: Router, private route: ActivatedRoute, private i18nService: I18nService, - private extensionAnonLayoutWrapperDataService: AnonLayoutWrapperDataService, + private extensionAnonLayoutWrapperDataService: ExtensionAnonLayoutWrapperDataService, ) {} async ngOnInit(): Promise { diff --git a/apps/browser/src/auth/popup/login/extension-login-component.service.ts b/apps/browser/src/auth/popup/login/extension-login-component.service.ts index 00de3d14d8..325399f3d2 100644 --- a/apps/browser/src/auth/popup/login/extension-login-component.service.ts +++ b/apps/browser/src/auth/popup/login/extension-login-component.service.ts @@ -37,7 +37,9 @@ export class ExtensionLoginComponentService return flagEnabled("showPasswordless"); } - showBackButton(): void { - this.extensionAnonLayoutWrapperDataService.setAnonLayoutWrapperData({ showBackButton: true }); + showBackButton(show: boolean): void { + this.extensionAnonLayoutWrapperDataService.setAnonLayoutWrapperData({ + showBackButton: show, + }); } } diff --git a/libs/auth/src/angular/login/default-login-component.service.ts b/libs/auth/src/angular/login/default-login-component.service.ts index 17b182f24b..524acddbc8 100644 --- a/libs/auth/src/angular/login/default-login-component.service.ts +++ b/libs/auth/src/angular/login/default-login-component.service.ts @@ -93,7 +93,7 @@ export class DefaultLoginComponentService implements LoginComponentService { /** * No-op implementation of showBackButton */ - showBackButton(): void { + showBackButton(show: boolean): void { return; } } diff --git a/libs/auth/src/angular/login/login-component.service.ts b/libs/auth/src/angular/login/login-component.service.ts index eb55c92d61..d563324905 100644 --- a/libs/auth/src/angular/login/login-component.service.ts +++ b/libs/auth/src/angular/login/login-component.service.ts @@ -42,5 +42,5 @@ export abstract class LoginComponentService { /** * Shows the back button. */ - showBackButton: () => void; + showBackButton: (show: boolean) => void; } diff --git a/libs/auth/src/angular/login/login.component.ts b/libs/auth/src/angular/login/login.component.ts index 8b60a5d20b..03b6ca1765 100644 --- a/libs/auth/src/angular/login/login.component.ts +++ b/libs/auth/src/angular/login/login.component.ts @@ -327,6 +327,8 @@ export class LoginComponent implements OnInit, OnDestroy { pageSubtitle: this.emailFormControl.value, pageIcon: this.Icons.WaveIcon, }); + + this.loginComponentService.showBackButton(true); } } @@ -348,8 +350,6 @@ export class LoginComponent implements OnInit, OnDestroy { this.masterPasswordInputRef?.nativeElement?.focus(); }); } - - this.loginComponentService.showBackButton(); } }