mirror of
https://github.com/bitwarden/browser.git
synced 2025-02-21 02:11:54 +01:00
Rework ExtensionAnonLayoutWrapperDataService to use BehaviorSubject
This commit is contained in:
parent
808d31c790
commit
8889ed3d3c
@ -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<ExtensionAnonLayoutWrapperData>();
|
||||
protected anonLayoutWrapperDataSubject = new BehaviorSubject<ExtensionAnonLayoutWrapperData>(
|
||||
null,
|
||||
);
|
||||
anonLayoutWrapperDataObservable$ = this.anonLayoutWrapperDataSubject.asObservable();
|
||||
|
||||
override setAnonLayoutWrapperData(data: ExtensionAnonLayoutWrapperData): void {
|
||||
anonLayoutWrapperData$(): Observable<AnonLayoutWrapperData> {
|
||||
return this.anonLayoutWrapperDataObservable$;
|
||||
}
|
||||
|
||||
setAnonLayoutWrapperData(data: ExtensionAnonLayoutWrapperData): void {
|
||||
this.anonLayoutWrapperDataSubject.next(data);
|
||||
}
|
||||
|
||||
override anonLayoutWrapperData$(): Observable<ExtensionAnonLayoutWrapperData> {
|
||||
return this.anonLayoutWrapperDataSubject.asObservable();
|
||||
getAnonLayoutWrapperData$(): Observable<ExtensionAnonLayoutWrapperData> {
|
||||
return this.anonLayoutWrapperDataObservable$;
|
||||
}
|
||||
}
|
||||
|
@ -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<void> {
|
||||
|
@ -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,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ export class DefaultLoginComponentService implements LoginComponentService {
|
||||
/**
|
||||
* No-op implementation of showBackButton
|
||||
*/
|
||||
showBackButton(): void {
|
||||
showBackButton(show: boolean): void {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -42,5 +42,5 @@ export abstract class LoginComponentService {
|
||||
/**
|
||||
* Shows the back button.
|
||||
*/
|
||||
showBackButton: () => void;
|
||||
showBackButton: (show: boolean) => void;
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user