1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-27 01:53:23 +00:00

fix(auth): [PM-15987] improve email/master password entry back/forward navigation

- Fix back button behavior in Safari to reliably return to email entry screen
- Enable browser forward button after navigating back to email entry
- Move email validation to input event instead of blur
- Add continueClicked function to differentiate user clicks vs browser navigation
- Add email verification gate to SSO route
- Enhance master password validation logic
- Fix strict typing errors

Resolves PM-15987
This commit is contained in:
Alec Rippberger
2025-01-06 13:01:56 -06:00
committed by GitHub
parent ea10c29024
commit 26f086368b
2 changed files with 103 additions and 76 deletions

View File

@@ -20,8 +20,8 @@
formControlName="email"
bitInput
appAutofocus
(blur)="onEmailBlur($event)"
(keyup.enter)="continue()"
(input)="onEmailInput($event)"
(keyup.enter)="continuePressed()"
/>
</bit-form-field>
@@ -33,7 +33,7 @@
<div class="tw-grid tw-gap-3">
<!-- Continue button -->
<button type="button" bitButton block buttonType="primary" (click)="continue()">
<button type="button" bitButton block buttonType="primary" (click)="continuePressed()">
{{ "continue" | i18n }}
</button>
@@ -54,33 +54,10 @@
</ng-container>
<!-- Button to Login with SSO -->
<ng-container *ngIf="clientType === ClientType.Web">
<a
bitButton
block
buttonType="secondary"
routerLink="/sso"
[queryParams]="formGroup.value.email ? { email: formGroup.value.email } : {}"
(click)="saveEmailSettings()"
>
<i class="bwi bwi-provider tw-mr-1"></i>
{{ "useSingleSignOn" | i18n }}
</a>
</ng-container>
<ng-container *ngIf="clientType === ClientType.Browser || clientType === ClientType.Desktop">
<button
type="button"
bitButton
block
buttonType="secondary"
(click)="
launchSsoBrowserWindow(clientType === ClientType.Browser ? 'browser' : 'desktop')
"
>
<i class="bwi bwi-provider tw-mr-1"></i>
{{ "useSingleSignOn" | i18n }}
</button>
</ng-container>
<button type="button" bitButton block buttonType="secondary" (click)="handleSsoClick()">
<i class="bwi bwi-provider tw-mr-1"></i>
{{ "useSingleSignOn" | i18n }}
</button>
</div>
</div>