diff options
author | Jakob Odersky <jakob@inpher.io> | 2019-11-26 00:03:43 -0500 |
---|---|---|
committer | Jakob Odersky <jakob@inpher.io> | 2019-11-26 13:40:36 -0500 |
commit | f38dd59d93f56213a8400841c7ebb0a7202144a7 (patch) | |
tree | a697acc765cf6203eb0a499601185d1303da8939 /webapp | |
parent | 2f298c65846b2f62b9b40cd23f11971b301829f3 (diff) | |
download | scala-tutorial-f38dd59d93f56213a8400841c7ebb0a7202144a7.tar.gz scala-tutorial-f38dd59d93f56213a8400841c7ebb0a7202144a7.tar.bz2 scala-tutorial-f38dd59d93f56213a8400841c7ebb0a7202144a7.zip |
Share model across fe and be and add websocket support
Diffstat (limited to 'webapp')
-rw-r--r-- | webapp/src/Main.scala | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/webapp/src/Main.scala b/webapp/src/Main.scala index 5aa2f2b..7aa1322 100644 --- a/webapp/src/Main.scala +++ b/webapp/src/Main.scala @@ -5,9 +5,30 @@ import scalajs.js.annotation @annotation.JSExportTopLevel("Main") object Main { + object Templates extends Templates(scalatags.JsDom) + @annotation.JSExport - def func() = { - dom.console.log("hello from ScalaJS!") + def main() = { + + val container = dom.document.getElementById("conversation") + val address = { + val location = dom.window.location + val protocol = if (location.protocol == "https:") { + "wss" + } else { + "ws" + } + s"$protocol://${location.host}/feed" + } + val ws = new dom.WebSocket(address) + + ws.onmessage = event => { + val msg = upickle.default.read[Message]( + event.data.asInstanceOf[String]) + + container.appendChild(Templates.message(msg).render) + dom.window.scrollTo(0, dom.document.body.scrollHeight) + } } } |