mirror of
https://github.com/bitwarden/browser
synced 2025-12-12 14:23:32 +00:00
* Moved saving of SSO email outside of browser/desktop code * Clarified comments. * Tests * Refactored login component services to manage state * Fixed input on login component * Fixed tests * Linting * Moved web setting in state into web override * updated tests * Fixed typing. * Fixed type safety issues. * Added comments and renamed for clarity. * Removed method parameters that weren't used * Added clarifying comments * Added more comments. * Removed test that is not necessary on base * Test cleanup * More comments. * Linting * Fixed test. * Fixed base URL * Fixed typechecking. * Type checking * Moved setting of email state to default service * Added comments. * Consolidated SSO URL formatting * Updated comment * Fixed reference. * Fixed missing parameter. * Initialized service. * Added comments * Added initialization of new service * Made email optional due to CLI. * Fixed comment on handleSsoClick. * Added SSO email persistence to v1 component. * Updated login email service. * Updated setting of remember me * Removed unnecessary input checking and rearranged functions * Fixed name * Added handling of Remember Email to old component for passkey click * Updated v1 component to persist the email on Continue click * Fix merge conflicts. * Merge conflicts in login component. * Persisted login email on v1 browser component. * Merge conflicts * fix(snap) [PM-17464][PM-17463][PM-15587] Allow Snap to use custom callback protocol * Removed Snap from custom protocol workaround * Fixed tests. * Updated case numbers on test * Resolved PR feedback. * PM-11502 - LoginEmailSvcAbstraction - mark methods as abstract to satisfy strict ts. * Removed test * Changed to persist on leaving fields instead of button click. * Fixed type checking. --------- Co-authored-by: Bernd Schoolmann <mail@quexten.com> Co-authored-by: Jared Snider <jsnider@bitwarden.com> Co-authored-by: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com>
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import { Observable } from "rxjs";
|
|
|
|
export abstract class LoginEmailServiceAbstraction {
|
|
/**
|
|
* An observable that monitors the loginEmail.
|
|
* The loginEmail is the email that is being used in the current login process.
|
|
*/
|
|
abstract loginEmail$: Observable<string | null>;
|
|
/**
|
|
* An observable that monitors the remembered email.
|
|
* This will return null if an account is being added.
|
|
*/
|
|
abstract rememberedEmail$: Observable<string | null>;
|
|
/**
|
|
* Sets the loginEmail in memory.
|
|
* The loginEmail is the email that is being used in the current login process.
|
|
* Consumed through `loginEmail$` observable.
|
|
*/
|
|
abstract setLoginEmail: (email: string) => Promise<void>;
|
|
/**
|
|
* Persist the user's choice of whether to remember their email on subsequent login attempts.
|
|
* Consumed through `rememberedEmail$` observable.
|
|
*/
|
|
abstract setRememberedEmailChoice: (email: string, remember: boolean) => Promise<void>;
|
|
/**
|
|
* Clears the in-progress login email, to be used after a successful login.
|
|
*/
|
|
abstract clearLoginEmail: () => Promise<void>;
|
|
|
|
/**
|
|
* Clears the remembered email.
|
|
*/
|
|
abstract clearRememberedEmail: () => Promise<void>;
|
|
}
|