Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit c25df51

Browse files
committed
Prevent state events being rendered with invalid state keys
1 parent e79ad34 commit c25df51

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

src/components/views/rooms/EventTile.js

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,24 @@ const stateEventTileTypes = {
7474
'm.room.related_groups': 'messages.TextualEvent', // legacy communities flair
7575
};
7676

77+
const stateEventSingular = new Set([
78+
EventType.RoomEncryption,
79+
EventType.RoomCanonicalAlias,
80+
EventType.RoomCreate,
81+
EventType.RoomName,
82+
EventType.RoomAvatar,
83+
EventType.RoomHistoryVisibility,
84+
EventType.RoomTopic,
85+
EventType.RoomPowerLevels,
86+
EventType.RoomPinnedEvents,
87+
EventType.RoomServerAcl,
88+
WIDGET_LAYOUT_EVENT_TYPE,
89+
EventType.RoomTombstone,
90+
EventType.RoomJoinRules,
91+
EventType.RoomGuestAccess,
92+
'm.room.related_groups',
93+
]);
94+
7795
// Add all the Mjolnir stuff to the renderer
7896
for (const evType of ALL_RULE_TYPES) {
7997
stateEventTileTypes[evType] = 'messages.TextualEvent';
@@ -130,7 +148,12 @@ export function getHandlerTile(ev) {
130148
}
131149
}
132150

133-
return ev.isState() ? stateEventTileTypes[type] : eventTileTypes[type];
151+
if (ev.isState()) {
152+
if (stateEventSingular.has(type) && ev.getStateKey() !== "") return undefined;
153+
return stateEventTileTypes[type];
154+
}
155+
156+
return eventTileTypes[type];
134157
}
135158

136159
const MAX_READ_AVATARS = 5;

0 commit comments

Comments
 (0)