From 77b34a2ca7fac8ece7c07ce7ce6b6afa54e741f3 Mon Sep 17 00:00:00 2001 From: efim Date: Sun, 23 Apr 2023 23:15:59 +0400 Subject: [PATCH] change Map to List in model, scalajs didn't decode --- .../industries/sunshine/planningpoker/Models.scala | 13 +------------ .../sunshine/planningpoker/TestModels.scala | 4 ++-- .../sunshine/planningpoker/PlanningPokerUrgh.scala | 12 ------------ .../sunshine/planningpoker/TableView.scala | 4 ++-- 4 files changed, 5 insertions(+), 28 deletions(-) diff --git a/common/src/main/scala/industries/sunshine/planningpoker/Models.scala b/common/src/main/scala/industries/sunshine/planningpoker/Models.scala index 3a79d1f..67cbbc3 100644 --- a/common/src/main/scala/industries/sunshine/planningpoker/Models.scala +++ b/common/src/main/scala/industries/sunshine/planningpoker/Models.scala @@ -22,10 +22,6 @@ object Models { } object RoomStateView { - given Encoder[Map[PlayerID, String]] = Encoder.encodeMap[PlayerID, String] - given Decoder[Map[PlayerID, String]] = Decoder.decodeMap[PlayerID, String] - given Codec[Map[PlayerID, String]] = Codec.from(summon[Decoder[Map[PlayerID, String]]], summon[Encoder[Map[PlayerID, String]]]) - val empty = RoomStateView( List.empty, PlayerID(0), List.empty, RoundState.Voting(None, List.empty), false ) @@ -45,16 +41,9 @@ object Models { /** view state for round after opening the votes */ case Viewing( - votes: Map[PlayerID, String] + votes: List[(PlayerID, String)] ) - final case class PlayerID(id: Long) derives Codec.AsObject - object PlayerID { - given KeyEncoder[PlayerID] with - def apply(key: PlayerID): String = key.toString - given KeyDecoder[PlayerID] with - def apply(key: String): Option[PlayerID] = key.toLongOption.map(PlayerID.apply(_)) - } final case class Player(name: String, id: PlayerID) derives Codec.AsObject diff --git a/common/src/main/scala/industries/sunshine/planningpoker/TestModels.scala b/common/src/main/scala/industries/sunshine/planningpoker/TestModels.scala index 515a6a2..d922cc1 100644 --- a/common/src/main/scala/industries/sunshine/planningpoker/TestModels.scala +++ b/common/src/main/scala/industries/sunshine/planningpoker/TestModels.scala @@ -23,7 +23,7 @@ object TestModels { me = me.id, allowedCards = List("xs", "s", "m", "l", "xl"), round = RoundState.Viewing( - Map(me.id -> "xs", pony.id -> "l", birdy.id -> "s", horsey.id -> "m") + List(me.id -> "xs", pony.id -> "l", birdy.id -> "s", horsey.id -> "m") ), canCloseRound = true ) @@ -98,7 +98,7 @@ object TestModels { me = me.id, allowedCards = List("xs", "s", "m", "l", "xl"), round = RoundState.Viewing( - Map(me.id -> "m", pony.id -> "l", birdy.id -> "s", horsey.id -> "m") + List(me.id -> "m", pony.id -> "l", birdy.id -> "s", horsey.id -> "m") ), canCloseRound = true ) diff --git a/frontend/src/main/scala/industries/sunshine/planningpoker/PlanningPokerUrgh.scala b/frontend/src/main/scala/industries/sunshine/planningpoker/PlanningPokerUrgh.scala index d595d20..00fe57d 100644 --- a/frontend/src/main/scala/industries/sunshine/planningpoker/PlanningPokerUrgh.scala +++ b/frontend/src/main/scala/industries/sunshine/planningpoker/PlanningPokerUrgh.scala @@ -54,18 +54,6 @@ object Main { def appElement(): Element = { div( className := "w-screen h-screen flex flex-col justify-center items-center", - div( - className := "bg-yellow-400", - child.text <-- roomStateWSStream.events - .map { ev => - { - val a = ev.toString() - g.console.warn(s"got state $a") - a - } - } - .startWith("BEFORE WS") - ), div( className := "h-24 w-full flex flex-for justify-center items-center bg-green-200", p(className := "text-2xl", "Here be header") diff --git a/frontend/src/main/scala/industries/sunshine/planningpoker/TableView.scala b/frontend/src/main/scala/industries/sunshine/planningpoker/TableView.scala index 67b157d..b88e039 100644 --- a/frontend/src/main/scala/industries/sunshine/planningpoker/TableView.scala +++ b/frontend/src/main/scala/industries/sunshine/planningpoker/TableView.scala @@ -46,11 +46,11 @@ object TableView { } else isOpen.alreadyVoted.find(_.id == id).fold(NoCard(name))(_ => CardBack) case isClosed: RoundState.Viewing => isClosed.votes - .get(id) + .find(_._1 == id) .fold { g.console.error(s"missing vote for player $name") Open("error") - } { vote => Open(vote) } + } { case (_, vote) => Open(vote) } } }