Skip to content

Commit

Permalink
Fixes: #2061, #2072, #2075 (#2129)
Browse files Browse the repository at this point in the history
  • Loading branch information
alwx committed Oct 16, 2017
1 parent 63e479b commit 77ef5f6
Show file tree
Hide file tree
Showing 8 changed files with 57 additions and 72 deletions.
2 changes: 1 addition & 1 deletion .re-natal
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "StatusIm",
"interface": "reagent",
"androidHost": "localhost",
"androidHost": "10.0.3.2",
"modules": [
"react-native-contacts",
"react-native-invertible-scroll-view",
Expand Down
2 changes: 1 addition & 1 deletion env/dev/env/android/main.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
(re-frame.core/dispatch [:load-commands!]))

(figwheel/watch-and-reload
:websocket-url "ws://localhost:3449/figwheel-ws"
:websocket-url "ws://10.0.3.2:3449/figwheel-ws"
:heads-up-display false
:jsload-callback callback)

Expand Down
4 changes: 2 additions & 2 deletions env/dev/env/ios/main.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
(def root-el (r/as-element [reloader]))

(figwheel/watch-and-reload
:websocket-url "ws://localhost:3449/figwheel-ws"
:websocket-url "ws://10.0.1.15:3449/figwheel-ws"
:heads-up-display false
:jsload-callback #(swap! cnt inc))

(rr/enable-re-frisk-remote! {:host "10.0.1.15:4567" :on-init core/init :pre-send (fn [db] (update db :chats #(into {} %)))})
(rr/enable-re-frisk-remote! {:host "localhost:4567" :on-init core/init :pre-send (fn [db] (update db :chats #(into {} %)))})
45 changes: 19 additions & 26 deletions src/status_im/chat/models/commands.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -79,43 +79,36 @@
account (get accounts current-account-id)
commands (-> (into [] global-commands)
(into commands))
{chat-contacts :contacts} (get chats chat-id)]
{chat-contacts :contacts
group-chat :group-chat} (get chats chat-id)]
(remove (fn [{:keys [scope]}]
(or
(and (:registered-only? scope)
(not (:address account)))
(and (not (:personal-chats? scope))
(= (count chat-contacts) 1))
(not group-chat))
(and (not (:group-chats? scope))
(> (count chat-contacts) 1))
group-chat)
(and (not (:can-use-for-dapps? scope))
(every? (fn [{:keys [identity]}]
(get-in contacts [identity :dapp?]))
chat-contacts))))
commands)))

(defn set-command-for-content
"Sets the information about command for a specified message content.
We need to use this command because `command` field in persistent storage (db) doesn't
contain all information about command — we save only the name of it."
[commands global-commands content]
(if (map? content)
(let [{:keys [command bot]} content]
(if (and bot (not (bots-constants/mailman-bot? bot)))
(update content :command #((keyword bot) global-commands))
(update content :command #((keyword command) commands))))
content))
(defn- commands-list->map [commands]
(->> commands
(map #(vector (:name %) %))
(into {})))

(defn set-command-for-request
(defn replace-name-with-request
"Sets the information about command for a specified request."
[{:keys [message-id content] :as message} possible-requests possible-commands]
(let [requests (->> possible-requests
(map (fn [{:keys [request] :as message}]
[(:message-id request) message]))
(into {}))
commands (->> possible-commands
(map (fn [{:keys [name] :as message}]
[name message]))
(into {}))]
(assoc content :command (or (get requests message-id)
(get commands (get content :command))))))
([{:keys [content] :as message} commands requests]
(if (map? content)
(let [{:keys [command content-command]} content
commands (commands-list->map commands)
requests (commands-list->map requests)]
(assoc content :command (or (get requests (or content-command command))
(get commands command))))
content))
([message commands]
(replace-name-with-request message commands [])))
2 changes: 1 addition & 1 deletion src/status_im/chat/styles/message/message.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@
:android {:font-size 13}
:ios {:font-size 14}})

(def comand-request-view
(def command-request-view
{:paddingRight 16})

(def command-request-message-view
Expand Down
13 changes: 4 additions & 9 deletions src/status_im/chat/subs.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
[status-im.data-store.chats :as chats]
[status-im.chat.constants :as const]
[status-im.chat.models.input :as input-model]
[status-im.chat.models.commands :as commands-model]
[status-im.chat.utils :as chat-utils]
[status-im.chat.views.input.utils :as input-utils]
[status-im.constants :refer [response-suggesstion-resize-duration
Expand Down Expand Up @@ -62,15 +63,9 @@
(fn [_ [_ chat-id]]
(chats/get-by-id chat-id)))

(reg-sub :get-commands-and-responses
(fn [{:keys [chats global-commands] :contacts/keys [contacts]} [_ chat-id]]
(->> (get-in chats [chat-id :contacts])
(filter :is-in-chat)
(mapv (fn [{:keys [identity]}]
(let [{:keys [commands responses]} (get contacts identity)]
(merge responses commands))))
(apply merge)
(merge global-commands))))
(reg-sub :get-commands-for-chat
(fn [db [_ chat-id]]
(commands-model/commands-for-chat db chat-id)))

(reg-sub
:selected-chat-command
Expand Down
53 changes: 25 additions & 28 deletions src/status_im/chat/views/message/message.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -126,34 +126,31 @@

(defview message-content-command
[{:keys [message-id content content-type chat-id to from outgoing] :as message}]
[commands [:get-commands-and-responses chat-id]
from-commands [:get-commands-and-responses from]
global-commands [:get :global-commands]
current-chat-id [:get-current-chat-id]
contact-chat [:get-in [:chats (if outgoing to from)]]
preview [:get-message-preview message-id]]
(let [commands (merge commands from-commands)
{:keys [command params]} (commands/set-command-for-content commands global-commands content)
{:keys [name type]
icon-path :icon} command]
[view st/content-command-view
(when (:color command)
[view st/command-container
[view (pill-st/pill command)
[text {:style pill-st/pill-text
:font :default}
(str (if (= :command type) chat-consts/command-char "?") name)]]])
(when icon-path
[view st/command-image-view
[icon icon-path st/command-image]])
[command-preview {:command (:name command)
:content-type content-type
:params params
:outgoing? outgoing
:preview preview
:contact-chat contact-chat
:contact-address (if outgoing to from)
:current-chat-id current-chat-id}]]))
(letsubs [commands [:get-commands-for-chat chat-id]
current-chat-id [:get-current-chat-id]
contact-chat [:get-in [:chats (if outgoing to from)]]
preview [:get-message-preview message-id]]
(let [{:keys [command params]} (commands/replace-name-with-request message commands)
{:keys [name type]
icon-path :icon} command]
[view st/content-command-view
(when (:color command)
[view st/command-container
[view (pill-st/pill command)
[text {:style pill-st/pill-text
:font :default}
(str (if (= :command type) chat-consts/command-char "?") name)]]])
(when icon-path
[view st/command-image-view
[icon icon-path st/command-image]])
[command-preview {:command (:name command)
:content-type content-type
:params params
:outgoing? outgoing
:preview preview
:contact-chat contact-chat
:contact-address (if outgoing to from)
:current-chat-id current-chat-id}]])))

(defn message-view
[{:keys [same-author index group-chat] :as message} content]
Expand Down
8 changes: 4 additions & 4 deletions src/status_im/chat/views/message/request_message.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,15 @@

(defview message-content-command-request
[{:keys [message-id chat-id]}]
(letsubs [requests [:chat-actions :possible-requests]
commands [:chat-actions :possible-commands]
(letsubs [commands [:get-commands-for-chat chat-id]
requests [:chat-actions :possible-requests]
answered? [:is-request-answered? message-id]
status-initialized? [:get :status-module-initialized?]
markup [:get-message-preview message-id]]
(fn [{:keys [message-id content from incoming-group] :as message}]
(let [{:keys [prefill prefill-bot-db prefillBotDb params]
text-content :text} content
{:keys [command content]} (commands/set-command-for-request message requests commands)
{:keys [command content]} (commands/replace-name-with-request message commands requests)
command (if (and params command)
(merge command {:prefill prefill
:prefill-bot-db (or prefill-bot-db prefillBotDb)})
Expand All @@ -90,7 +90,7 @@
#(dispatch [:execute-command-immediately command])
(when (and (not answered?) status-initialized?)
#(set-chat-command message-id command)))]
[view st/comand-request-view
[view st/command-request-view
[touchable-highlight
{:on-press on-press-handler}
[view st/command-request-message-view
Expand Down

0 comments on commit 77ef5f6

Please sign in to comment.