diff options
Diffstat (limited to 'ui/src/main/scala/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 + } + } + + } + +} |