improved emoji suggestions
authorunknown <ajbura@gmail.com>
Tue, 10 Aug 2021 08:42:00 +0000 (14:12 +0530)
committerunknown <ajbura@gmail.com>
Tue, 10 Aug 2021 08:42:00 +0000 (14:12 +0530)
src/app/organisms/channel/ChannelViewCmdBar.jsx
src/app/organisms/channel/ChannelViewInput.jsx

index 8dbf8024a625b30cc9a7c76a134c9850de2b56a2..f7eaa646aa0bf167f15f01fd3421920c055ebc05 100644 (file)
@@ -276,7 +276,22 @@ function getCmdSuggestions({ prefix, slug }, fireCmd, viewEvent) {
   }
 
   function getEmojiSuggestion(emPrefix, shortcutSlug) {
-    const result = searchEmoji(shortcutSlug);
+    let searchTerm = shortcutSlug;
+    if (searchTerm.length <= 3) {
+      if (searchTerm.match(/^[-]?(\))/)) searchTerm = 'smile';
+      else if (searchTerm.match(/^[-]?(s|S)/)) searchTerm = 'confused';
+      else if (searchTerm.match(/^[-]?(o|O|0)/)) searchTerm = 'astonished';
+      else if (searchTerm.match(/^[-]?(\|)/)) searchTerm = 'neutral_face';
+      else if (searchTerm.match(/^[-]?(d|D)/)) searchTerm = 'grin';
+      else if (searchTerm.match(/^[-]?(\/)/)) searchTerm = 'frown';
+      else if (searchTerm.match(/^[-]?(p|P)/)) searchTerm = 'stick_out_tongue';
+      else if (searchTerm.match(/^'[-]?(\()/)) searchTerm = 'cry';
+      else if (searchTerm.match(/^[-]?(x|X)/)) searchTerm = 'dizzy_face';
+      else if (searchTerm.match(/^[-]?(\()/)) searchTerm = 'pleading_face';
+      else if (searchTerm.match(/^[-]?(\$)/)) searchTerm = 'money';
+      else if (searchTerm.match(/^(<3)/)) searchTerm = 'heart';
+    }
+    const result = searchEmoji(searchTerm);
     if (result.length === 0) viewEvent.emit('cmd_error');
     perfectMatchCmd = {
       prefix: emPrefix,
index 0a40117e46e6035dcc7a203149446010a87c8336..e3c90da15fd42fc3364558c0e64b4daba2f4136f 100644 (file)
@@ -213,6 +213,16 @@ function ChannelViewInput({
     const cmdPrefix = cmdParts[1];
     const cmdSlug = cmdParts[2];
 
+    if (cmdPrefix === ':') {
+      // skip emoji autofill command if link is suspected.
+      const checkForLink = targetInput.slice(0, cmdParts.index);
+      if (checkForLink.match(/(http|https|mailto|matrix|ircs|irc)$/)) {
+        deactivateCmd();
+        viewEvent.emit('cmd_deactivate');
+        return;
+      }
+    }
+
     cmdCursorPos = cursor;
     if (cmdSlug === '') {
       activateCmd(cmdPrefix);