From c4352a1936b2bcb3ea4bf5534646ce39eec7e3e7 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 13 Aug 2024 22:51:17 +0300 Subject: [PATCH] cache emoji groups etc --- src/modules/instance.js | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/modules/instance.js b/src/modules/instance.js index 99b8b5d5..2281141f 100644 --- a/src/modules/instance.js +++ b/src/modules/instance.js @@ -145,6 +145,10 @@ const defaultState = { quotingAvailable: false, groupActorAvailable: false, + // Emoji stuff + standardEmojiList: null, + standardEmojiGroupList: null, + // Html stuff instanceSpecificPanelContent: '', tos: '', @@ -246,15 +250,21 @@ const instance = { }, {}) }, standardEmojiList (state) { - return SORTED_EMOJI_GROUP_IDS - .map(groupId => (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations))) - .reduce((a, b) => a.concat(b), []) + if (!state.standardEmojiList) { + state.standardEmojiList = SORTED_EMOJI_GROUP_IDS + .map(groupId => (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations))) + .reduce((a, b) => a.concat(b), []) + } + return state.standardEmojiList }, standardEmojiGroupList (state) { - return SORTED_EMOJI_GROUP_IDS.map(groupId => ({ - id: groupId, - emojis: (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations)) - })) + if (!state.standardEmojiGroupList) { + state.standardEmojiGroupList = SORTED_EMOJI_GROUP_IDS.map(groupId => ({ + id: groupId, + emojis: (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations)) + })) + } + return state.standardEmojiGroupList }, instanceDomain (state) { return new URL(state.server).hostname