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
|
trait CardState
|
||||||
case class NoCard(name: String) extends CardState
|
case class NoCard(name: String) extends CardState
|
||||||
case object CardBack extends CardState
|
case class CardBack(name: String) extends CardState
|
||||||
case class Open(value: String) extends CardState
|
case class Open(name: String, value: String) extends CardState
|
||||||
|
|
||||||
def getPlayerCardType(
|
def getPlayerCardType(
|
||||||
id: PlayerID,
|
id: PlayerID,
|
||||||
|
@ -46,36 +46,46 @@ object TableView {
|
||||||
state match {
|
state match {
|
||||||
case isOpen: RoundStateView.Voting =>
|
case isOpen: RoundStateView.Voting =>
|
||||||
if (myId == id) {
|
if (myId == id) {
|
||||||
isOpen.myCard.fold(NoCard(name))(vote => Open(vote))
|
isOpen.myCard.fold(NoCard(name))(vote => Open(name, vote))
|
||||||
} else isOpen.alreadyVoted.find(_ == id).fold(NoCard(name))(_ => CardBack)
|
} else isOpen.alreadyVoted.find(_ == id).fold(NoCard(name))(_ => CardBack(name))
|
||||||
case isClosed: RoundStateView.Viewing =>
|
case isClosed: RoundStateView.Viewing =>
|
||||||
isClosed.votes
|
isClosed.votes
|
||||||
.find(_._1 == id)
|
.find(_._1 == id)
|
||||||
.fold {
|
.fold {
|
||||||
g.console.error(s"missing vote for player $name")
|
g.console.error(s"missing vote for player $name")
|
||||||
Open("error")
|
Open(name, "error")
|
||||||
} { case (_, vote) => Open(vote) }
|
} { case (_, vote) => Open(name, vote) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def renderPlayerCard(state: Signal[CardState]): Element = {
|
def renderPlayerCard(state: Signal[CardState]): Element = {
|
||||||
val cardTypeStyle = state.map {
|
val cardTypeStyle = state.map {
|
||||||
case NoCard(_) => "bg-green-100 text-black border-2 border-black"
|
case NoCard(_) => "bg-green-100 text-black border-2 border-black"
|
||||||
case CardBack => "bg-green-500 border-4 border-green-700"
|
case CardBack(_) => "bg-green-500 border-4 border-green-700"
|
||||||
case Open(_) => "text-black bg-gray-50 border-black border-2"
|
case Open(_, _) => "text-black bg-gray-50 border-black border-2"
|
||||||
}
|
}
|
||||||
|
|
||||||
div(
|
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,
|
className <-- cardTypeStyle,
|
||||||
|
// the diagonal card value \ place text
|
||||||
div(
|
div(
|
||||||
className := "-rotate-45 text-xl",
|
className := "-rotate-45 text-xl",
|
||||||
child.text <-- state.map {
|
child.text <-- state.map {
|
||||||
case NoCard(name) => name
|
case NoCard(name) => name
|
||||||
case CardBack => ""
|
case CardBack(name) => name
|
||||||
case Open(vote) => vote
|
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