Fix recent emoji does not persist (#2722)

Fix recent emoji are not getting saved

Refactor recent emoji retrieval to ensure structured cloning and proper type checking. The sdk was not updating account data because we are mutating the original and it compare and early return if found same.
This commit is contained in:
Ajay Bura 2026-03-09 17:34:44 +11:00 committed by GitHub
parent b2ea3b41e0
commit 503f3c401c

View file

@ -27,7 +27,11 @@ export const getRecentEmojis = (mx: MatrixClient, limit?: number): IEmoji[] => {
export function addRecentEmoji(mx: MatrixClient, unicode: string) {
const recentEmojiEvent = getAccountData(mx, AccountDataEvent.ElementRecentEmoji);
const recentEmoji = recentEmojiEvent?.getContent<IRecentEmojiContent>().recent_emoji ?? [];
const recentEmojiContent = recentEmojiEvent?.getContent<IRecentEmojiContent>();
const recentEmoji =
recentEmojiContent && Array.isArray(recentEmojiContent.recent_emoji)
? structuredClone(recentEmojiContent.recent_emoji)
: [];
const emojiIndex = recentEmoji.findIndex(([u]) => u === unicode);
let entry: [EmojiUnicode, EmojiUsageCount];