From 28e8f8f3640ab1fe7756468c2bf87d4c86ae22b4 Mon Sep 17 00:00:00 2001 From: Daniel James Smith <2670567+djsmith85@users.noreply.github.com> Date: Fri, 7 Jun 2024 15:17:00 +0200 Subject: [PATCH] [PM-7240] Create new export component [UI changes] (#9285) * Move/replace submit and userVerification logic from web into the BaseExportComponent Add "@bitwarden/auth" as dependency to the vault-export-ui package New submit logic also checks for password-encrypted exports which will be need for future UI updates on browser and desktop * Move/replace submit and userVerification logic from web into the BaseExportComponent Add "@bitwarden/auth" as dependency to the vault-export-ui package New submit logic also checks for password-encrypted exports which will be need for future UI updates on browser and desktop * Create export-browser-v2 component Copy existing `export-browser`-component Add `popup-page` and -`header` and -`footer` Add missing imports as page is marked as standalone Route to new page when feature flag enabled * Remove duplicate verifyUser methods --------- Co-authored-by: Daniel James Smith --- apps/browser/src/popup/app-routing.module.ts | 6 +-- .../export/export-browser-v2.component.html | 27 +++++++++++++ .../export/export-browser-v2.component.ts | 40 +++++++++++++++++++ 3 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 apps/browser/src/tools/popup/settings/export/export-browser-v2.component.html create mode 100644 apps/browser/src/tools/popup/settings/export/export-browser-v2.component.ts diff --git a/apps/browser/src/popup/app-routing.module.ts b/apps/browser/src/popup/app-routing.module.ts index 934bf0759a..97008ab96d 100644 --- a/apps/browser/src/popup/app-routing.module.ts +++ b/apps/browser/src/popup/app-routing.module.ts @@ -40,6 +40,7 @@ import { AboutPageV2Component } from "../tools/popup/settings/about-page/about-p import { AboutPageComponent } from "../tools/popup/settings/about-page/about-page.component"; import { MoreFromBitwardenPageV2Component } from "../tools/popup/settings/about-page/more-from-bitwarden-page-v2.component"; import { MoreFromBitwardenPageComponent } from "../tools/popup/settings/about-page/more-from-bitwarden-page.component"; +import { ExportBrowserV2Component } from "../tools/popup/settings/export/export-browser-v2.component"; import { ExportBrowserComponent } from "../tools/popup/settings/export/export-browser.component"; import { ImportBrowserV2Component } from "../tools/popup/settings/import/import-browser-v2.component"; import { ImportBrowserComponent } from "../tools/popup/settings/import/import-browser.component"; @@ -243,12 +244,11 @@ const routes: Routes = [ canActivate: [AuthGuard], data: { state: "import" }, }), - { + ...extensionRefreshSwap(ExportBrowserComponent, ExportBrowserV2Component, { path: "export", - component: ExportBrowserComponent, canActivate: [AuthGuard], data: { state: "export" }, - }, + }), { path: "autofill", component: AutofillComponent, diff --git a/apps/browser/src/tools/popup/settings/export/export-browser-v2.component.html b/apps/browser/src/tools/popup/settings/export/export-browser-v2.component.html new file mode 100644 index 0000000000..9ad6ed3683 --- /dev/null +++ b/apps/browser/src/tools/popup/settings/export/export-browser-v2.component.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + diff --git a/apps/browser/src/tools/popup/settings/export/export-browser-v2.component.ts b/apps/browser/src/tools/popup/settings/export/export-browser-v2.component.ts new file mode 100644 index 0000000000..cbb66cbcf5 --- /dev/null +++ b/apps/browser/src/tools/popup/settings/export/export-browser-v2.component.ts @@ -0,0 +1,40 @@ +import { CommonModule } from "@angular/common"; +import { Component } from "@angular/core"; +import { Router, RouterLink } from "@angular/router"; + +import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { AsyncActionsModule, ButtonModule, DialogModule } from "@bitwarden/components"; +import { ExportComponent } from "@bitwarden/vault-export-ui"; + +import { PopOutComponent } from "../../../../platform/popup/components/pop-out.component"; +import { PopupFooterComponent } from "../../../../platform/popup/layout/popup-footer.component"; +import { PopupHeaderComponent } from "../../../../platform/popup/layout/popup-header.component"; +import { PopupPageComponent } from "../../../../platform/popup/layout/popup-page.component"; + +@Component({ + templateUrl: "export-browser-v2.component.html", + standalone: true, + imports: [ + CommonModule, + RouterLink, + JslibModule, + DialogModule, + AsyncActionsModule, + ButtonModule, + ExportComponent, + PopupPageComponent, + PopupFooterComponent, + PopupHeaderComponent, + PopOutComponent, + ], +}) +export class ExportBrowserV2Component { + protected disabled = false; + protected loading = false; + + constructor(private router: Router) {} + + protected async onSuccessfulExport(organizationId: string): Promise { + await this.router.navigate(["/vault-settings"]); + } +}