Main.scala 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package com.weEat
  2. import com.tflucke.webroutes.Headers
  3. import com.weEat.view.View
  4. import com.weEat.modules.Navbar
  5. import org.querki.jquery.{JQueryStatic => $}
  6. import org.scalajs.dom.{document,window}
  7. import org.scalajs.dom.raw.HTMLInputElement
  8. import scala.concurrent.ExecutionContext.Implicits.global
  9. object Main {
  10. implicit def headers = Headers(Seq(
  11. csrfHeader,
  12. OAuthManager.authHeader
  13. ).flatten.toMap)
  14. /* Get the CSRF token embedded in the HTML page. This token will implicitly
  15. * be passed to Rest RPC.
  16. */
  17. val csrfSelector = "input[name=\"csrfToken\"]"
  18. def csrfHeader = Option(document.querySelector(csrfSelector)).map({ x =>
  19. ("Csrf-Token" -> x.asInstanceOf[HTMLInputElement].value)
  20. })
  21. def main(args: Array[String]): Unit = {
  22. import org.scalajs.dom.experimental.URLSearchParams
  23. OAuthManager.refreshToken()
  24. $("#btn-login").click(OAuthManager.promptLogin _)
  25. $("#btn-signup").click(OAuthManager.promptSignup _)
  26. $("#btn-logout").click(OAuthManager.logout _)
  27. val navbar = Navbar(View.authedIndex)
  28. mhtml.mount(
  29. document.getElementById("navbarNav"),
  30. navbar.render
  31. )
  32. val params = new URLSearchParams(window.location.search)
  33. navbar.renderView(View.fromTag(params.get("t")))
  34. }
  35. }