From 8ecae787ff7124b008229d958c579c73649dd9e4 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Sun, 6 May 2018 13:56:16 -0700 Subject: Initial commit --- ui/src/main/scala/Main.scala | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 ui/src/main/scala/Main.scala (limited to 'ui') 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 + } + } + + } + +} -- cgit v1.2.3