mirror of
https://github.com/bitwarden/browser
synced 2025-12-17 08:43:33 +00:00
[PM-5264] Implement StateProvider in LoginEmailService (#7662)
* setup StateProvider in LoginService * replace implementations * replace implementation * remove stateService * change storage location for web to 'disk-local' * implement migrate() method of Migrator * add RememberedEmailMigrator to migrate.ts * add rollback * add tests * replace implementation * replace implementation * add StateProvider to Desktop services * rename LoginService to RememberEmailService * update state definition * rename file * rename to storedEmail * rename service to EmailService to avoid confusion * add jsdocs * refactor login.component.ts * fix typos * fix test * rename to LoginEmailService * update factory * more renaming * remove duplicate logic and rename method * convert storedEmail to observable * refactor to remove setStoredEmail() method * move service to libs/auth/common * address floating promises * remove comment * remove unnecessary deps in service registration
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
export * from "./pin-crypto.service.abstraction";
|
||||
export * from "./login-email.service";
|
||||
export * from "./login-strategy.service";
|
||||
export * from "./user-decryption-options.service.abstraction";
|
||||
export * from "./auth-request.service.abstraction";
|
||||
|
||||
38
libs/auth/src/common/abstractions/login-email.service.ts
Normal file
38
libs/auth/src/common/abstractions/login-email.service.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { Observable } from "rxjs";
|
||||
|
||||
export abstract class LoginEmailServiceAbstraction {
|
||||
/**
|
||||
* An observable that monitors the storedEmail
|
||||
*/
|
||||
storedEmail$: Observable<string>;
|
||||
/**
|
||||
* Gets the current email being used in the login process.
|
||||
* @returns A string of the email.
|
||||
*/
|
||||
getEmail: () => string;
|
||||
/**
|
||||
* Sets the current email being used in the login process.
|
||||
* @param email The email to be set.
|
||||
*/
|
||||
setEmail: (email: string) => void;
|
||||
/**
|
||||
* Gets whether or not the email should be stored on disk.
|
||||
* @returns A boolean stating whether or not the email should be stored on disk.
|
||||
*/
|
||||
getRememberEmail: () => boolean;
|
||||
/**
|
||||
* Sets whether or not the email should be stored on disk.
|
||||
*/
|
||||
setRememberEmail: (value: boolean) => void;
|
||||
/**
|
||||
* Sets the email and rememberEmail properties to null.
|
||||
*/
|
||||
clearValues: () => void;
|
||||
/**
|
||||
* - If rememberEmail is true, sets the storedEmail on disk to the current email.
|
||||
* - If rememberEmail is false, sets the storedEmail on disk to null.
|
||||
* - Then sets the email and rememberEmail properties to null.
|
||||
* @returns A promise that resolves once the email settings are saved.
|
||||
*/
|
||||
saveEmailSettings: () => Promise<void>;
|
||||
}
|
||||
Reference in New Issue
Block a user