1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-10 05:30:01 +00:00

Add error handling for missing session or other errors

This commit is contained in:
Jeffrey Holland
2025-03-24 14:53:55 +01:00
parent e1efb6ecae
commit a9a151b1b9
2 changed files with 37 additions and 6 deletions

View File

@@ -803,6 +803,12 @@
"unexpectedError": {
"message": "An unexpected error has occurred."
},
"unexpectedErrorShort": {
"message": "Unexpected error"
},
"closeThisBitwardenWindow": {
"message": "Close this Bitwarden window and try again."
},
"itemInformation": {
"message": "Item information"
},
@@ -3592,6 +3598,12 @@
"saveNewPasskey": {
"message": "Save as new login"
},
"unableToSavePasskey": {
"message": "Unable to save passkey"
},
"closeBitwarden": {
"message": "Close Bitwarden"
},
"allowScreenshots": {
"message": "Allow screen capture"
},

View File

@@ -9,7 +9,7 @@ import { AccountService } from "@bitwarden/common/auth/abstractions/account.serv
import { DomainSettingsService } from "@bitwarden/common/autofill/services/domain-settings.service";
import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service";
import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view";
import {
import { DialogService ,
BadgeModule,
ButtonModule,
DialogModule,
@@ -59,6 +59,7 @@ export class Fido2CreateComponent implements OnInit {
private readonly fido2UserInterfaceService: DesktopFido2UserInterfaceService,
private readonly accountService: AccountService,
private readonly cipherService: CipherService,
private readonly dialogService: DialogService,
private readonly domainSettingsService: DomainSettingsService,
private readonly router: Router,
) {}
@@ -101,19 +102,37 @@ export class Fido2CreateComponent implements OnInit {
try {
// Retrieve the current UI session to control the flow
if (!this.session) {
// todo: handle error
throw new Error("No session found");
const confirmed = await this.dialogService.openSimpleDialog({
title: { key: "unexpectedErrorShort" },
content: { key: "closeThisBitwardenWindow" },
type: "danger",
acceptButtonText: { key: "closeBitwarden" },
cancelButtonText: null,
});
if (confirmed) {
await this.closeModal();
}
} else {
this.session.notifyConfirmCreateCredential(true);
}
this.session.notifyConfirmCreateCredential(true);
// Not sure this clean up should happen here or in session.
// The session currently toggles modal on and send us here
// But if this route is somehow opened outside of session we want to make sure we clean up?
await this.router.navigate(["/"]);
await this.desktopSettingsService.setModalMode(false);
} catch {
// TODO: Handle error appropriately
const confirmed = await this.dialogService.openSimpleDialog({
title: { key: "unableToSavePasskey" },
content: { key: "closeThisBitwardenWindow" },
type: "danger",
acceptButtonText: { key: "closeBitwarden" },
cancelButtonText: null,
});
if (confirmed) {
await this.closeModal();
}
}
}