diff --git a/frontend/src/main/scala/industries/sunshine/planningpoker/FrontendMain.scala b/frontend/src/main/scala/industries/sunshine/planningpoker/FrontendMain.scala index c43fa47..f65fe13 100644 --- a/frontend/src/main/scala/industries/sunshine/planningpoker/FrontendMain.scala +++ b/frontend/src/main/scala/industries/sunshine/planningpoker/FrontendMain.scala @@ -27,7 +27,7 @@ object Main { def appElement(): Element = { div( className := "w-screen h-screen flex flex-col justify-center items-center", - Header.render(loggedIn.writer), + Header.render(loggedIn.writer, loggedIn.signal), child <-- loggedIn.signal.map(if (_) emptyNode else JoinRoomComponent.render(loggedIn.writer)), child <-- loggedIn.signal.map( if (_) RoomView.renderRoom(loggedIn.writer) else emptyNode diff --git a/frontend/src/main/scala/industries/sunshine/planningpoker/Header.scala b/frontend/src/main/scala/industries/sunshine/planningpoker/Header.scala index bd22ea3..46e1120 100644 --- a/frontend/src/main/scala/industries/sunshine/planningpoker/Header.scala +++ b/frontend/src/main/scala/industries/sunshine/planningpoker/Header.scala @@ -10,20 +10,22 @@ import scala.scalajs.js.Dynamic.{global => g} import concurrent.ExecutionContext.Implicits.global object Header { - def render(loggedIn: Observer[Boolean]): Element = { + def render(loggedInObserver: Observer[Boolean], loggedInSignal: Signal[Boolean]): Element = { val (responsesStream, responseReceived) = EventStream.withCallback[FetchResponse[String]] val logoutButton = button( - "Logout", + "Leave Room", + className := "border border-black m-2 p-2 absolute right-2", onClick.flatMap(_ => Fetch.get("/api/logout").text) --> responseReceived, responsesStream --> Observer(resp => g.console.info(s"${resp.toString()}")), - responsesStream.collect { case resp if resp.ok => false } --> loggedIn + responsesStream.collect { case resp if resp.ok => false } --> loggedInObserver ) + val cachedEmpty = emptyNode div( className := "h-24 w-full flex flex-for justify-center items-center bg-green-200", - p(className := "text-2xl", "Here be header"), - logoutButton + p(className := "text-2xl", "Planning Poker Grargh (nonpretty prealpha version)"), + child <-- loggedInSignal.map(if (_) logoutButton else cachedEmpty) ) } }