From 66f432d6e034af1227507147cf0cbc3e4456878d Mon Sep 17 00:00:00 2001 From: Nick Krantz <125900171+nick-livefront@users.noreply.github.com> Date: Thu, 11 Jul 2024 17:32:53 -0500 Subject: [PATCH] add fallback for navigating the user back when the browser is in a popout (#10024) --- .../add-edit/add-edit-v2.component.html | 9 ++++++-- .../add-edit/add-edit-v2.component.ts | 23 ++++++++++++++++--- .../attachments/attachments-v2.component.html | 7 +++++- .../attachments-v2.component.spec.ts | 1 + .../attachments/attachments-v2.component.ts | 18 ++++++++++++++- 5 files changed, 51 insertions(+), 7 deletions(-) diff --git a/apps/browser/src/vault/popup/components/vault-v2/add-edit/add-edit-v2.component.html b/apps/browser/src/vault/popup/components/vault-v2/add-edit/add-edit-v2.component.html index 4d8461a57c3..0ae2f0af01f 100644 --- a/apps/browser/src/vault/popup/components/vault-v2/add-edit/add-edit-v2.component.html +++ b/apps/browser/src/vault/popup/components/vault-v2/add-edit/add-edit-v2.component.html @@ -1,11 +1,16 @@ - + - + diff --git a/apps/browser/src/vault/popup/components/vault-v2/attachments/attachments-v2.component.spec.ts b/apps/browser/src/vault/popup/components/vault-v2/attachments/attachments-v2.component.spec.ts index 0f09d12db9f..342042c95f3 100644 --- a/apps/browser/src/vault/popup/components/vault-v2/attachments/attachments-v2.component.spec.ts +++ b/apps/browser/src/vault/popup/components/vault-v2/attachments/attachments-v2.component.spec.ts @@ -26,6 +26,7 @@ import { CipherAttachmentsComponent } from "./cipher-attachments/cipher-attachme }) class MockPopupHeaderComponent { @Input() pageTitle: string; + @Input() backAction: () => void; } @Component({ diff --git a/apps/browser/src/vault/popup/components/vault-v2/attachments/attachments-v2.component.ts b/apps/browser/src/vault/popup/components/vault-v2/attachments/attachments-v2.component.ts index da0def529c2..20e553ca748 100644 --- a/apps/browser/src/vault/popup/components/vault-v2/attachments/attachments-v2.component.ts +++ b/apps/browser/src/vault/popup/components/vault-v2/attachments/attachments-v2.component.ts @@ -1,4 +1,4 @@ -import { CommonModule } from "@angular/common"; +import { CommonModule, Location } from "@angular/common"; import { Component } from "@angular/core"; import { takeUntilDestroyed } from "@angular/core/rxjs-interop"; import { ActivatedRoute, Router } from "@angular/router"; @@ -41,6 +41,7 @@ export class AttachmentsV2Component { constructor( private router: Router, private cipherService: CipherService, + private location: Location, route: ActivatedRoute, ) { route.queryParams.pipe(takeUntilDestroyed(), first()).subscribe(({ cipherId }) => { @@ -48,6 +49,21 @@ export class AttachmentsV2Component { }); } + /** + * Navigates to previous view or edit-cipher path + * depending on the history length. + * + * This can happen when history is lost due to the extension being + * forced into a popout window. + */ + async handleBackButton() { + if (history.length === 1) { + await this.navigateToEditScreen(); + } else { + this.location.back(); + } + } + /** Navigate the user back to the edit screen after uploading an attachment */ async navigateToEditScreen() { const cipherDomain = await this.cipherService.get(this.cipherId);