chat: emoji replace
This commit is contained in:
parent
173d4afbf3
commit
8a3b7372ab
|
@ -40,7 +40,8 @@
|
||||||
"react-native-autolink",
|
"react-native-autolink",
|
||||||
"instabug-reactnative",
|
"instabug-reactnative",
|
||||||
"nfc-react-native",
|
"nfc-react-native",
|
||||||
"react-native-http-bridge"
|
"react-native-http-bridge",
|
||||||
|
"emojilib"
|
||||||
],
|
],
|
||||||
"imageDirs": [
|
"imageDirs": [
|
||||||
"images"
|
"images"
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
"dns.js": "^1.0.1",
|
"dns.js": "^1.0.1",
|
||||||
"domain-browser": "^1.1.7",
|
"domain-browser": "^1.1.7",
|
||||||
"eccjs": "0.3.1",
|
"eccjs": "0.3.1",
|
||||||
|
"emojilib": "^2.2.1",
|
||||||
"events": "^1.1.1",
|
"events": "^1.1.1",
|
||||||
"homoglyph-finder": "^1.1.1",
|
"homoglyph-finder": "^1.1.1",
|
||||||
"https-browserify": "0.0.1",
|
"https-browserify": "0.0.1",
|
||||||
|
|
|
@ -14,10 +14,10 @@
|
||||||
[clojure.string :as str]))
|
[clojure.string :as str]))
|
||||||
|
|
||||||
(handlers/register-handler
|
(handlers/register-handler
|
||||||
:set-chat-input-text
|
:set-chat-input-text
|
||||||
(fn [{:keys [current-chat-id chats chat-ui-props] :as db} [_ text chat-id]]
|
(fn [{:keys [current-chat-id chats chat-ui-props] :as db} [_ text chat-id]]
|
||||||
(let [chat-id (or chat-id current-chat-id)
|
(let [chat-id (or chat-id current-chat-id)
|
||||||
ends-with-space? (input-model/text-ends-with-space? text)]
|
ends-with-space? (input-model/text-ends-with-space? text)]
|
||||||
(dispatch [:update-suggestions chat-id text])
|
(dispatch [:update-suggestions chat-id text])
|
||||||
|
|
||||||
(if-let [{command :command} (input-model/selected-chat-command db chat-id text)]
|
(if-let [{command :command} (input-model/selected-chat-command db chat-id text)]
|
||||||
|
@ -26,7 +26,9 @@
|
||||||
new-args (rest text-splitted)
|
new-args (rest text-splitted)
|
||||||
new-input-text (input-model/make-input-text text-splitted old-args)]
|
new-input-text (input-model/make-input-text text-splitted old-args)]
|
||||||
(assoc-in db [:chats chat-id :input-text] new-input-text))
|
(assoc-in db [:chats chat-id :input-text] new-input-text))
|
||||||
(assoc-in db [:chats chat-id :input-text] text)))))
|
(->> text
|
||||||
|
(input-model/text->emoji)
|
||||||
|
(assoc-in db [:chats chat-id :input-text]))))))
|
||||||
|
|
||||||
(handlers/register-handler
|
(handlers/register-handler
|
||||||
:add-to-chat-input-text
|
:add-to-chat-input-text
|
||||||
|
|
|
@ -9,6 +9,17 @@
|
||||||
[status-im.chat.utils :as chat-utils]
|
[status-im.chat.utils :as chat-utils]
|
||||||
[status-im.bots.constants :as bots-constants]))
|
[status-im.bots.constants :as bots-constants]))
|
||||||
|
|
||||||
|
(def emojis (js/require "emojilib"))
|
||||||
|
|
||||||
|
(defn text->emoji [text]
|
||||||
|
(when text
|
||||||
|
(str/replace text
|
||||||
|
#":([a-z_\-+0-9]*):"
|
||||||
|
(fn [[original emoji-id]]
|
||||||
|
(if-let [emoji-map (aget emojis "lib" emoji-id)]
|
||||||
|
(aget emoji-map "char")
|
||||||
|
original)))))
|
||||||
|
|
||||||
(defn text-ends-with-space? [text]
|
(defn text-ends-with-space? [text]
|
||||||
(when text
|
(when text
|
||||||
(= (str/last-index-of text const/spacing-char)
|
(= (str/last-index-of text const/spacing-char)
|
||||||
|
|
Loading…
Reference in New Issue