diff --git a/frontend/src/main/scala/industries/sunshine/planningpoker/TableView.scala b/frontend/src/main/scala/industries/sunshine/planningpoker/TableView.scala index 49507ef..a5f53f9 100644 --- a/frontend/src/main/scala/industries/sunshine/planningpoker/TableView.scala +++ b/frontend/src/main/scala/industries/sunshine/planningpoker/TableView.scala @@ -34,8 +34,8 @@ object TableView { trait CardState case class NoCard(name: String) extends CardState - case object CardBack extends CardState - case class Open(value: String) extends CardState + case class CardBack(name: String) extends CardState + case class Open(name: String, value: String) extends CardState def getPlayerCardType( id: PlayerID, @@ -46,36 +46,46 @@ object TableView { state match { case isOpen: RoundStateView.Voting => if (myId == id) { - isOpen.myCard.fold(NoCard(name))(vote => Open(vote)) - } else isOpen.alreadyVoted.find(_ == id).fold(NoCard(name))(_ => CardBack) + isOpen.myCard.fold(NoCard(name))(vote => Open(name, vote)) + } else isOpen.alreadyVoted.find(_ == id).fold(NoCard(name))(_ => CardBack(name)) case isClosed: RoundStateView.Viewing => isClosed.votes .find(_._1 == id) .fold { g.console.error(s"missing vote for player $name") - Open("error") - } { case (_, vote) => Open(vote) } + Open(name, "error") + } { case (_, vote) => Open(name, vote) } } } def renderPlayerCard(state: Signal[CardState]): Element = { val cardTypeStyle = state.map { - case NoCard(_) => "bg-green-100 text-black border-2 border-black" - case CardBack => "bg-green-500 border-4 border-green-700" - case Open(_) => "text-black bg-gray-50 border-black border-2" + case NoCard(_) => "bg-green-100 text-black border-2 border-black" + case CardBack(_) => "bg-green-500 border-4 border-green-700" + case Open(_, _) => "text-black bg-gray-50 border-black border-2" } div( - className := "w-20 h-40 m-1 rounded flex justify-center items-center m-3", + className := "w-20 h-40 m-1 rounded flex flex-col justify-center items-center m-3", className <-- cardTypeStyle, + // the diagonal card value \ place text div( className := "-rotate-45 text-xl", child.text <-- state.map { - case NoCard(name) => name - case CardBack => "" - case Open(vote) => vote + case NoCard(name) => name + case CardBack(name) => name + case Open(_, vote) => vote + } + ), + // name under viewing the votes + div( + className := "text-xl", + child.text <-- state.map { + case Open(name, _) => name + case _ => "" } ) + ) }