1
0
mirror of https://github.com/bitwarden/browser synced 2026-01-05 01:53:55 +00:00
Files
browser/apps/desktop/src/services/desktop-cipher-form-generator.service.ts
Jordan Aasen b589951c90 [PM-18520] - Update desktop cipher forms to use the same UI as web app and extension - (#13992)
* WIP - cipher form refactor

* cipher clone

* cipher clone

* finalize item view and form changes

* fix tests

* hide changes behind feature flag

* set flag to false

* create vault items v2. add button selector

* revert change to flag and vault items

* add attachments

* revert change to tsconfig

* move module

* fix modules

* cleanup

* fix import

* fix import

* fix import

* remove showForm

* update feature flag

* wip - cleanup

* fix up services

* cleanup

* fix type errors

* fix lint errors

* add dialog component

* revert changes to menu

* revert changes to menu

* fix vault-items-v2

* set feature flag to FALSE

* add missing i18n keys. fix collection state

* remove generator. update modules. bug fix

* fix restricted imports

* mark method as deprecated. add uri arg back

* fix shared.module

* fix shared.module

* fix shared.module

* add uri

* check and prompt for premium when opening attachments dialog

* move VaultItemDialogResult back

* fix import in spec file

* update copy functions

* fix MP reprompt issue
2025-04-23 11:13:44 -07:00

33 lines
1.1 KiB
TypeScript

import { inject, Injectable } from "@angular/core";
import { firstValueFrom } from "rxjs";
import { DialogService } from "@bitwarden/components";
import { CipherFormGenerationService } from "@bitwarden/vault";
import { CredentialGeneratorDialogComponent } from "../vault/app/vault/credential-generator-dialog.component";
@Injectable()
export class DesktopCredentialGenerationService implements CipherFormGenerationService {
private dialogService = inject(DialogService);
async generatePassword(): Promise<string> {
return await this.generateCredential("password");
}
async generateUsername(uri: string): Promise<string> {
return await this.generateCredential("username", uri);
}
async generateCredential(type: "password" | "username", uri?: string): Promise<string> {
const dialogRef = CredentialGeneratorDialogComponent.open(this.dialogService, { type, uri });
const result = await firstValueFrom(dialogRef.closed);
if (!result || result.action === "canceled" || !result.generatedValue) {
return "";
}
return result.generatedValue;
}
}