|
|
|
@ -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) {
|
|
|
|
|