chore: correctly refresh vault info badge

This commit is contained in:
Aman Harwara
2023-09-12 00:02:01 +05:30
parent ada155a8c9
commit 53785c7100
3 changed files with 12 additions and 18 deletions

View File

@@ -243,7 +243,12 @@ export class VaultService
}
getItemVault(item: DecryptedItemInterface): VaultListingInterface | undefined {
if (this.items.isTemplateItem(item)) {
return undefined
}
const latestItem = this.items.findItem(item.uuid)
if (!latestItem) {
throw new Error('Cannot find latest version of item to get vault for')
}

View File

@@ -1,8 +1,8 @@
import { FunctionComponent } from 'react'
import { useApplication } from '../ApplicationProvider'
import { DecryptedItemInterface, classNames } from '@standardnotes/snjs'
import VaultNameBadge from '../Vaults/VaultNameBadge'
import SharedByContactBadge from '../Vaults/SharedByContactBadge'
import { useItemVaultInfo } from '@/Hooks/useItemVaultInfo'
type Props = {
item: DecryptedItemInterface
@@ -10,23 +10,12 @@ type Props = {
}
const ListItemVaultInfo: FunctionComponent<Props> = ({ item, className }) => {
const application = useApplication()
const { vault, sharedByContact } = useItemVaultInfo(item)
if (!application.featuresController.isEntitledToVaults()) {
return null
}
if (application.items.isTemplateItem(item)) {
return null
}
const vault = application.vaults.getItemVault(item)
if (!vault) {
return null
}
const sharedByContact = application.sharedVaults.getItemSharedBy(item)
return (
<div className={classNames('flex flex-wrap items-center gap-2', className)}>
<VaultNameBadge vault={vault} />

View File

@@ -1,9 +1,11 @@
import { useApplication } from '@/Components/ApplicationProvider'
import { DecryptedItemInterface, TrustedContactInterface, VaultListingInterface } from '@standardnotes/snjs'
import useItem from './useItem'
type ItemVaultInfo = {
vault?: VaultListingInterface
lastEditedByContact?: TrustedContactInterface
sharedByContact?: TrustedContactInterface
}
export const useItemVaultInfo = (item: DecryptedItemInterface): ItemVaultInfo => {
@@ -14,16 +16,14 @@ export const useItemVaultInfo = (item: DecryptedItemInterface): ItemVaultInfo =>
lastEditedByContact: undefined,
}
info.vault = useItem(application.vaults.getItemVault(item)?.uuid)
if (!application.featuresController.isEntitledToVaults()) {
return info
}
if (application.items.isTemplateItem(item)) {
return info
}
info.vault = application.vaults.getItemVault(item)
info.lastEditedByContact = application.sharedVaults.getItemLastEditedBy(item)
info.sharedByContact = application.sharedVaults.getItemSharedBy(item)
return info
}