diff --git a/packages/web/src/javascripts/Hooks/useItemVaultInfo.ts b/packages/web/src/javascripts/Hooks/useItemVaultInfo.ts index 8ca99b401..833bd9a96 100644 --- a/packages/web/src/javascripts/Hooks/useItemVaultInfo.ts +++ b/packages/web/src/javascripts/Hooks/useItemVaultInfo.ts @@ -1,6 +1,7 @@ import { useApplication } from '@/Components/ApplicationProvider' import { DecryptedItemInterface, TrustedContactInterface, VaultListingInterface } from '@standardnotes/snjs' import useItem from './useItem' +import { useRef } from 'react' type ItemVaultInfo = { vault?: VaultListingInterface @@ -11,19 +12,21 @@ type ItemVaultInfo = { export const useItemVaultInfo = (item: DecryptedItemInterface): ItemVaultInfo => { const application = useApplication() - const info: ItemVaultInfo = { + const info = useRef({ vault: undefined, lastEditedByContact: undefined, - } + sharedByContact: undefined, + }) - info.vault = useItem(application.vaults.getItemVault(item)?.uuid) + info.current.vault = useItem(application.vaults.getItemVault(item)?.uuid) + + const lastEditedBy = application.sharedVaults.getItemLastEditedBy(item) + info.current.lastEditedByContact = lastEditedBy || info.current.lastEditedByContact + info.current.sharedByContact = application.sharedVaults.getItemSharedBy(item) if (!application.featuresController.isEntitledToVaults()) { - return info + return info.current } - info.lastEditedByContact = application.sharedVaults.getItemLastEditedBy(item) - info.sharedByContact = application.sharedVaults.getItemSharedBy(item) - - return info + return info.current }