From 07fe2748145c978c4b0278fd7a4768655016d6b6 Mon Sep 17 00:00:00 2001 From: Andreas Coroiu Date: Thu, 4 May 2023 10:46:45 +0200 Subject: [PATCH] [PM-2014] feat: create new dialog --- .../create-credential-dialog.component.html | 11 +++++++ .../create-credential-dialog.component.ts | 29 +++++++++++++++++++ .../fido2-login-settings.component.html | 7 ++++- .../fido2-login-settings.component.ts | 22 +++++++++++++- .../fido2-login-settings.module.ts | 5 ++-- apps/web/src/locales/en/messages.json | 3 ++ 6 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 apps/web/src/app/settings/fido2-login-settings/create-credential-dialog/create-credential-dialog.component.html create mode 100644 apps/web/src/app/settings/fido2-login-settings/create-credential-dialog/create-credential-dialog.component.ts diff --git a/apps/web/src/app/settings/fido2-login-settings/create-credential-dialog/create-credential-dialog.component.html b/apps/web/src/app/settings/fido2-login-settings/create-credential-dialog/create-credential-dialog.component.html new file mode 100644 index 00000000000..b11448778b0 --- /dev/null +++ b/apps/web/src/app/settings/fido2-login-settings/create-credential-dialog/create-credential-dialog.component.html @@ -0,0 +1,11 @@ + + {{ "loginWithPasskey" | i18n }} + {{ "newPasskey" | i18n }} + + Enter you master password here + + + + + diff --git a/apps/web/src/app/settings/fido2-login-settings/create-credential-dialog/create-credential-dialog.component.ts b/apps/web/src/app/settings/fido2-login-settings/create-credential-dialog/create-credential-dialog.component.ts new file mode 100644 index 00000000000..177c0b91bc0 --- /dev/null +++ b/apps/web/src/app/settings/fido2-login-settings/create-credential-dialog/create-credential-dialog.component.ts @@ -0,0 +1,29 @@ +import { DialogConfig } from "@angular/cdk/dialog"; +import { Component } from "@angular/core"; + +import { DialogService } from "@bitwarden/components"; + +export enum CreateCredentialDialogResult { + Success, + Canceled, +} + +@Component({ + templateUrl: "create-credential-dialog.component.html", +}) +export class CreateCredentialDialogComponent {} + +/** + * Strongly typed helper to open a CreateCredentialDialog + * @param dialogService Instance of the dialog service that will be used to open the dialog + * @param config Configuration for the dialog + */ +export const openCreateCredentialDialog = ( + dialogService: DialogService, + config: DialogConfig +) => { + return dialogService.open( + CreateCredentialDialogComponent, + config + ); +}; diff --git a/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.component.html b/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.component.html index 50643b9e6b0..1dbcdcab2ed 100644 --- a/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.component.html +++ b/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.component.html @@ -6,6 +6,11 @@ {{ "learnMoreAboutPasswordless" | i18n }}

- diff --git a/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.component.ts b/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.component.ts index e328e0c60a7..7b05f56975e 100644 --- a/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.component.ts +++ b/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.component.ts @@ -1,7 +1,27 @@ import { Component } from "@angular/core"; +import { firstValueFrom } from "rxjs"; + +import { DialogService } from "@bitwarden/components"; + +import { + CreateCredentialDialogResult, + openCreateCredentialDialog, +} from "./create-credential-dialog/create-credential-dialog.component"; @Component({ selector: "app-fido2-login-settings", templateUrl: "fido2-login-settings.component.html", }) -export class Fido2LoginSettingsComponent {} +export class Fido2LoginSettingsComponent { + constructor(private dialogService: DialogService) {} + + protected async createCredential() { + const dialogRef = openCreateCredentialDialog(this.dialogService, {}); + + const result = await firstValueFrom(dialogRef.closed); + + if (result === CreateCredentialDialogResult.Success) { + /** Refresh */ + } + } +} diff --git a/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.module.ts b/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.module.ts index 620c4012a45..a1c47571e83 100644 --- a/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.module.ts +++ b/apps/web/src/app/settings/fido2-login-settings/fido2-login-settings.module.ts @@ -1,12 +1,13 @@ import { NgModule } from "@angular/core"; -import { SharedModule } from "../../shared"; +import { SharedModule } from "../../shared/shared.module"; +import { CreateCredentialDialogComponent } from "./create-credential-dialog/create-credential-dialog.component"; import { Fido2LoginSettingsComponent } from "./fido2-login-settings.component"; @NgModule({ imports: [SharedModule], - declarations: [Fido2LoginSettingsComponent], + declarations: [Fido2LoginSettingsComponent, CreateCredentialDialogComponent], exports: [Fido2LoginSettingsComponent], }) export class Fido2LoginSettingsModule {} diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json index d49fe1aa2c1..9b959f3751f 100644 --- a/apps/web/src/locales/en/messages.json +++ b/apps/web/src/locales/en/messages.json @@ -634,6 +634,9 @@ "enableLoginWithPasskey": { "message": "Turn on log in with passkey" }, + "newPasskey": { + "message": "New passkey" + }, "learnMoreAboutPasswordless": { "message": "Learn more about passwordless" },