header and leave room button prettified

This commit is contained in:
efim 2023-04-29 23:00:15 +04:00
parent d4eae63166
commit b06baf8c63
2 changed files with 8 additions and 6 deletions

View File

@ -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

View File

@ -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)
)
}
}