Skip to content

Commit 8302581

Browse files
authored
Small cosmetic fixes for UserRating and Contests views (#1268)
### What's done: - added cosmetic enhancements to UserRating - changed Contests view: added featured contests
1 parent 7c7820d commit 8302581

15 files changed

Lines changed: 452 additions & 305 deletions

File tree

save-frontend/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ kotlin {
7474
implementation(npm("@fortawesome/free-solid-svg-icons", "5.15.3"))
7575
implementation(npm("@fortawesome/free-brands-svg-icons", "5.15.3"))
7676
implementation(npm("@fortawesome/react-fontawesome", "^0.1.16"))
77+
implementation(npm("devicon", "^2.15.1"))
7778
implementation(npm("animate.css", "^4.1.1"))
7879
implementation(npm("react-scroll-motion", "^0.3.0"))
7980
implementation(npm("react-spinners", "0.13.0"))

save-frontend/src/main/kotlin/com/saveourtool/save/frontend/components/views/ContestView.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ import csstype.ClassName
2323
import history.Location
2424
import react.*
2525
import react.dom.html.InputType
26-
import react.dom.html.ReactHTML
2726
import react.dom.html.ReactHTML.div
2827
import react.dom.html.ReactHTML.h1
2928
import react.dom.html.ReactHTML.input
29+
import react.dom.html.ReactHTML.label
3030
import react.dom.html.ReactHTML.li
3131
import react.dom.html.ReactHTML.nav
3232
import react.dom.html.ReactHTML.p
@@ -159,7 +159,7 @@ class ContestView : AbstractView<ContestViewProps, ContestViewState>(false) {
159159
}
160160
}
161161
div {
162-
ReactHTML.label {
162+
label {
163163
className = ClassName("form-check-label")
164164
htmlFor = "isFeaturedCheckbox"
165165
+"Featured contest"

save-frontend/src/main/kotlin/com/saveourtool/save/frontend/components/views/contests/ContestListView.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,15 +66,14 @@ class ContestListView : AbstractView<ContestListViewProps, ContestListViewState>
6666

6767
div {
6868
className = ClassName("row mb-2")
69-
featuredContest()
69+
welcomeContest()
7070
newContestsCard()
7171
}
7272

7373
div {
7474
className = ClassName("row mb-2")
7575
yourContests()
7676
statistics()
77-
proposeContest()
7877
}
7978

8079
div {

save-frontend/src/main/kotlin/com/saveourtool/save/frontend/components/views/contests/ContestsStatistics.kt

Lines changed: 68 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,78 @@ import csstype.AlignItems
1111
import csstype.ClassName
1212
import csstype.JustifyContent
1313
import csstype.rem
14+
import react.ChildrenBuilder
1415
import react.VFC
15-
import react.dom.html.ReactHTML
1616
import react.dom.html.ReactHTML.div
17-
import react.dom.html.ReactHTML.h2
17+
import react.dom.html.ReactHTML.h1
1818
import react.dom.html.ReactHTML.strong
1919
import react.useState
2020

2121
import kotlinx.js.jso
2222

2323
val statistics = statistics()
2424

25+
/**
26+
* @param activeContests
27+
* @param finishedContests
28+
*/
29+
fun ChildrenBuilder.stats(activeContests: Set<ContestDto>, finishedContests: Set<ContestDto>) {
30+
div {
31+
className = ClassName("row border-bottom mb-3 mx-3")
32+
33+
div {
34+
className = ClassName("col-lg-6 mt-2 mb-2")
35+
div {
36+
className = ClassName("row")
37+
style = jso {
38+
justifyContent = JustifyContent.center
39+
alignItems = AlignItems.center
40+
}
41+
strong {
42+
className = ClassName("d-inline-block mb-2 card-text")
43+
+"Active contests:"
44+
}
45+
}
46+
div {
47+
className = ClassName("row")
48+
style = jso {
49+
justifyContent = JustifyContent.center
50+
alignItems = AlignItems.center
51+
}
52+
h1 {
53+
className = ClassName("text-dark")
54+
+activeContests.size.toString()
55+
}
56+
}
57+
}
58+
div {
59+
className = ClassName("col-lg-6 mt-2")
60+
div {
61+
className = ClassName("row")
62+
style = jso {
63+
justifyContent = JustifyContent.center
64+
alignItems = AlignItems.center
65+
}
66+
strong {
67+
className = ClassName("d-inline-block mb-2 card-text ")
68+
+"Finished contests:"
69+
}
70+
}
71+
div {
72+
className = ClassName("row")
73+
style = jso {
74+
justifyContent = JustifyContent.center
75+
alignItems = AlignItems.center
76+
}
77+
h1 {
78+
className = ClassName("text-dark")
79+
+finishedContests.size.toString()
80+
}
81+
}
82+
}
83+
}
84+
}
85+
2586
@Suppress("TOO_LONG_FUNCTION", "LongMethod")
2687
private fun statistics() = VFC {
2788
val (activeContests, setActiveContests) = useState<Set<ContestDto>>(emptySet())
@@ -48,60 +109,15 @@ private fun statistics() = VFC {
48109

49110
div {
50111
className = ClassName("col-lg-4")
51-
ReactHTML.div {
112+
div {
52113
className = ClassName("card flex-md-row mb-1 box-shadow")
53114
style = jso {
54-
minHeight = 10.rem
115+
minHeight = 15.rem
55116
}
56117
div {
57-
className = ClassName("col-lg-6 mt-2")
58-
div {
59-
className = ClassName("row")
60-
style = jso {
61-
justifyContent = JustifyContent.center
62-
alignItems = AlignItems.center
63-
}
64-
strong {
65-
className = ClassName("d-inline-block mb-2 card-text")
66-
+"Active contests:"
67-
}
68-
}
69-
div {
70-
className = ClassName("row")
71-
style = jso {
72-
justifyContent = JustifyContent.center
73-
alignItems = AlignItems.center
74-
}
75-
h2 {
76-
className = ClassName("text-dark")
77-
+activeContests.size.toString()
78-
}
79-
}
80-
}
81-
div {
82-
className = ClassName("col-lg-6 mt-2")
83-
div {
84-
className = ClassName("row")
85-
style = jso {
86-
justifyContent = JustifyContent.center
87-
alignItems = AlignItems.center
88-
}
89-
strong {
90-
className = ClassName("d-inline-block mb-2 card-text ")
91-
+"Finished contests:"
92-
}
93-
}
94-
div {
95-
className = ClassName("row")
96-
style = jso {
97-
justifyContent = JustifyContent.center
98-
alignItems = AlignItems.center
99-
}
100-
h2 {
101-
className = ClassName("text-dark")
102-
+finishedContests.size.toString()
103-
}
104-
}
118+
className = ClassName("col-lg-12")
119+
stats(activeContests, finishedContests)
120+
proposeContest()
105121
}
106122
}
107123
}

save-frontend/src/main/kotlin/com/saveourtool/save/frontend/components/views/contests/FeaturedContest.kt

Lines changed: 0 additions & 152 deletions
This file was deleted.

0 commit comments

Comments
 (0)