chore: correctly refresh vault info badge
This commit is contained in:
@@ -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')
|
||||
}
|
||||
|
||||
@@ -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} />
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user