add more checks around membership change

This commit is contained in:
Ajay Bura 2025-01-26 10:46:04 +05:30
parent e89cea07e2
commit 8068dc2cbb

View file

@ -28,9 +28,9 @@ export const useMemberEventParser = (): MemberEventParser => {
const senderName = getMxIdLocalPart(senderId); const senderName = getMxIdLocalPart(senderId);
const userName = const userName =
content.displayname && typeof content.displayname !== 'string' content.displayname && typeof content.displayname === 'string'
? getMxIdLocalPart(userId) ? content.displayname || getMxIdLocalPart(userId)
: content.displayname || getMxIdLocalPart(userId); : getMxIdLocalPart(userId);
if (isMembershipChanged(mEvent)) { if (isMembershipChanged(mEvent)) {
if (content.membership === Membership.Invite) { if (content.membership === Membership.Invite) {
@ -179,40 +179,42 @@ export const useMemberEventParser = (): MemberEventParser => {
if (content.displayname !== prevContent.displayname) { if (content.displayname !== prevContent.displayname) {
const prevUserName = const prevUserName =
prevContent.displayname && typeof prevContent.displayname !== 'string' prevContent.displayname && typeof prevContent.displayname === 'string'
? getMxIdLocalPart(userId) ? prevContent.displayname || getMxIdLocalPart(userId)
: prevContent.displayname || getMxIdLocalPart(userId); : getMxIdLocalPart(userId);
return { return {
icon: Icons.Mention, icon: Icons.Mention,
body: content.displayname ? ( body:
<> content.displayname && typeof content.displayname === 'string' ? (
<b>{prevUserName}</b> <>
{' changed display name to '} <b>{prevUserName}</b>
<b>{userName}</b> {' changed display name to '}
</> <b>{userName}</b>
) : ( </>
<> ) : (
<b>{prevUserName}</b> <>
{' removed their display name '} <b>{prevUserName}</b>
</> {' removed their display name '}
), </>
),
}; };
} }
if (content.avatar_url !== prevContent.avatar_url) { if (content.avatar_url !== prevContent.avatar_url) {
return { return {
icon: Icons.User, icon: Icons.User,
body: content.displayname ? ( body:
<> content.avatar_url && typeof content.avatar_url === 'string' ? (
<b>{userName}</b> <>
{' changed their avatar'} <b>{userName}</b>
</> {' changed their avatar'}
) : ( </>
<> ) : (
<b>{userName}</b> <>
{' removed their avatar '} <b>{userName}</b>
</> {' removed their avatar '}
), </>
),
}; };
} }