|
|
|
@ -8,15 +8,41 @@ import { useEmoji } from '../../../actions/emojis';
|
|
|
|
|
const perLine = 8;
|
|
|
|
|
const lines = 2;
|
|
|
|
|
|
|
|
|
|
const DEFAULTS = [
|
|
|
|
|
'+1',
|
|
|
|
|
'grinning',
|
|
|
|
|
'kissing_heart',
|
|
|
|
|
'heart_eyes',
|
|
|
|
|
'laughing',
|
|
|
|
|
'stuck_out_tongue_winking_eye',
|
|
|
|
|
'sweat_smile',
|
|
|
|
|
'joy',
|
|
|
|
|
'yum',
|
|
|
|
|
'disappointed',
|
|
|
|
|
'thinking_face',
|
|
|
|
|
'weary',
|
|
|
|
|
'sob',
|
|
|
|
|
'sunglasses',
|
|
|
|
|
'heart',
|
|
|
|
|
'ok_hand',
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const getFrequentlyUsedEmojis = createSelector([
|
|
|
|
|
state => state.getIn(['settings', 'frequentlyUsedEmojis'], ImmutableMap()),
|
|
|
|
|
], emojiCounters => emojiCounters
|
|
|
|
|
], emojiCounters => {
|
|
|
|
|
let emojis = emojiCounters
|
|
|
|
|
.keySeq()
|
|
|
|
|
.sort((a, b) => emojiCounters.get(a) - emojiCounters.get(b))
|
|
|
|
|
.reverse()
|
|
|
|
|
.slice(0, perLine * lines)
|
|
|
|
|
.toArray()
|
|
|
|
|
);
|
|
|
|
|
.toArray();
|
|
|
|
|
|
|
|
|
|
if (emojis.length < DEFAULTS.length) {
|
|
|
|
|
emojis = emojis.concat(DEFAULTS.slice(0, DEFAULTS.length - emojis.length));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return emojis;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const getCustomEmojis = createSelector([
|
|
|
|
|
state => state.get('custom_emojis'),
|
|
|
|
|