diff --git a/apps/web/src/app/vault/components/vault-items/vault-cipher-row.component.html b/apps/web/src/app/vault/components/vault-items/vault-cipher-row.component.html index 20b87bfc036..006bf9ff197 100644 --- a/apps/web/src/app/vault/components/vault-items/vault-cipher-row.component.html +++ b/apps/web/src/app/vault/components/vault-items/vault-cipher-row.component.html @@ -93,73 +93,74 @@ - - - - - - - - - {{ "launch" | i18n }} - - - - - + @if (!decryptionFailure && !hideMenu) { - - - - + appStopProp + appA11yTitle="{{ 'options' | i18n }}" + > + + + + + + + + {{ "launch" | i18n }} + + + + + + + + + + + } diff --git a/apps/web/src/app/vault/components/vault-items/vault-cipher-row.component.ts b/apps/web/src/app/vault/components/vault-items/vault-cipher-row.component.ts index cb4d8ad70b1..32037493e36 100644 --- a/apps/web/src/app/vault/components/vault-items/vault-cipher-row.component.ts +++ b/apps/web/src/app/vault/components/vault-items/vault-cipher-row.component.ts @@ -189,8 +189,14 @@ export class VaultCipherRowComponent implements OnInit return this.i18nService.t("noAccess"); } + protected get showCopyUsername(): boolean { + const usernameCopy = CipherViewLikeUtils.hasCopyableValue(this.cipher, "username"); + return this.isNotDeletedLoginCipher && usernameCopy; + } + protected get showCopyPassword(): boolean { - return this.isNotDeletedLoginCipher && this.cipher.viewPassword; + const passwordCopy = CipherViewLikeUtils.hasCopyableValue(this.cipher, "password"); + return this.isNotDeletedLoginCipher && this.cipher.viewPassword && passwordCopy; } protected get showCopyTotp(): boolean { @@ -201,16 +207,20 @@ export class VaultCipherRowComponent implements OnInit return this.isNotDeletedLoginCipher && this.canLaunch; } - protected get disableMenu() { + protected get isDeletedCanRestore(): boolean { + return CipherViewLikeUtils.isDeleted(this.cipher) && this.canRestoreCipher; + } + + protected get hideMenu() { return !( - this.isNotDeletedLoginCipher || + this.isDeletedCanRestore || + this.showCopyUsername || this.showCopyPassword || this.showCopyTotp || this.showLaunchUri || this.showAttachments || this.showClone || - this.canEditCipher || - (CipherViewLikeUtils.isDeleted(this.cipher) && this.canRestoreCipher) + this.canEditCipher ); }