When retention timer hits, make event "invisible"

This means we support invisible messages now (but currently have no means for admin to manually mark messages as such)
This commit is contained in:
N-Pex 2024-04-09 14:34:07 +02:00
parent b00c734f37
commit 2d6f5d3df8

View file

@ -873,7 +873,11 @@ export default {
* Set events to display. At the same time, filter out messages that are past rentention period etc.
*/
setEvents(events) {
this.events = this.removeTimedOutEvents(events);
this.events = this.filterOutOldAndInvisible(events);
},
filterOutOldAndInvisible(events) {
return this.removeTimedOutEvents(events.filter((e) => e.messageVisibility().visible));
},
updateRetentionTimer(maybeEvent) {
@ -901,14 +905,18 @@ export default {
}
return events.filter((e) => {
if (maxLifetime > 0 && !e.isState()) { // Keep all state events
return e.getLocalAge() < maxLifetime;
if (e.getLocalAge() < maxLifetime) {
return true;
}
e.applyVisibilityEvent({ visible: false, eventId: e.getId(), reason: null});
return true;
}
return true;
});
},
onRetentionTimer() {
const events = this.removeTimedOutEvents(this.events);
const events = this.filterOutOldAndInvisible(this.events);
if (events.length != this.events.length) {
this.events = events; // Changed
}