From 2ed68ada6b1176c29ccec99ad7a17ae7785fe275 Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Tue, 12 Sep 2023 15:34:31 +0530 Subject: [PATCH] chore: stop "last edited by" badge flickering when editing a note --- .../src/javascripts/Hooks/useItemVaultInfo.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) 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 }