diff --git a/web/src/api/statestore.ts b/web/src/api/statestore.ts index c819c9b..7e4f68a 100644 --- a/web/src/api/statestore.ts +++ b/web/src/api/statestore.ts @@ -74,6 +74,14 @@ export class RoomStateStore { this.meta = new NonNullCachedEventDispatcher(meta) } + getStateEvent(type: EventType, stateKey: string): DBEvent | undefined { + const rowID = this.state.get(type)?.get(stateKey) + if (!rowID) { + return + } + return this.eventsByRowID.get(rowID) + } + applyPagination(history: DBEvent[]) { // Pagination comes in newest to oldest, timeline is in the opposite order history.reverse() diff --git a/web/src/ui/timeline/TimelineEvent.tsx b/web/src/ui/timeline/TimelineEvent.tsx index d993a20..f164edc 100644 --- a/web/src/ui/timeline/TimelineEvent.tsx +++ b/web/src/ui/timeline/TimelineEvent.tsx @@ -40,6 +40,8 @@ const TimelineEvent = ({ room, eventRowID }: TimelineEventProps) => { if (!evt) { return null } + const memberEvt = room.getStateEvent("m.room.member", evt.sender) + const memberEvtContent = memberEvt?.content as MemberEventContent | undefined const BodyType = getBodyType(evt) if (BodyType === HiddenEvent) { return
@@ -48,7 +50,7 @@ const TimelineEvent = ({ room, eventRowID }: TimelineEventProps) => { } return
- {evt.sender} + {memberEvtContent?.displayname ?? evt.sender}