update chat-demo cljs

This commit is contained in:
Gered 2016-05-15 19:41:14 -04:00
parent 7e2e97f172
commit 5fd9e7e244

View file

@ -17,13 +17,30 @@
(def event-handlers
{:on-open
(fn []
; enable message sending UI
(toggle-element (by-id "msg-input"))
(toggle-element (by-id "send-button")))
:on-receive
(fn [data]
; show messages received from the server
(dom/append! (by-id "room")
(-> (dom/create-element "div")
(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 []
; 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 ""))]
(toggle-element msg-input)
(toggle-element send-button)
(events/listen
(goog.events.KeyHandler. msg-input)
"key"
@ -33,13 +50,7 @@
(events/listen
send-button
"click"
send-message)))
send-message))
:on-receive
(fn [data]
(dom/append! (by-id "room")
(-> (dom/create-element "div")
(dom/set-text! (str "MSG::" (:msg data))))))})
(defn ^:export run []
(browserchannel/init! event-handlers))
; initiate browserchannel session with the server
(browserchannel/connect! event-handlers))