Skip to content

Commit 3a653b4

Browse files
committed
Drop haskell
1 parent bc55518 commit 3a653b4

60 files changed

Lines changed: 699 additions & 869 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Makefile

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -195,16 +195,72 @@ runner-kotlin:
195195
--security-opt=no-new-privileges=false \
196196
ghcr.io/hexlet-codebattle/kotlin:2.3.0
197197

198-
runner-kotlin:
198+
runner-js:
199199
podman run --rm -p 4040:4040 \
200200
--cap-add=SYS_ADMIN \
201201
--cap-add=SYS_CHROOT \
202202
--security-opt=no-new-privileges=false \
203-
ghcr.io/hexlet-codebattle/kotlin:2.3.0
203+
ghcr.io/hexlet-codebattle/js:25.4.0
204204

205-
runner-js:
205+
runner-dart:
206206
podman run --rm -p 4040:4040 \
207207
--cap-add=SYS_ADMIN \
208208
--cap-add=SYS_CHROOT \
209209
--security-opt=no-new-privileges=false \
210-
ghcr.io/hexlet-codebattle/js:25.4.0
210+
ghcr.io/hexlet-codebattle/dart:3.10.0
211+
212+
runner-csharp:
213+
podman run --rm -p 4040:4040 \
214+
--cap-add=SYS_ADMIN \
215+
--cap-add=SYS_CHROOT \
216+
--security-opt=no-new-privileges=false \
217+
ghcr.io/hexlet-codebattle/csharp:10.0.102
218+
219+
runner-clojure:
220+
podman run --rm -p 4040:4040 \
221+
--cap-add=SYS_ADMIN \
222+
--cap-add=SYS_CHROOT \
223+
--security-opt=no-new-privileges=false \
224+
ghcr.io/hexlet-codebattle/clojure:1.12.4
225+
226+
runner-elixir:
227+
podman run --rm -p 4040:4040 \
228+
--cap-add=SYS_ADMIN \
229+
--cap-add=SYS_CHROOT \
230+
--security-opt=no-new-privileges=false \
231+
ghcr.io/hexlet-codebattle/elixir:1.19.5
232+
233+
runner-golang:
234+
podman run --rm -p 4040:4040 \
235+
--cap-add=SYS_ADMIN \
236+
--cap-add=SYS_CHROOT \
237+
--security-opt=no-new-privileges=false \
238+
ghcr.io/hexlet-codebattle/golang:1.25.6
239+
240+
runner-php:
241+
podman run --rm -p 4040:4040 \
242+
--cap-add=SYS_ADMIN \
243+
--cap-add=SYS_CHROOT \
244+
--security-opt=no-new-privileges=false \
245+
ghcr.io/hexlet-codebattle/php:8.5.2
246+
247+
runner-java:
248+
podman run --rm -p 4040:4040 \
249+
--cap-add=SYS_ADMIN \
250+
--cap-add=SYS_CHROOT \
251+
--security-opt=no-new-privileges=false \
252+
ghcr.io/hexlet-codebattle/java:25.0.2
253+
254+
runner-zig:
255+
podman run --rm -p 4040:4040 \
256+
--cap-add=SYS_ADMIN \
257+
--cap-add=SYS_CHROOT \
258+
--security-opt=no-new-privileges=false \
259+
ghcr.io/hexlet-codebattle/zig:0.15.2
260+
261+
runner-rust:
262+
podman run --rm -p 4040:4040 \
263+
--cap-add=SYS_ADMIN \
264+
--cap-add=SYS_CHROOT \
265+
--security-opt=no-new-privileges=false \
266+
ghcr.io/hexlet-codebattle/rust:1.93.0

docs/001_product_review.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ Tournament grades: open, rookie, challenger, pro, elite, masters, grand_slam —
1414

1515
Seasons: Four per year aligned to equinoxes/solstices. Season points reset each season; lifetime Elo never resets.
1616

17-
Languages: 16 supported — clojure, cpp, csharp, dart, elixir, golang, haskell, java, js, kotlin, php, python, ruby, rust, swift, ts, zig.
17+
Languages: 16 supported — clojure, cpp, csharp, dart, elixir, golang, java, js, kotlin, php, python, ruby, rust, swift, ts, zig.

docs/002_tournament_gameplay_and_matches.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ Cheating reports: If cheating is confirmed against your opponent, your match sco
2020

2121
Languages & Environment
2222

23-
Supported languages: clojure, cpp, csharp, dart, elixir, golang, haskell, java, js, kotlin, php, python, ruby, rust, swift, ts, zig.
23+
Supported languages: clojure, cpp, csharp, dart, elixir, golang, java, js, kotlin, php, python, ruby, rust, swift, ts, zig.
2424

2525
Same task for both players in the match.

services/app/apps/codebattle/assets/css/style.scss

Lines changed: 91 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,48 @@ input[type="range"] {
211211
}
212212
}
213213

