From c25df51534353ebd9c78b1f2a1d8e545fc13b00d Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 13 Apr 2021 09:40:44 +0100 Subject: [PATCH] Prevent state events being rendered with invalid state keys --- src/components/views/rooms/EventTile.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/components/views/rooms/EventTile.js b/src/components/views/rooms/EventTile.js index 901a231e7d..46c5caa926 100644 --- a/src/components/views/rooms/EventTile.js +++ b/src/components/views/rooms/EventTile.js @@ -74,6 +74,24 @@ const stateEventTileTypes = { '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 for (const evType of ALL_RULE_TYPES) { 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;