const prevContent = mEvent.getPrevContent() as IMemberContent;
const senderId = mEvent.getSender();
const userId = mEvent.getStateKey();
+ const reason = typeof content.reason === 'string' ? content.reason : undefined;
if (!senderId || !userId)
return {
};
const senderName = getMxIdLocalPart(senderId);
- const userName = content.displayname || getMxIdLocalPart(userId);
+ const userName =
+ typeof content.displayname === 'string'
+ ? content.displayname || getMxIdLocalPart(userId)
+ : getMxIdLocalPart(userId);
if (isMembershipChanged(mEvent)) {
if (content.membership === Membership.Invite) {
{' accepted '}
<b>{userName}</b>
{`'s join request `}
- {content.reason}
+ {reason}
</>
),
};
<>
<b>{senderName}</b>
{' invited '}
- <b>{userName}</b> {content.reason}
+ <b>{userName}</b> {reason}
</>
),
};
<>
<b>{userName}</b>
{' request to join room '}
- {content.reason}
+ {reason}
</>
),
};
<>
<b>{userName}</b>
{' rejected the invitation '}
- {content.reason}
+ {reason}
</>
) : (
<>
{' rejected '}
<b>{userName}</b>
{`'s join request `}
- {content.reason}
+ {reason}
</>
),
};
<>
<b>{userName}</b>
{' revoked joined request '}
- {content.reason}
+ {reason}
</>
) : (
<>
{' revoked '}
<b>{userName}</b>
{`'s invite `}
- {content.reason}
+ {reason}
</>
),
};
<>
<b>{senderName}</b>
{' unbanned '}
- <b>{userName}</b> {content.reason}
+ <b>{userName}</b> {reason}
</>
),
};
<>
<b>{userName}</b>
{' left the room '}
- {content.reason}
+ {reason}
</>
) : (
<>
<b>{senderName}</b>
{' kicked '}
- <b>{userName}</b> {content.reason}
+ <b>{userName}</b> {reason}
</>
),
};
<>
<b>{senderName}</b>
{' banned '}
- <b>{userName}</b> {content.reason}
+ <b>{userName}</b> {reason}
</>
),
};
}
if (content.displayname !== prevContent.displayname) {
- const prevUserName = prevContent.displayname || userId;
+ const prevUserName =
+ typeof prevContent.displayname === 'string'
+ ? prevContent.displayname || getMxIdLocalPart(userId)
+ : getMxIdLocalPart(userId);
return {
icon: Icons.Mention,
- body: content.displayname ? (
- <>
- <b>{prevUserName}</b>
- {' changed display name to '}
- <b>{userName}</b>
- </>
- ) : (
- <>
- <b>{prevUserName}</b>
- {' removed their display name '}
- </>
- ),
+ body:
+ typeof content.displayname === 'string' ? (
+ <>
+ <b>{prevUserName}</b>
+ {' changed display name to '}
+ <b>{userName}</b>
+ </>
+ ) : (
+ <>
+ <b>{prevUserName}</b>
+ {' removed their display name '}
+ </>
+ ),
};
}
if (content.avatar_url !== prevContent.avatar_url) {
return {
icon: Icons.User,
- body: content.displayname ? (
- <>
- <b>{userName}</b>
- {' changed their avatar'}
- </>
- ) : (
- <>
- <b>{userName}</b>
- {' removed their avatar '}
- </>
- ),
+ body:
+ content.avatar_url && typeof content.avatar_url === 'string' ? (
+ <>
+ <b>{userName}</b>
+ {' changed their avatar'}
+ </>
+ ) : (
+ <>
+ <b>{userName}</b>
+ {' removed their avatar '}
+ </>
+ ),
};
}
return {
icon: Icons.User,
- body: 'Broken membership event',
+ body: 'Membership event with no changes',
};
};