214+
input[type="range"].cb-range {
215+
--range-progress: 50%;
216+
217+
&::-webkit-slider-runnable-track {
218+
background: linear-gradient(90deg, $orange var(--range-progress), $cb-bg-panel var(--range-progress));
219+
border: 1px solid $cb-border-color;
220+
}
221+
222+
&::-moz-range-track {
223+
background: linear-gradient(90deg, $orange var(--range-progress), $cb-bg-panel var(--range-progress));
224+
border: 1px solid $cb-border-color;
225+
}
226+
227+
&::-webkit-slider-thumb {
228+
-webkit-appearance: none;
229+
width: 18px;
230+
height: 18px;
231+
margin-top: -6px;
232+
border-radius: 50%;
233+
background: $orange;
234+
border: 2px solid rgba(255, 255, 255, 0.6);
235+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
236+
}
237+
238+
&::-moz-range-thumb {
239+
width: 18px;
240+
height: 18px;
241+
border-radius: 50%;
242+
background: $orange;
243+
border: 2px solid rgba(255, 255, 255, 0.6);
244+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.5);
245+
}
246+
247+
&:focus-visible::-webkit-slider-thumb {
248+
box-shadow: 0 0 0 4px rgba(238, 55, 55, 0.25);
249+
}
250+
251+
&:focus-visible::-moz-range-thumb {
252+
box-shadow: 0 0 0 4px rgba(238, 55, 55, 0.25);
253+
}
254+
}
255+
214256
.dark-bg {
215257
background-color: $dark;
216258
}
@@ -2169,13 +2211,14 @@ a:hover {
21692211
border-bottom: 1px solid #3a3a45;
21702212
}
21712213

2214+
.stat-line:last-child {
2215+
border-bottom: none;
2216+
}
2217+
21722218
.stat-item:last-child {
21732219
border-right: none;
21742220
}
21752221

2176-
.stat-line:last-child {
2177-
border-bottom: none;
2178-
}
21792222

21802223
.stat-value {
21812224
font-size: 20px;
@@ -2242,6 +2285,50 @@ a:hover {
22422285
background-color: $cb-bg-highlight-panel;
22432286
}
22442287

2288+
.cb-create-game {
2289+
display: flex;
2290+
flex-direction: column;
2291+
gap: 16px;
2292+
}
2293+
2294+
.cb-create-game__section {
2295+
background: $cb-bg-highlight-panel;
2296+
border: 1px solid $cb-border-color;
2297+
border-radius: $cb-border-radius;
2298+
padding: 14px 16px 16px;
2299+
box-shadow: 0 8px 18px rgba(0, 0, 0, 0.25);
2300+
}
2301+
2302+
.cb-create-game__section-title {
2303+
display: flex;
2304+
align-items: center;
2305+
justify-content: space-between;
2306+
margin-bottom: 8px;
2307+
2308+
h5 {
2309+
letter-spacing: 0.02em;
2310+
}
2311+
}
2312+
2313+
.cb-create-game__section-title--with-value {
2314+
margin-bottom: 12px;
2315+
}
2316+
2317+
.cb-create-game__time-value {
2318+
color: white;
2319+
background: rgba(238, 55, 55, 0.16);
2320+
border: 1px solid rgba(238, 55, 55, 0.45);
2321+
padding: 2px 10px;
2322+
border-radius: 999px;
2323+
font-size: 0.85rem;
2324+
}
2325+
2326+
.cb-create-game__footer {
2327+
display: flex;
2328+
justify-content: flex-end;
2329+
padding-top: 4px;
2330+
}
2331+
22452332
.cb-border-color {
22462333
border-color: $cb-border-color !important;
22472334
}
@@ -2708,6 +2795,7 @@ a.cb-text-light:hover {
27082795
backdrop-filter: blur(16px);
27092796
}
27102797

2798+
27112799
.arrow::after,
27122800
.bs-popover-bottom .arrow::after {
27132801
border-bottom-color: rgba(0, 0, 0);

services/app/apps/codebattle/assets/js/staticAssets.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import '../static/images/landing/languages/c-sharp.svg?url';
3333
import '../static/images/landing/languages/dart.svg?url';
3434
import '../static/images/landing/languages/elixir.svg?url';
3535
import '../static/images/landing/languages/go.svg?url';
36-
import '../static/images/landing/languages/haskell.svg?url';
3736
import '../static/images/landing/languages/java.svg?url';
3837
import '../static/images/landing/languages/js.svg?url';
3938
import '../static/images/landing/languages/kotlin.svg?url';

services/app/apps/codebattle/assets/js/widgets/components/CountdownTimer.jsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,11 @@ function CountdownTimer({ time, timeoutSeconds, colorized = false }) {
4545
<span className="text-monospace">
4646
{timeoutSeconds && (
4747
<span>
48-
{i18n.t('Timeout in: %{time}', {
49-
time: moment.utc(duration).format('HH:mm:ss'),
50-
})}
48+
{duration <= 0
49+
? i18n.t('Time is Over')
50+
: i18n.t('Timeout in: %{time}', {
51+
time: moment.utc(duration).format('HH:mm:ss'),
52+
})}
5153
</span>
5254
)}
5355
</span>

services/app/apps/codebattle/assets/js/widgets/components/LanguageIcon.jsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import CsharpOriginalIcon from 'react-devicons/csharp/original';
66
import CssOriginalIcon from 'react-devicons/css3/original';
77
import DartOriginalIcon from 'react-devicons/dart/original';
88
import GolangOriginalIcon from 'react-devicons/go/original';
9-
import HaskellOriginalIcon from 'react-devicons/haskell/original';
109
import JavaOriginalIcon from 'react-devicons/java/original';
1110
import LessOriginalIcon from 'react-devicons/less/plain-wordmark';
1211
import MongodbOriginalIcon from 'react-devicons/mongodb/original';
@@ -46,9 +45,6 @@ const iconRenderers = {
4645
golang: (className) => (
4746
<GolangOriginalIcon className={className} size="1.25em" />
4847
),
49-
haskell: (className) => (
50-
<HaskellOriginalIcon className={className} size="1.125em" />
51-
),
5248
javascript: (className) => (
5349
<NodejsPlainIcon className={className} color="green" size="1.25em" />
5450
),

0 commit comments

Comments
 (0)