Don't dismiss keyboard on command input appear

This commit is contained in:
virvar 2016-05-25 14:50:52 +03:00
parent 7745f1accb
commit 49b08e5118
1 changed files with 54 additions and 46 deletions

View File

@ -4,7 +4,8 @@
[status-im.components.react :refer [view
icon
touchable-highlight
text-input]]
text-input
dismiss-keyboard!]]
[status-im.chat.views.suggestions :refer [suggestions-view]]
[status-im.chat.views.content-suggestions :refer [content-suggestions-view]]
[status-im.chat.views.command :as command]
@ -14,7 +15,9 @@
(defn set-input-message [message]
(dispatch [:set-chat-input-text message]))
(defn send []
(defn send [dismiss-keyboard]
(when dismiss-keyboard
(dismiss-keyboard!))
(dispatch [:send-chat-msg]))
(defn message-valid? [staged-commands message]
@ -22,9 +25,9 @@
(not= "!" message))
(pos? (count staged-commands))))
(defn try-send [staged-commands message]
(defn try-send [staged-commands message dismiss-keyboard]
(when (message-valid? staged-commands message)
(send)))
(send dismiss-keyboard)))
(defn plain-message-input-view [{:keys [command input-options validator]}]
(let [input-message (subscribe [:get-chat-input-text])
@ -32,6 +35,7 @@
staged-commands (subscribe [:get-chat-staged-commands])
typing-command? (subscribe [:typing-command?])]
(fn [{:keys [command input-options validator]}]
(let [dismiss-keyboard (not (or command @typing-command?))]
[view st/input-container
(if command
[content-suggestions-view]
@ -47,6 +51,7 @@
[icon :list st/list-icon])]])
[text-input (merge {:style (if command st-command/command-input st/message-input) ;; st-command/command-input
:autoFocus false
:blurOnSubmit dismiss-keyboard
:onChangeText (fn [text]
((if command
command/set-input-message
@ -56,7 +61,8 @@
(if command
(command/try-send @input-command validator)
(try-send @staged-commands
@input-message)))}
@input-message
dismiss-keyboard)))}
input-options)
(if command
@input-command
@ -72,6 +78,8 @@
[view st-command/cancel-container
[icon :close-gray st-command/cancel-icon]]])
(when (message-valid? @staged-commands @input-message)
[touchable-highlight {:on-press send}
[touchable-highlight {:on-press #(try-send @staged-commands
@input-message
dismiss-keyboard)}
[view st/send-container
[icon :send st/send-icon]]]))]])))
[icon :send st/send-icon]]]))]]))))