diff --git a/packages/services/src/Domain/SharedVaults/SharedVaultService.spec.ts b/packages/services/src/Domain/SharedVaults/SharedVaultService.spec.ts index d5da6bb8d..9ef46b5dc 100644 --- a/packages/services/src/Domain/SharedVaults/SharedVaultService.spec.ts +++ b/packages/services/src/Domain/SharedVaults/SharedVaultService.spec.ts @@ -15,6 +15,7 @@ import { ItemManagerInterface } from '../Item/ItemManagerInterface' import { SessionsClientInterface } from '../Session/SessionsClientInterface' import { ContactPublicKeySetInterface, TrustedContactInterface } from '@standardnotes/models' import { SyncLocalVaultsWithRemoteSharedVaults } from './UseCase/SyncLocalVaultsWithRemoteSharedVaults' +import { VaultUserServiceInterface } from '../VaultUser/VaultUserServiceInterface' describe('SharedVaultService', () => { let service: SharedVaultService @@ -27,6 +28,8 @@ describe('SharedVaultService', () => { const items = {} as jest.Mocked items.addObserver = jest.fn() + const vaultUsers = {} as jest.Mocked + const session = {} as jest.Mocked const getVault = {} as jest.Mocked const getOwnedVaults = {} as jest.Mocked @@ -48,6 +51,7 @@ describe('SharedVaultService', () => { service = new SharedVaultService( items, session, + vaultUsers, syncLocalVaultsWithRemoteSharedVaults, getVault, getOwnedVaults, diff --git a/packages/services/src/Domain/SharedVaults/SharedVaultService.ts b/packages/services/src/Domain/SharedVaults/SharedVaultService.ts index 055394825..e0cf6a5d9 100644 --- a/packages/services/src/Domain/SharedVaults/SharedVaultService.ts +++ b/packages/services/src/Domain/SharedVaults/SharedVaultService.ts @@ -33,6 +33,7 @@ import { HandleKeyPairChange } from '../Contacts/UseCase/HandleKeyPairChange' import { FindContact } from '../Contacts/UseCase/FindContact' import { GetOwnedSharedVaults } from './UseCase/GetOwnedSharedVaults' import { SyncLocalVaultsWithRemoteSharedVaults } from './UseCase/SyncLocalVaultsWithRemoteSharedVaults' +import { VaultUserServiceInterface } from '../VaultUser/VaultUserServiceInterface' export class SharedVaultService extends AbstractService @@ -41,6 +42,7 @@ export class SharedVaultService constructor( private items: ItemManagerInterface, private session: SessionsClientInterface, + private vaultUsers: VaultUserServiceInterface, private _syncLocalVaultsWithRemoteSharedVaults: SyncLocalVaultsWithRemoteSharedVaults, private _getVault: GetVault, private _getOwnedSharedVaults: GetOwnedSharedVaults, @@ -110,6 +112,10 @@ export class SharedVaultService } break } + case NotificationType.TYPES.UserRemovedFromSharedVault: { + this.vaultUsers.invalidateVaultUsersCache(event.eventPayload.props.sharedVaultUuid.value).catch(console.error) + break + } case NotificationType.TYPES.SharedVaultItemRemoved: { const item = this.items.findItem((event.eventPayload.props.itemUuid as Uuid).value) if (item) { diff --git a/packages/snjs/lib/Application/Dependencies/Dependencies.ts b/packages/snjs/lib/Application/Dependencies/Dependencies.ts index b54f0e9df..f3b21687d 100644 --- a/packages/snjs/lib/Application/Dependencies/Dependencies.ts +++ b/packages/snjs/lib/Application/Dependencies/Dependencies.ts @@ -916,6 +916,7 @@ export class Dependencies { return new SharedVaultService( this.get(TYPES.ItemManager), this.get(TYPES.SessionManager), + this.get(TYPES.VaultUserService), this.get(TYPES.SyncLocalVaultsWithRemoteSharedVaults), this.get(TYPES.GetVault), this.get(TYPES.GetOwnedSharedVaults),