aboutsummaryrefslogtreecommitdiff
path: root/ui/src/main/scala/Main.scala
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/main/scala/Main.scala')
-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
+ }
+ }
+
+ }
+
+}