Prevent state events being rendered with invalid state keys
parent
e79ad34fbd
commit
c25df51534
|
@ -74,6 +74,24 @@ const stateEventTileTypes = {
|
||||||
'm.room.related_groups': 'messages.TextualEvent', // legacy communities flair
|
'm.room.related_groups': 'messages.TextualEvent', // legacy communities flair
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const stateEventSingular = new Set([
|
||||||
|
EventType.RoomEncryption,
|
||||||
|
EventType.RoomCanonicalAlias,
|
||||||
|
EventType.RoomCreate,
|
||||||
|
EventType.RoomName,
|
||||||
|
EventType.RoomAvatar,
|
||||||
|
EventType.RoomHistoryVisibility,
|
||||||
|
EventType.RoomTopic,
|
||||||
|
EventType.RoomPowerLevels,
|
||||||
|
EventType.RoomPinnedEvents,
|
||||||
|
EventType.RoomServerAcl,
|
||||||
|
WIDGET_LAYOUT_EVENT_TYPE,
|
||||||
|
EventType.RoomTombstone,
|
||||||
|
EventType.RoomJoinRules,
|
||||||
|
EventType.RoomGuestAccess,
|
||||||
|
'm.room.related_groups',
|
||||||
|
]);
|
||||||
|
|
||||||
// Add all the Mjolnir stuff to the renderer
|
// Add all the Mjolnir stuff to the renderer
|
||||||
for (const evType of ALL_RULE_TYPES) {
|
for (const evType of ALL_RULE_TYPES) {
|
||||||
stateEventTileTypes[evType] = 'messages.TextualEvent';
|
stateEventTileTypes[evType] = 'messages.TextualEvent';
|
||||||
|
@ -130,7 +148,12 @@ export function getHandlerTile(ev) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ev.isState() ? stateEventTileTypes[type] : eventTileTypes[type];
|
if (ev.isState()) {
|
||||||
|
if (stateEventSingular.has(type) && ev.getStateKey() !== "") return undefined;
|
||||||
|
return stateEventTileTypes[type];
|
||||||
|
}
|
||||||
|
|
||||||
|
return eventTileTypes[type];
|
||||||
}
|
}
|
||||||
|
|
||||||
const MAX_READ_AVATARS = 5;
|
const MAX_READ_AVATARS = 5;
|
||||||
|
|
Loading…
Reference in New Issue