update chat-demo cljs
This commit is contained in:
parent
7e2e97f172
commit
5fd9e7e244
|
@ -17,29 +17,40 @@
|
||||||
(def event-handlers
|
(def event-handlers
|
||||||
{:on-open
|
{:on-open
|
||||||
(fn []
|
(fn []
|
||||||
(let [msg-input (by-id "msg-input")
|
; enable message sending UI
|
||||||
send-button (by-id "send-button")
|
(toggle-element (by-id "msg-input"))
|
||||||
send-message (fn [e]
|
(toggle-element (by-id "send-button")))
|
||||||
(say (dom/value msg-input))
|
|
||||||
(dom/set-value! msg-input ""))]
|
|
||||||
(toggle-element msg-input)
|
|
||||||
(toggle-element send-button)
|
|
||||||
(events/listen
|
|
||||||
(goog.events.KeyHandler. msg-input)
|
|
||||||
"key"
|
|
||||||
(fn [e]
|
|
||||||
(when (= (.-keyCode e) key-codes/ENTER)
|
|
||||||
(send-message e))))
|
|
||||||
(events/listen
|
|
||||||
send-button
|
|
||||||
"click"
|
|
||||||
send-message)))
|
|
||||||
|
|
||||||
:on-receive
|
:on-receive
|
||||||
(fn [data]
|
(fn [data]
|
||||||
|
; show messages received from the server
|
||||||
(dom/append! (by-id "room")
|
(dom/append! (by-id "room")
|
||||||
(-> (dom/create-element "div")
|
(-> (dom/create-element "div")
|
||||||
(dom/set-text! (str "MSG::" (:msg data))))))})
|
(dom/set-text! (str "MSG::" (:msg data))))))
|
||||||
|
|
||||||
|
:on-close
|
||||||
|
(fn [due-to-error? pending undelivered]
|
||||||
|
; disable message sending UI
|
||||||
|
(toggle-element (by-id "msg-input"))
|
||||||
|
(toggle-element (by-id "send-button")))})
|
||||||
|
|
||||||
(defn ^:export run []
|
(defn ^:export run []
|
||||||
(browserchannel/init! event-handlers))
|
; wire-up UI events
|
||||||
|
(let [msg-input (by-id "msg-input")
|
||||||
|
send-button (by-id "send-button")
|
||||||
|
send-message (fn [e]
|
||||||
|
(say (dom/value msg-input))
|
||||||
|
(dom/set-value! msg-input ""))]
|
||||||
|
(events/listen
|
||||||
|
(goog.events.KeyHandler. msg-input)
|
||||||
|
"key"
|
||||||
|
(fn [e]
|
||||||
|
(when (= (.-keyCode e) key-codes/ENTER)
|
||||||
|
(send-message e))))
|
||||||
|
(events/listen
|
||||||
|
send-button
|
||||||
|
"click"
|
||||||
|
send-message))
|
||||||
|
|
||||||
|
; initiate browserchannel session with the server
|
||||||
|
(browserchannel/connect! event-handlers))
|
||||||
|
|
Reference in a new issue