fix: update shared items store correctly

Signed-off-by: Dorra Jaouad <dorra.jaoued7@gmail.com>
This commit is contained in:
Dorra Jaouad 2025-12-13 17:14:26 +01:00
parent 4ee6d4fdd1
commit b580be72c4
2 changed files with 32 additions and 0 deletions

View file

@ -1380,6 +1380,7 @@ const actions = {
return
}
const chatExtrasStore = useChatExtrasStore()
const sharedItemsStore = useSharedItemsStore()
const chatStore = useChatStore()
const timestamp = convertToUnix(Date.now())
@ -1390,8 +1391,11 @@ const actions = {
}
context.commit('deleteMessage', { token, id: message.id })
chatStore.removeMessagesFromChatBlocks(token, message.id)
sharedItemsStore.deleteSharedItemFromMessage(token, message.id)
}
})
sharedItemsStore.purgeExpiredSharedItems(token, timestamp)
},
async easeMessageList(context, { token }) {

View file

@ -151,6 +151,33 @@ export const useSharedItemsStore = defineStore('sharedItems', () => {
}
}
/**
* Purge expired shared items from the store
*
* @param token
* @param timestamp
*/
function purgeExpiredSharedItems(token: string, timestamp: number) {
if (!sharedItemsPool[token]) {
return
}
for (const type of Object.keys(sharedItemsPool[token])) {
for (const id of Object.keys(sharedItemsPool[token][type])) {
const message = sharedItemsPool[token][type][+id]
if (message.expirationTimestamp && message.expirationTimestamp < timestamp) {
delete sharedItemsPool[token][type][+id]
}
}
if (Object.keys(sharedItemsPool[token][type]).length === 0) {
delete sharedItemsPool[token][type]
}
}
if (Object.keys(sharedItemsPool[token]).length === 0) {
delete sharedItemsPool[token]
}
}
/**
* Fetch shared items of a specific type for a conversation
*
@ -206,6 +233,7 @@ export const useSharedItemsStore = defineStore('sharedItems', () => {
addSharedItemFromMessage,
deleteSharedItemFromMessage,
addSharedItemsFromMessages,
purgeExpiredSharedItems,
purgeSharedItemsStore,
fetchSharedItems,
fetchSharedItemsOverview,