aboutsummaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2018-05-06 13:56:16 -0700
committerJakob Odersky <jakob@odersky.com>2018-05-08 23:02:39 -0700
commit8ecae787ff7124b008229d958c579c73649dd9e4 (patch)
treedad7bea34d9b7ea0f716a783f3b57de491ec959e /ui
downloadscala-triad-8ecae787ff7124b008229d958c579c73649dd9e4.tar.gz
scala-triad-8ecae787ff7124b008229d958c579c73649dd9e4.tar.bz2
scala-triad-8ecae787ff7124b008229d958c579c73649dd9e4.zip
Initial commit
Diffstat (limited to 'ui')
-rw-r--r--ui/src/main/scala/Main.scala30
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
+ }
+ }
+
+ }
+
+}