Fix keyboard hiding. Focus on input when response view is shown.
This commit is contained in:
parent
a7e694cb46
commit
df8c7f2fe7
|
@ -78,6 +78,23 @@
|
||||||
:handler (:handler command)}]
|
:handler (:handler command)}]
|
||||||
(commands/stage-command db command-info))))
|
(commands/stage-command db command-info))))
|
||||||
|
|
||||||
|
(register-handler :set-message-input []
|
||||||
|
(fn [db [_ input]]
|
||||||
|
(assoc db :message-input input)))
|
||||||
|
|
||||||
|
(register-handler :prepare-message-input
|
||||||
|
(u/side-effect!
|
||||||
|
(fn [db _]
|
||||||
|
(when-let [message-input (:message-input db)]
|
||||||
|
(.clear message-input)
|
||||||
|
(.focus message-input)))))
|
||||||
|
|
||||||
|
(register-handler :blur-message-input
|
||||||
|
(u/side-effect!
|
||||||
|
(fn [db _]
|
||||||
|
(when-let [message-input (:message-input db)]
|
||||||
|
(.blur message-input)))))
|
||||||
|
|
||||||
(register-handler :set-response-chat-command
|
(register-handler :set-response-chat-command
|
||||||
(after #(dispatch [:animate-show-response]))
|
(after #(dispatch [:animate-show-response]))
|
||||||
(fn [db [_ to-msg-id command-key]]
|
(fn [db [_ to-msg-id command-key]]
|
||||||
|
|
|
@ -56,12 +56,13 @@
|
||||||
(assoc-in db [:animations :to-response-height] (get-response-height db)))
|
(assoc-in db [:animations :to-response-height] (get-response-height db)))
|
||||||
|
|
||||||
(register-handler :finish-show-response
|
(register-handler :finish-show-response
|
||||||
|
(after #(dispatch [:prepare-message-input]))
|
||||||
(fn [db _]
|
(fn [db _]
|
||||||
(assoc-in db [:animations :commands-input-is-switching?] false)))
|
(assoc-in db [:animations :commands-input-is-switching?] false)))
|
||||||
|
|
||||||
(register-handler :animate-show-response
|
(register-handler :animate-show-response
|
||||||
|
(after #(dispatch [:animate-response-resize]))
|
||||||
(fn [db _]
|
(fn [db _]
|
||||||
(dispatch [:animate-response-resize])
|
|
||||||
(-> db
|
(-> db
|
||||||
(assoc-in [:animations :commands-input-is-switching?] true)
|
(assoc-in [:animations :commands-input-is-switching?] true)
|
||||||
(assoc-in [:animations :response-height-current] zero-height)
|
(assoc-in [:animations :response-height-current] zero-height)
|
||||||
|
|
|
@ -146,19 +146,22 @@
|
||||||
message-input? st/message-input
|
message-input? st/message-input
|
||||||
response? st-response/command-input
|
response? st-response/command-input
|
||||||
command st-command/command-input)
|
command st-command/command-input)
|
||||||
|
:ref (fn [input]
|
||||||
|
(dispatch [:set-message-input input]))
|
||||||
:autoFocus false
|
:autoFocus false
|
||||||
:blurOnSubmit dismiss-keyboard
|
:blurOnSubmit dismiss-keyboard
|
||||||
:onChangeText (fn [text]
|
:onChangeText (fn [text]
|
||||||
|
(when-not animation?
|
||||||
((if message-input?
|
((if message-input?
|
||||||
set-input-message
|
set-input-message
|
||||||
command/set-input-message)
|
command/set-input-message)
|
||||||
text))
|
text)))
|
||||||
:editable (not animation?)
|
:onSubmitEditing #(when-not animation?
|
||||||
:onSubmitEditing #(if message-input?
|
(if message-input?
|
||||||
(try-send staged-commands
|
(try-send staged-commands
|
||||||
input-message
|
input-message
|
||||||
dismiss-keyboard)
|
dismiss-keyboard)
|
||||||
(command/try-send input-command validator))}
|
(command/try-send input-command validator)))}
|
||||||
(when command
|
(when command
|
||||||
{:accessibility-label :command-input})
|
{:accessibility-label :command-input})
|
||||||
input-options)
|
input-options)
|
||||||
|
|
Loading…
Reference in New Issue