Be somewhat fuzzier when matching emojis to complete on space
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>pull/21833/head
parent
97019fbfb5
commit
878f0a4753
|
@ -533,9 +533,13 @@ export default class MessageComposerInput extends React.Component {
|
||||||
// The first matched group includes just the matched plaintext emoji
|
// The first matched group includes just the matched plaintext emoji
|
||||||
const emoticonMatch = REGEX_EMOTICON_WHITESPACE.exec(text.slice(0, currentStartOffset));
|
const emoticonMatch = REGEX_EMOTICON_WHITESPACE.exec(text.slice(0, currentStartOffset));
|
||||||
if (emoticonMatch) {
|
if (emoticonMatch) {
|
||||||
const data = EMOJIBASE.find(e => e.emoticon === emoticonMatch[1]);
|
const data = EMOJIBASE.find(e => {
|
||||||
const unicodeEmoji = data ? data.unicode : '';
|
if (!e.emoticon) return false;
|
||||||
|
return e.emoticon.toLowerCase() === emoticonMatch[1].toLowerCase().replace("-", "");
|
||||||
|
});
|
||||||
|
|
||||||
|
// only perform replacement if we found a match, otherwise we would be not letting user type
|
||||||
|
if (data) {
|
||||||
const range = Range.create({
|
const range = Range.create({
|
||||||
anchor: {
|
anchor: {
|
||||||
key: editorState.startText.key,
|
key: editorState.startText.key,
|
||||||
|
@ -546,11 +550,12 @@ export default class MessageComposerInput extends React.Component {
|
||||||
offset: currentStartOffset - 1,
|
offset: currentStartOffset - 1,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
change = change.insertTextAtRange(range, unicodeEmoji);
|
change = change.insertTextAtRange(range, data.unicode);
|
||||||
editorState = change.value;
|
editorState = change.value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (this.props.onInputStateChanged && editorState.blocks.size > 0) {
|
if (this.props.onInputStateChanged && editorState.blocks.size > 0) {
|
||||||
let blockType = editorState.blocks.first().type;
|
let blockType = editorState.blocks.first().type;
|
||||||
|
|
Loading…
Reference in New Issue