Skip to content
This repository was archived by the owner on Feb 23, 2025. It is now read-only.

Commit 38454be

Browse files
committed
Add MSC4144 support (display only)
1 parent 35f0e40 commit 38454be

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

src/app/features/room/message/Message.tsx

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -700,18 +700,33 @@ export const Message = as<'div', MessageProps>(
700700
},
701701
ref
702702
) => {
703+
const rawEvent = mEvent.getEffectiveEvent();
703704
const mx = useMatrixClient();
704705
const useAuthentication = useMediaAuthentication();
705-
const senderId = mEvent.getSender() ?? '';
706+
let senderId = mEvent.getSender() ?? '';
706707
const [hover, setHover] = useState(false);
707708
const { hoverProps } = useHover({ onHoverChange: setHover });
708709
const { focusWithinProps } = useFocusWithin({ onFocusWithinChange: setHover });
709710
const [menuAnchor, setMenuAnchor] = useState<RectCords>();
710711
const [emojiBoardAnchor, setEmojiBoardAnchor] = useState<RectCords>();
711712

712-
const senderDisplayName =
713+
let senderDisplayName =
713714
getMemberDisplayName(room, senderId) ?? getMxIdLocalPart(senderId) ?? senderId;
714-
const senderAvatarMxc = getMemberAvatarMxc(room, senderId);
715+
let senderAvatarMxc = getMemberAvatarMxc(room, senderId);
716+
717+
if(rawEvent.content["com.beeper.per_message_profile"]) {
718+
const pmp = rawEvent.content["com.beeper.per_message_profile"];
719+
if(!pmp.id) {
720+
pmp.id = `${room.roomId}-${pmp.displayName || senderDisplayName}`;
721+
}
722+
if(pmp.displayname) {
723+
senderDisplayName = pmp.displayname;
724+
}
725+
if(pmp.avatar_url) {
726+
senderAvatarMxc = pmp.avatar_url;
727+
}
728+
senderId = pmp.id;
729+
}
715730

716731
const headerJSX = !collapse && (
717732
<Box

0 commit comments

Comments
 (0)