@@ -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