From df1c04f8fcceb45a776eea277043ba9c7f397c55 Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Wed, 9 Aug 2023 18:54:51 +0530 Subject: [PATCH] chore: only show non-invited contacts in vault invite dialog --- .../src/Domain/VaultInvite/VaultInviteService.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/services/src/Domain/VaultInvite/VaultInviteService.ts b/packages/services/src/Domain/VaultInvite/VaultInviteService.ts index a48779de4..8fb12b899 100644 --- a/packages/services/src/Domain/VaultInvite/VaultInviteService.ts +++ b/packages/services/src/Domain/VaultInvite/VaultInviteService.ts @@ -26,6 +26,7 @@ import { ClientDisplayableError, SharedVaultInviteServerHash, SharedVaultUserServerHash, + isClientDisplayableError, isErrorResponse, } from '@standardnotes/responses' import { AbstractService } from './../Service/AbstractService' @@ -162,9 +163,16 @@ export class VaultInviteService if (contacts.isFailed()) { return [] } + + const outboundInvites = await this.getOutboundInvites(sharedVault) + if (isClientDisplayableError(outboundInvites)) { + return [] + } + return contacts.getValue().filter((contact) => { const isContactAlreadyInVault = users.some((user) => user.user_uuid === contact.contactUuid) - return !isContactAlreadyInVault + const isContactAlreadyInvited = outboundInvites.some((invite) => invite.user_uuid === contact.contactUuid) + return !isContactAlreadyInVault && !isContactAlreadyInvited }) }