feat: implement LRU caching for user colors and avatar metadata to optimize performance
This commit is contained in:
@@ -128,6 +128,10 @@ function PinnedMessage({
|
||||
}, [room, eventId, mx])
|
||||
);
|
||||
|
||||
const sender = pinnedEvent?.getSender();
|
||||
const senderAvatarMxc = sender ? getMemberAvatarMxc(room, sender) : undefined;
|
||||
const customUserColor = useOtherUserColor(sender ?? '', senderAvatarMxc);
|
||||
|
||||
const handleOpenClick: MouseEventHandler = (evt) => {
|
||||
evt.stopPropagation();
|
||||
const evtId = evt.currentTarget.getAttribute('data-event-id');
|
||||
@@ -175,14 +179,9 @@ function PinnedMessage({
|
||||
</Box>
|
||||
);
|
||||
|
||||
const sender = pinnedEvent.getSender()!;
|
||||
const displayName = getMemberDisplayName(room, sender) ?? getMxIdLocalPart(sender) ?? sender;
|
||||
const senderAvatarMxc = getMemberAvatarMxc(room, sender);
|
||||
const displayName = getMemberDisplayName(room, sender!) ?? getMxIdLocalPart(sender!) ?? sender!;
|
||||
const getContent = (() => pinnedEvent.getContent()) as GetContentCallback;
|
||||
|
||||
// Get custom user color from avatar metadata
|
||||
const customUserColor = useOtherUserColor(sender, senderAvatarMxc);
|
||||
|
||||
const memberPowerTag = getMemberPowerTag(sender);
|
||||
const tagColor = memberPowerTag?.color
|
||||
? accessibleTagColors?.get(memberPowerTag.color)
|
||||
|
||||
Reference in New Issue
Block a user