From bce54285e46fe1a1abd99012e5d484054fb1c287 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 16 Jun 2021 17:39:03 -0500 Subject: [PATCH] Populate emojis in autosuggest again --- .../features/emoji/emoji_mart_search_light.js | 6 ++---- app/soapbox/reducers/custom_emojis.js | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/soapbox/features/emoji/emoji_mart_search_light.js b/app/soapbox/features/emoji/emoji_mart_search_light.js index 164fdcc0b..55166112b 100644 --- a/app/soapbox/features/emoji/emoji_mart_search_light.js +++ b/app/soapbox/features/emoji/emoji_mart_search_light.js @@ -38,7 +38,7 @@ function clearCustomEmojis(pool) { }); } -function addCustomToPool(custom, pool) { +export function addCustomToPool(custom, pool = originalPool) { if (customEmojisList.length) clearCustomEmojis(pool); custom.forEach((emoji) => { @@ -54,7 +54,7 @@ function addCustomToPool(custom, pool) { index = {}; } -function search(value, { emojisToShowFilter, maxResults, include, exclude, custom } = {}) { +export function search(value, { emojisToShowFilter, maxResults, include, exclude, custom } = {}) { if (custom !== undefined) { if (customEmojisList !== custom) addCustomToPool(custom, originalPool); @@ -181,5 +181,3 @@ function search(value, { emojisToShowFilter, maxResults, include, exclude, custo return results; } - -export { search }; diff --git a/app/soapbox/reducers/custom_emojis.js b/app/soapbox/reducers/custom_emojis.js index 75f8f2136..61d8feb1b 100644 --- a/app/soapbox/reducers/custom_emojis.js +++ b/app/soapbox/reducers/custom_emojis.js @@ -1,17 +1,27 @@ import { List as ImmutableList, fromJS } from 'immutable'; import { CUSTOM_EMOJIS_FETCH_SUCCESS } from '../actions/custom_emojis'; +import { addCustomToPool } from 'soapbox/features/emoji/emoji_mart_search_light'; +import { buildCustomEmojis } from '../features/emoji/emoji'; import { emojis as emojiData } from 'soapbox/features/emoji/emoji_mart_data_light'; const initialState = ImmutableList(); -const importEmojis = (state, emojis) => { - return fromJS(emojis).filter(emoji => { +// Populate custom emojis for composer autosuggest +const autosuggestPopulate = emojis => { + addCustomToPool(buildCustomEmojis(emojis)); +}; + +const importEmojis = (state, customEmojis) => { + const emojis = fromJS(customEmojis).filter(emoji => { // If a custom emoji has the shortcode of a Unicode emoji, skip it. // Otherwise it breaks EmojiMart. // https://gitlab.com/soapbox-pub/soapbox-fe/-/issues/610 const shortcode = emoji.get('shortcode', '').toLowerCase(); return !emojiData[shortcode]; }); + + autosuggestPopulate(emojis); + return emojis; }; export default function custom_emojis(state = initialState, action) {