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);