tui: fix message history cleanup to prevent memory leaks
This commit is contained in:
@@ -241,9 +241,27 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
|
|||||||
event.properties.info.sessionID,
|
event.properties.info.sessionID,
|
||||||
produce((draft) => {
|
produce((draft) => {
|
||||||
draft.splice(result.index, 0, event.properties.info)
|
draft.splice(result.index, 0, event.properties.info)
|
||||||
if (draft.length > 100) draft.shift()
|
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
const updated = store.message[event.properties.info.sessionID]
|
||||||
|
if (updated.length > 100) {
|
||||||
|
const oldest = updated[0]
|
||||||
|
batch(() => {
|
||||||
|
setStore(
|
||||||
|
"message",
|
||||||
|
event.properties.info.sessionID,
|
||||||
|
produce((draft) => {
|
||||||
|
draft.shift()
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
setStore(
|
||||||
|
"part",
|
||||||
|
produce((draft) => {
|
||||||
|
delete draft[oldest.id]
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case "message.removed": {
|
case "message.removed": {
|
||||||
|
|||||||
Reference in New Issue
Block a user