add display of the name on the open card
to make disambiguation on the viewing round simpler will style this later
This commit is contained in:
parent
d7d4e2be9d
commit
a87f4f99c0
|
@ -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 _ => ""
|
||||
}
|
||||
)
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue