Skip to content

Commit 8e87b42

Browse files
Make all panes scrollable for people with 2inch tall screens
1 parent 6094e1e commit 8e87b42

1 file changed

Lines changed: 48 additions & 39 deletions

File tree

web/src/main/scala/Main.scala

Lines changed: 48 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -34,51 +34,57 @@ object Main extends IOWebApp {
3434
def resultPane(dog: SignallingRef[IO, GameDog]): Resource[IO, HtmlElement[IO]] = {
3535
val calculatedSignal = dog.map(_.masterGene.calculateGenes())
3636
div(
37-
p("Horn type: ", calculatedSignal.map(_.hornType.display)),
38-
p("Horn placement: ", calculatedSignal.map(_.hornPlacement.display)),
39-
p("Ear type: ", calculatedSignal.map(_.earType.display)),
40-
p("Nose type: ", calculatedSignal.map(_.noseType.display)),
41-
p("Tail type: ", calculatedSignal.map(_.tailType.display)),
42-
p("Wing type: ", calculatedSignal.map(_.wingType.display)),
43-
p("Eye type: ", calculatedSignal.map(_.eyeType.displayName)),
44-
p("Mouth type: ", calculatedSignal.map(_.mouthType.displayName)),
45-
p("Front leg pairs: ", calculatedSignal.map(_.frontLegPairs.toString)),
46-
p("Back leg pairs: ", calculatedSignal.map(_.backLegPairs.toString)),
47-
p("Wing number: ", calculatedSignal.map(_.wingNumber.toString)),
48-
p("Tail number: ", calculatedSignal.map(_.tailNumber.toString)),
49-
p("Head number: ", calculatedSignal.map(_.headNumber.toString))
37+
cls := "scrollView",
38+
div(
39+
p("Horn type: ", calculatedSignal.map(_.hornType.display)),
40+
p("Horn placement: ", calculatedSignal.map(_.hornPlacement.display)),
41+
p("Ear type: ", calculatedSignal.map(_.earType.display)),
42+
p("Nose type: ", calculatedSignal.map(_.noseType.display)),
43+
p("Tail type: ", calculatedSignal.map(_.tailType.display)),
44+
p("Wing type: ", calculatedSignal.map(_.wingType.display)),
45+
p("Eye type: ", calculatedSignal.map(_.eyeType.displayName)),
46+
p("Mouth type: ", calculatedSignal.map(_.mouthType.displayName)),
47+
p("Front leg pairs: ", calculatedSignal.map(_.frontLegPairs.toString)),
48+
p("Back leg pairs: ", calculatedSignal.map(_.backLegPairs.toString)),
49+
p("Wing number: ", calculatedSignal.map(_.wingNumber.toString)),
50+
p("Tail number: ", calculatedSignal.map(_.tailNumber.toString)),
51+
p("Head number: ", calculatedSignal.map(_.headNumber.toString))
52+
)
5053
)
5154
}
5255
def generalPane(dog: SignallingRef[IO, GameDog]): Resource[IO,HtmlElement[IO]] = {
5356
val ageSignal = dog.imapCopied[DogAge]("age")
5457
val ageProgress = dog.imapCopied[Float]("ageProgress")
5558
div(
56-
strCompTextbox("Name:", dog.imapCopied("dogName")),
57-
p(
58-
"Age:",
59-
select.withSelf { self =>
60-
(
61-
DogAge.values.filter(_ != DogAge.Empty).map(it => option(value := it.ordinal.toString, it.toString)).toList,
62-
onChange --> {
63-
_.evalMap(_ => self.value.get).map(DogAge.parseString).foreach(ageSignal.set)
64-
},
65-
value <-- ageSignal.map(_.ordinal.toString)
66-
)
67-
}
68-
),
69-
p(
70-
"Age Progress:",
71-
input.withSelf { self =>
72-
(
73-
tpe := "text",
74-
onChange --> {
75-
_.evalMap(_ => self.value.get).foreach(_.toFloatOption.map(it => ageProgress.set(it)).getOrElse(IO.pure(())))
76-
},
77-
value <-- ageProgress.map(_.toString)
78-
)
79-
}
80-
),
81-
strCompTextbox("Random Seed:", SignallingRef.lens[IO, GameDog, String](dog)(_.masterGene.randomSeed, src => it => src.copy(masterGene = src.masterGene.copy(randomSeed = it))))
59+
cls := "scrollView",
60+
div(
61+
strCompTextbox("Name:", dog.imapCopied("dogName")),
62+
p(
63+
"Age:",
64+
select.withSelf { self =>
65+
(
66+
DogAge.values.filter(_ != DogAge.Empty).map(it => option(value := it.ordinal.toString, it.toString)).toList,
67+
onChange --> {
68+
_.evalMap(_ => self.value.get).map(DogAge.parseString).foreach(ageSignal.set)
69+
},
70+
value <-- ageSignal.map(_.ordinal.toString)
71+
)
72+
}
73+
),
74+
p(
75+
"Age Progress:",
76+
input.withSelf { self =>
77+
(
78+
tpe := "text",
79+
onChange --> {
80+
_.evalMap(_ => self.value.get).foreach(_.toFloatOption.map(it => ageProgress.set(it)).getOrElse(IO.pure(())))
81+
},
82+
value <-- ageProgress.map(_.toString)
83+
)
84+
}
85+
),
86+
strCompTextbox("Random Seed:", SignallingRef.lens[IO, GameDog, String](dog)(_.masterGene.randomSeed, src => it => src.copy(masterGene = src.masterGene.copy(randomSeed = it))))
87+
)
8288
)
8389
}
8490
def dualGeneGroup(name: String, dualGene: SignallingRef[IO, DualGene]): Resource[IO, HtmlElement[IO]] = {
@@ -191,6 +197,8 @@ object Main extends IOWebApp {
191197
val nicenessPersonality = personality.imapCopied[NicenessPersonality]("niceness")
192198
val pettablePersonality = personality.imapCopied[PettablePersonality]("pettable")
193199
val loudnessPersonality = personality.imapCopied[LoudnessPersonality]("loudness")
200+
div(
201+
cls := "scrollView",
194202
div(
195203
personalityBinder[SocialPersonality](socialPersonality, "Social: "),
196204
personalityBinder[EnergyPersonality](energyPersonality, "Energy: "),
@@ -200,6 +208,7 @@ object Main extends IOWebApp {
200208
personalityBinder[PettablePersonality](pettablePersonality, "Pettable: "),
201209
personalityBinder[LoudnessPersonality](loudnessPersonality, "Loudness: ")
202210
)
211+
)
203212
}
204213
def tab(selectedTab: SignallingRef[IO, Int], name: String, id: Int): Resource[IO, HtmlElement[IO]] = {
205214
button(

0 commit comments

Comments
 (0)