aboutsummaryrefslogtreecommitdiff
path: root/webapp
diff options
context:
space:
mode:
authorJakob Odersky <jakob@inpher.io>2019-11-26 00:03:43 -0500
committerJakob Odersky <jakob@inpher.io>2019-11-26 13:40:36 -0500
commitf38dd59d93f56213a8400841c7ebb0a7202144a7 (patch)
treea697acc765cf6203eb0a499601185d1303da8939 /webapp
parent2f298c65846b2f62b9b40cd23f11971b301829f3 (diff)
downloadscala-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.scala25
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)
+ }
}
}