Skip to content

Commit e6605d4

Browse files
authored
Merge pull request #181 from ScalaIO/setup-2025-edition
chore: cleanup and replace by 2025 edition
2 parents 8c178be + 6f656b0 commit e6605d4

File tree

19 files changed

+87
-188
lines changed

19 files changed

+87
-188
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Scala.IO Paris 2025
2+
3+
- Date: 17/10/2025
4+
- Location: Paris @ La Grande Crypte

public/sponsors/paris-2025.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Sponsors Paris 2025

src/main/resources/css/main.scss

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
}
5656
}
5757

58-
.grayed-out {
58+
button[disabled], .grayed-out {
5959
filter: grayscale(100%);
6060
}
6161

@@ -71,6 +71,10 @@ body {
7171
background: vars.$background-color;
7272
}
7373

74+
button[disabled] {
75+
cursor: not-allowed;
76+
}
77+
7478
#app > div {
7579
display: flex;
7680
flex-direction: column;

src/main/scala/io/scala/app/faq/FAQView.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ import io.scala.models.Organizer
1111
import io.scala.models.Social
1212
import io.scala.modules.elements.Cards
1313
import io.scala.modules.elements.Containers
14+
import io.scala.modules.elements.Image
1415
import io.scala.modules.elements.Links
1516
import io.scala.modules.elements.Lists
1617
import io.scala.modules.elements.Paragraphs
1718
import io.scala.modules.elements.Titles
1819
import io.scala.svgs.Icons.github
1920
import io.scala.views.SimpleView
20-
import io.scala.modules.elements.Image
2121

2222
object FAQView extends SimpleView {
2323
private def question(question: String, answer: Modifier[ReactiveElement[HTMLDivElement]]*): HtmlElement = {

src/main/scala/io/scala/app/schedule/ScheduleView.scala

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@ import java.time.LocalTime
77

88
import io.scala.Lexicon
99
import io.scala.SchedulePage
10-
import io.scala.data.ScheduleInfo
1110
import io.scala.modules.*
1211
import io.scala.modules.elements.*
1312
import io.scala.modules.layout.Tabs
1413
import io.scala.modules.syntax.*
1514
import io.scala.views.ReactiveView
1615

1716
case object ScheduleView extends ReactiveView[SchedulePage] {
18-
val selectedDay: Var[DayOfWeek] = Var(DayOfWeek.THURSDAY)
17+
val selectedDay: Var[DayOfWeek] = Var(DayOfWeek.FRIDAY)
1918

2019
lazy val globalHours: Seq[HtmlElement] =
2120
def renderHours(name: String, hours: Seq[LocalTime]) =
@@ -43,7 +42,6 @@ case object ScheduleView extends ReactiveView[SchedulePage] {
4342
)
4443

4544
def render(events: Seq[(DayOfWeek, HtmlElement)]) =
46-
println(s"${events.map(_._1).size}")
4745
Tabs(
4846
events,
4947
_.toString,
@@ -56,7 +54,7 @@ case object ScheduleView extends ReactiveView[SchedulePage] {
5654
Titles("Schedule"),
5755
div(),
5856
globalHours,
59-
Line(margin = 4, sizeUnit = "rem"),
60-
child <-- signal.map(_ => render(ScheduleInfo.allDays))
57+
Line(margin = 4, sizeUnit = "rem")
58+
// child <-- signal.map(_ => render(ScheduleInfo.allDays))
6159
)
6260
}

src/main/scala/io/scala/app/sessions/SessionList.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ case object SessionList extends ReactiveView[SessionsPage] {
1717
given Ordering[(String, List[Session])] =
1818
case ((cat1, talks1), (cat2, talks2)) =>
1919
val sizeComparison = talks1.size.compareTo(talks2.size)
20-
20+
2121
if sizeComparison != 0 then -sizeComparison
2222
else cat1.compareTo(cat2)
2323

src/main/scala/io/scala/app/sessions/SessionView.scala

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ package io.scala.app.sessions
22

33
import com.raquo.laminar.api.L.*
44

5-
import io.scala.extensions.grayOutIf
65
import io.scala.SessionPage
76
import io.scala.data.SessionsHistory
7+
import io.scala.extensions.grayOutIf
88
import io.scala.models.Session
99
import io.scala.modules.elements.Containers
1010
import io.scala.modules.elements.Paragraphs
@@ -23,15 +23,16 @@ object SessionView extends ReactiveView[SessionPage]:
2323
.getOrElse(notFoundTalk)
2424
sectionTag(
2525
className := "container talk",
26-
children <-- sessionSignal.map: session =>
26+
children <-- sessionSignal.map { session =>
2727
Seq(
2828
session.cancelledReason match
2929
case None => Titles(session.info.title)
3030
case Some(value) =>
3131
Titles.withSub(
3232
session.info.title,
3333
p(s"Cancelled: $value")
34-
),
34+
)
35+
,
3536
div(
3637
className := "talk-description",
3738
Paragraphs.description(session.renderDescription),
@@ -49,6 +50,7 @@ object SessionView extends ReactiveView[SessionPage]:
4950
),
5051
Containers.gridCards(session.speakers.map(SpeakerView(_).body))
5152
)
53+
}
5254
).grayOutIf(sessionSignal.map(_.cancelledReason.isDefined))
5355

5456
private val notFoundTalk = Session(

src/main/scala/io/scala/app/sessions/SpeakerView.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ package io.scala.app.sessions
22

33
import com.raquo.laminar.api.L.*
44

5-
import io.scala.models.Social
65
import io.scala.models.Session.Speaker
6+
import io.scala.models.Social
7+
import io.scala.modules.elements.Image
78
import io.scala.modules.elements.Titles
89
import io.scala.svgs.Icons
9-
import io.scala.modules.elements.Image
1010

1111
class SpeakerView(speaker: Speaker):
1212
def body: HtmlElement =

src/main/scala/io/scala/data/History.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,14 @@ enum Event(val sessions: List[Session], val sponsors: List[Sponsor]):
1919
SessionsData.paris_2024.map(Parsers.ConferenceSession.fromText),
2020
Parsers.ConferenceSponsor.fromText(SponsorsData.paris_2024)
2121
)
22+
case `paris-2025`
23+
extends Event(
24+
SessionsData.paris_2025.map(Parsers.ConferenceSession.fromText),
25+
Parsers.ConferenceSponsor.fromText(SponsorsData.paris_2025)
26+
)
2227

2328
object Event:
24-
val Current: Event = Event.`paris-2024`
29+
val Current: Event = Event.`paris-2025`
2530
// makes me want to use enumeratum again...
2631
def withName(name: String): Option[Event] =
2732
Event.values.find(_.toString == name)

src/main/scala/io/scala/data/ScheduleInfo.scala

Lines changed: 6 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package io.scala.data
22

33
import com.raquo.laminar.api.L.*
4-
import java.time.DayOfWeek
5-
import java.time.LocalTime
6-
74
import io.scala.models.Break
85
import io.scala.models.Session
96
import io.scala.models.Special
107
import io.scala.modules.syntax.*
118

9+
import java.time.DayOfWeek
10+
import java.time.LocalTime
11+
1212
object ScheduleInfo {
1313
val minStart = LocalTime.of(9, 0)
1414
val maxEnd = LocalTime.of(19, 0)
@@ -65,44 +65,7 @@ object ScheduleInfo {
6565
Special(Special.Kind.End).render
6666
).zipWithIndex.map { case (x, i) => x.gridArea(s"a${i + 1}") }
6767

68-
val day2 = List(
69-
time(9, 15).render(),
70-
session("how-functional-is-direct-style").render(room1),
71-
session("mill-builds-in-scala-3-a-migration-story").render(room2),
72-
session("tools-for-scala-workshop").render(room3),
73-
time(10, 0).render(),
74-
Break(Break.Kind.Large).render,
75-
time(10, 15).render(),
76-
session("optimize-data-transfer-kafka-to-bq").render(room1),
77-
session("zk-voting-in-scala-and-rust").render(room2),
78-
time(11, 0).render(),
79-
Break(Break.Kind.Large).render,
80-
time(11, 15).render(),
81-
session("plowing-postgres-and-unearthing-hidden-gems").render(room1),
82-
session("scary-stuff-less-metaprogramming-in-scala3").render(room2),
83-
time(12, 0).render(),
84-
Break(Break.Kind.Lunch1).render,
85-
time(13, 30).render(),
86-
session("welcome-to-scala-2.7.7-in-2024").render(room1),
87-
session("profunctors-for-fun-and-profit").render(room2),
88-
session("tools-for-scala-workshop").render(room3),
89-
time(14, 15).render(),
90-
Break(Break.Kind.Large).render,
91-
time(14, 30).render(),
92-
session("scala-performance-when-you-should-betray-fp-principles").render(room1),
93-
session("decisions4s-conditionals-higher-kinded-data-scala-3").render(room2),
94-
time(15, 15).render(),
95-
Break(Break.Kind.Large).render,
96-
time(15, 30).render(),
97-
session("better-scala-builds-with-mill").render(room1),
98-
session("embracing-failure-web-development-with-scala-3").render(room2),
99-
time(16, 15).render(),
100-
Break(Break.Kind.Large).render,
101-
time(16, 30).render(),
102-
session("programming-a-language").render(room1),
103-
time(17, 15).render(),
104-
Special(Special.Kind.End).render
105-
).zipWithIndex.map { case (x, i) => x.gridArea(s"a${i + 1}") }
106-
107-
val allDays = Seq((DayOfWeek.THURSDAY, div(day1, className := "day-base-layout day1")), (DayOfWeek.FRIDAY, div(day2, className := "day-base-layout day2")))
68+
val allDays = Seq(
69+
(DayOfWeek.THURSDAY, div(day1, className := "day-base-layout day1")),
70+
)
10871
}

0 commit comments

Comments
 (0)