diff --git a/src/app/pages/client/inbox/Invites.tsx b/src/app/pages/client/inbox/Invites.tsx index 56ce287e..5a32303b 100644 --- a/src/app/pages/client/inbox/Invites.tsx +++ b/src/app/pages/client/inbox/Invites.tsx @@ -81,6 +81,7 @@ type InviteData = { senderId: string; senderName: string; inviteTs?: number; + reason?: string; isSpace: boolean; isDirect: boolean; @@ -102,11 +103,17 @@ const makeInviteData = (mx: MatrixClient, room: Room, useAuthentication: boolean const member = room.getMember(userId); const memberEvent = member?.events.member; + const content = memberEvent?.getContent(); const senderId = memberEvent?.getSender(); + const senderName = senderId ? getMemberDisplayName(room, senderId) ?? getMxIdLocalPart(senderId) ?? senderId : undefined; const inviteTs = memberEvent?.getTs(); + const reason = + content && 'reason' in content && typeof content.reason === 'string' + ? content.reason + : undefined; return { room, @@ -119,6 +126,7 @@ const makeInviteData = (mx: MatrixClient, room: Room, useAuthentication: boolean senderId: senderId ?? 'Unknown', senderName: senderName ?? 'Unknown', inviteTs, + reason, isSpace: isSpace(room), isDirect: direct, @@ -130,7 +138,8 @@ const hasBadWords = (invite: InviteData): boolean => testBadWords(invite.roomName) || testBadWords(invite.roomTopic ?? '') || testBadWords(invite.senderName) || - testBadWords(invite.senderId); + testBadWords(invite.senderId) || + testBadWords(invite.reason || ''); type NavigateHandler = (roomId: string, space: boolean) => void; @@ -299,10 +308,15 @@ function InviteCard({ - + From: {invite.senderId} + {invite.reason && ( + + Reason: {invite.reason} + + )} {typeof invite.inviteTs === 'number' && invite.inviteTs !== 0 && (