diff --git a/apps/web/src/app/vault/individual-vault/vault-filter/components/vault-filter.component.ts b/apps/web/src/app/vault/individual-vault/vault-filter/components/vault-filter.component.ts index 09a7356c452..2f8a429e42e 100644 --- a/apps/web/src/app/vault/individual-vault/vault-filter/components/vault-filter.component.ts +++ b/apps/web/src/app/vault/individual-vault/vault-filter/components/vault-filter.component.ts @@ -68,6 +68,9 @@ export class VaultFilterComponent implements OnInit, OnDestroy { if (this.activeFilter.cipherType === CipherType.SecureNote) { return "searchSecureNote"; } + if (this.activeFilter.cipherType === CipherType.SshKey) { + return "searchSshKey"; + } if (this.activeFilter.selectedFolderNode?.node) { return "searchFolder"; } diff --git a/apps/web/src/app/vault/individual-vault/vault-filter/services/vault-filter.service.ts b/apps/web/src/app/vault/individual-vault/vault-filter/services/vault-filter.service.ts index 043ba2dcd2f..7310a6aecec 100644 --- a/apps/web/src/app/vault/individual-vault/vault-filter/services/vault-filter.service.ts +++ b/apps/web/src/app/vault/individual-vault/vault-filter/services/vault-filter.service.ts @@ -306,6 +306,12 @@ export class VaultFilterService implements VaultFilterServiceAbstraction { type: CipherType.SecureNote, icon: "bwi-sticky-note", }, + { + id: "sshKey", + name: this.i18nService.t("typeSshKey"), + type: CipherType.SshKey, + icon: "bwi-key", + }, ]; return this.buildTypeTree( diff --git a/apps/web/src/app/vault/individual-vault/vault-filter/shared/models/filter-function.ts b/apps/web/src/app/vault/individual-vault/vault-filter/shared/models/filter-function.ts index 4b038512581..a39918df4a7 100644 --- a/apps/web/src/app/vault/individual-vault/vault-filter/shared/models/filter-function.ts +++ b/apps/web/src/app/vault/individual-vault/vault-filter/shared/models/filter-function.ts @@ -23,6 +23,9 @@ export function createFilterFunction(filter: RoutedVaultFilterModel): FilterFunc if (filter.type === "note" && cipher.type !== CipherType.SecureNote) { return false; } + if (filter.type === "sshKey" && cipher.type !== CipherType.SshKey) { + return false; + } if (filter.type === "trash" && !cipher.isDeleted) { return false; } diff --git a/apps/web/src/app/vault/individual-vault/vault-filter/shared/models/routed-vault-filter.model.ts b/apps/web/src/app/vault/individual-vault/vault-filter/shared/models/routed-vault-filter.model.ts index 4f2659d6101..866ba1d9848 100644 --- a/apps/web/src/app/vault/individual-vault/vault-filter/shared/models/routed-vault-filter.model.ts +++ b/apps/web/src/app/vault/individual-vault/vault-filter/shared/models/routed-vault-filter.model.ts @@ -1,7 +1,16 @@ export const All = "all"; // TODO: Remove `All` when moving to vertical navigation. -const itemTypes = ["favorites", "login", "card", "identity", "note", "trash", All] as const; +const itemTypes = [ + "favorites", + "login", + "card", + "identity", + "note", + "sshKey", + "trash", + All, +] as const; export type RoutedVaultFilterItemType = (typeof itemTypes)[number];