diff options
author | Jakob Odersky <jakob@odersky.com> | 2018-05-06 13:56:16 -0700 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2018-05-08 23:02:39 -0700 |
commit | 8ecae787ff7124b008229d958c579c73649dd9e4 (patch) | |
tree | dad7bea34d9b7ea0f716a783f3b57de491ec959e /ui/src/main/scala | |
download | scala-triad-8ecae787ff7124b008229d958c579c73649dd9e4.tar.gz scala-triad-8ecae787ff7124b008229d958c579c73649dd9e4.tar.bz2 scala-triad-8ecae787ff7124b008229d958c579c73649dd9e4.zip |
Initial commit
Diffstat (limited to 'ui/src/main/scala')
-rw-r--r-- | ui/src/main/scala/Main.scala | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ui/src/main/scala/Main.scala b/ui/src/main/scala/Main.scala new file mode 100644 index 0000000..3621b4a --- /dev/null +++ b/ui/src/main/scala/Main.scala @@ -0,0 +1,30 @@ +package triad + +import spray.json._ +import ApiProtocol._ +import scalajs.js +import org.scalajs.dom +import org.scalajs.dom.html + +@js.annotation.JSExport +object Main { + + @js.annotation.JSExport + def main(root: html.Element): Unit = { + val source = new dom.EventSource("live") + + source.onmessage = (e: dom.MessageEvent) => { + val str = e.data.asInstanceOf[String] + if (str.nonEmpty) { // ignore empty strings on heartbeats + println(str) + val message = str.parseJson.convertTo[Message] + val template = JsTemplates.message(message) + root.appendChild(template.render) + dom.window + .scrollTo(0, dom.document.body.scrollHeight) // scroll to bottom + } + } + + } + +} |