chore: correctly refresh vault info badge
This commit is contained in:
@@ -243,7 +243,12 @@ export class VaultService
|
|||||||
}
|
}
|
||||||
|
|
||||||
getItemVault(item: DecryptedItemInterface): VaultListingInterface | undefined {
|
getItemVault(item: DecryptedItemInterface): VaultListingInterface | undefined {
|
||||||
|
if (this.items.isTemplateItem(item)) {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
const latestItem = this.items.findItem(item.uuid)
|
const latestItem = this.items.findItem(item.uuid)
|
||||||
|
|
||||||
if (!latestItem) {
|
if (!latestItem) {
|
||||||
throw new Error('Cannot find latest version of item to get vault for')
|
throw new Error('Cannot find latest version of item to get vault for')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { FunctionComponent } from 'react'
|
import { FunctionComponent } from 'react'
|
||||||
import { useApplication } from '../ApplicationProvider'
|
|
||||||
import { DecryptedItemInterface, classNames } from '@standardnotes/snjs'
|
import { DecryptedItemInterface, classNames } from '@standardnotes/snjs'
|
||||||
import VaultNameBadge from '../Vaults/VaultNameBadge'
|
import VaultNameBadge from '../Vaults/VaultNameBadge'
|
||||||
import SharedByContactBadge from '../Vaults/SharedByContactBadge'
|
import SharedByContactBadge from '../Vaults/SharedByContactBadge'
|
||||||
|
import { useItemVaultInfo } from '@/Hooks/useItemVaultInfo'
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
item: DecryptedItemInterface
|
item: DecryptedItemInterface
|
||||||
@@ -10,23 +10,12 @@ type Props = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const ListItemVaultInfo: FunctionComponent<Props> = ({ item, className }) => {
|
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) {
|
if (!vault) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
const sharedByContact = application.sharedVaults.getItemSharedBy(item)
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={classNames('flex flex-wrap items-center gap-2', className)}>
|
<div className={classNames('flex flex-wrap items-center gap-2', className)}>
|
||||||
<VaultNameBadge vault={vault} />
|
<VaultNameBadge vault={vault} />
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
import { useApplication } from '@/Components/ApplicationProvider'
|
import { useApplication } from '@/Components/ApplicationProvider'
|
||||||
import { DecryptedItemInterface, TrustedContactInterface, VaultListingInterface } from '@standardnotes/snjs'
|
import { DecryptedItemInterface, TrustedContactInterface, VaultListingInterface } from '@standardnotes/snjs'
|
||||||
|
import useItem from './useItem'
|
||||||
|
|
||||||
type ItemVaultInfo = {
|
type ItemVaultInfo = {
|
||||||
vault?: VaultListingInterface
|
vault?: VaultListingInterface
|
||||||
lastEditedByContact?: TrustedContactInterface
|
lastEditedByContact?: TrustedContactInterface
|
||||||
|
sharedByContact?: TrustedContactInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
export const useItemVaultInfo = (item: DecryptedItemInterface): ItemVaultInfo => {
|
export const useItemVaultInfo = (item: DecryptedItemInterface): ItemVaultInfo => {
|
||||||
@@ -14,16 +16,14 @@ export const useItemVaultInfo = (item: DecryptedItemInterface): ItemVaultInfo =>
|
|||||||
lastEditedByContact: undefined,
|
lastEditedByContact: undefined,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
info.vault = useItem(application.vaults.getItemVault(item)?.uuid)
|
||||||
|
|
||||||
if (!application.featuresController.isEntitledToVaults()) {
|
if (!application.featuresController.isEntitledToVaults()) {
|
||||||
return info
|
return info
|
||||||
}
|
}
|
||||||
|
|
||||||
if (application.items.isTemplateItem(item)) {
|
|
||||||
return info
|
|
||||||
}
|
|
||||||
|
|
||||||
info.vault = application.vaults.getItemVault(item)
|
|
||||||
info.lastEditedByContact = application.sharedVaults.getItemLastEditedBy(item)
|
info.lastEditedByContact = application.sharedVaults.getItemLastEditedBy(item)
|
||||||
|
info.sharedByContact = application.sharedVaults.getItemSharedBy(item)
|
||||||
|
|
||||||
return info
|
return info
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user