Merge branch 'emoji-search-fix' into 'develop'
Skip custom emojis when they match a Unicode emoji's shortcode Closes #610 See merge request soapbox-pub/soapbox-fe!534
This commit is contained in:
commit
d5d51487c7
|
@ -1,14 +1,22 @@
|
|||
import { List as ImmutableList, fromJS as ConvertToImmutable } from 'immutable';
|
||||
import { List as ImmutableList, fromJS } from 'immutable';
|
||||
import { CUSTOM_EMOJIS_FETCH_SUCCESS } from '../actions/custom_emojis';
|
||||
import { search as emojiSearch } from '../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 initialState = ImmutableList();
|
||||
|
||||
const importEmojis = (state, emojis) => {
|
||||
return fromJS(emojis).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];
|
||||
});
|
||||
};
|
||||
|
||||
export default function custom_emojis(state = initialState, action) {
|
||||
if(action.type === CUSTOM_EMOJIS_FETCH_SUCCESS) {
|
||||
state = ConvertToImmutable(action.custom_emojis);
|
||||
emojiSearch('', { custom: buildCustomEmojis(state) });
|
||||
if (action.type === CUSTOM_EMOJIS_FETCH_SUCCESS) {
|
||||
return importEmojis(state, action.custom_emojis);
|
||||
}
|
||||
|
||||
return state;
|
||||
|
|
Loading…
Reference in New Issue