Skip to content

Commit d4fac25

Browse files
authored
Merge pull request #178 from HackHPI/feature/schedule2025
✨ Added time table for 2025
2 parents 4dd717e + b64b0eb commit d4fac25

File tree

2 files changed

+249
-97
lines changed

2 files changed

+249
-97
lines changed

src/app/page.tsx

+2-3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {Features} from "../components/Features/Features";
1010
import LandingImage from "../components/LandingImage/LandingImage";
1111
import {Gallery} from "../components/Gallery/Gallery";
1212
import Registration from "../components/Registration/Registration";
13+
import {TimeTable} from "../components/TimeTable/TimeTable";
1314

1415
export default function Page() {
1516
return (
@@ -25,9 +26,7 @@ export default function Page() {
2526
{/* <Location />*/}
2627
<Speakers/>
2728
<Jury/>
28-
{/*
29-
<TimeTable/>
30-
*/}
29+
<TimeTable/>
3130
<Faq/>
3231
<Team/>
3332
</>

src/components/TimeTable/TimeTable.jsx

+247-94
Original file line numberDiff line numberDiff line change
@@ -1,113 +1,242 @@
1-
import {Box, Card, Chip, Container, Divider, Grid, Stack, Typography} from "@mui/material";
1+
"use client";
2+
import {Box, Card, Chip, Container, Divider, Grid, IconButton, Stack, Typography} from "@mui/material";
23
import {
34
Campaign,
45
Celebration,
56
ConfirmationNumber,
67
EmojiEvents,
78
EmojiObjects,
9+
KeyboardArrowLeft,
10+
KeyboardArrowRight,
811
PlayArrow,
912
Restaurant,
1013
Stop
1114
} from "@mui/icons-material";
15+
import * as React from "react";
16+
import {useState} from "react";
1217
import {IconContainer} from "../Features/Features";
1318

14-
const dayOne = [
19+
const dayOneYears = [
1520
{
16-
time: "09:00 - 11:00",
17-
icon: <ConfirmationNumber/>,
18-
title: "Check-In",
19-
person: "",
20-
},
21-
{
22-
time: "09:30 - 11:00",
23-
icon: <Restaurant/>,
24-
title: "Breakfast & Get to know each other",
25-
person: "",
26-
},
27-
{
28-
time: "11:00 - 12:00",
29-
icon: <Campaign/>,
30-
title: "Introduction & Speakers",
31-
person: "",
32-
},
33-
{
34-
time: "12:00 - 13:00",
35-
icon: <EmojiObjects/>,
36-
title: "Challenge Input Sessions",
37-
person: "",
38-
},
39-
{
40-
time: "13:00 - 14:00",
41-
icon: <Restaurant/>,
42-
title: "Lunch",
43-
person: "",
44-
},
45-
{
46-
time: "14:00 - 13:00 next day (Continuously)",
47-
icon: <PlayArrow/>,
48-
title: "Start Hacking Time",
49-
person: "",
50-
},
51-
{
52-
time: "14:00 - 14:30",
53-
icon: <EmojiObjects/>,
54-
title: "Starwit Challenge Workshop",
55-
person: "optional",
56-
},
57-
{
58-
time: "16:00 - 16:30",
59-
icon: <EmojiObjects/>,
60-
title: "AI Workshop by Axel Springer",
61-
person: "optional",
62-
},
63-
{
64-
time: "18:30 - 19:00",
65-
icon: <EmojiObjects/>,
66-
title: "Pitch Workshop by Axel Springer",
67-
person: "optional",
21+
year: 2025,
22+
subtitle: "Friday 21.03",
23+
dayOne: [
24+
{
25+
time: "09:00 - 11:00",
26+
icon: <ConfirmationNumber/>,
27+
title: "Check-In + Breakfast",
28+
person: "",
29+
},
30+
{
31+
time: "11:00 - 12:00",
32+
icon: <Campaign/>,
33+
title: "Intro Presentations + Speaker",
34+
person: "",
35+
},
36+
{
37+
time: "12:00 - 13:00",
38+
icon: <Campaign/>,
39+
title: "Challenge Presentation",
40+
person: "",
41+
},
42+
{
43+
time: "13:00 - 14:00",
44+
icon: <Restaurant/>,
45+
title: "Lunch",
46+
person: "",
47+
},
48+
{
49+
time: "13:45 - 14:30",
50+
icon: <EmojiObjects/>,
51+
title: "JITAI Challenge Input Session",
52+
person: "optional",
53+
},
54+
{
55+
time: "14:00 - 15:00",
56+
icon: <EmojiObjects/>,
57+
title: "ottobock Challenge Input Session",
58+
person: "optional",
59+
},
60+
{
61+
time: "14:00 - 15:00",
62+
icon: <EmojiObjects/>,
63+
title: "Open Challenge Input Session",
64+
person: "optional",
65+
},
66+
{
67+
time: "14:00 - 13:00 next day (continuously)",
68+
icon: <PlayArrow/>,
69+
title: "Begin Hacking Time",
70+
person: "",
71+
},
72+
{
73+
time: "16:00 - 17:00",
74+
icon: <EmojiObjects/>,
75+
title: "Pitch Workshop",
76+
person: "optional",
77+
},
78+
{
79+
time: "18:00 - 19:00",
80+
icon: <Restaurant/>,
81+
title: "Dinner",
82+
person: "",
83+
},
84+
{
85+
time: "00:00 - 01:00",
86+
icon: <Restaurant/>,
87+
title: "Midnight Snack",
88+
person: "",
89+
}
90+
]
6891
},
6992
{
70-
time: "18:00 - 19:00",
71-
icon: <Restaurant/>,
72-
title: "Dinner",
73-
person: "",
93+
year: 2024,
94+
subtitle: "Friday 05.04",
95+
dayOne: [
96+
{
97+
time: "09:00 - 11:00",
98+
icon: <ConfirmationNumber/>,
99+
title: "Check-In",
100+
person: "",
101+
},
102+
{
103+
time: "09:30 - 11:00",
104+
icon: <Restaurant/>,
105+
title: "Breakfast & Get to know each other",
106+
person: "",
107+
},
108+
{
109+
time: "11:00 - 12:00",
110+
icon: <Campaign/>,
111+
title: "Introduction & Speakers",
112+
person: "",
113+
},
114+
{
115+
time: "12:00 - 13:00",
116+
icon: <EmojiObjects/>,
117+
title: "Challenge Input Sessions",
118+
person: "",
119+
},
120+
{
121+
time: "13:00 - 14:00",
122+
icon: <Restaurant/>,
123+
title: "Lunch",
124+
person: "",
125+
},
126+
{
127+
time: "14:00 - 13:00 next day (Continuously)",
128+
icon: <PlayArrow/>,
129+
title: "Start Hacking Time",
130+
person: "",
131+
},
132+
{
133+
time: "14:00 - 14:30",
134+
icon: <EmojiObjects/>,
135+
title: "Starwit Challenge Workshop",
136+
person: "optional",
137+
},
138+
{
139+
time: "16:00 - 16:30",
140+
icon: <EmojiObjects/>,
141+
title: "AI Workshop by Axel Springer",
142+
person: "optional",
143+
},
144+
{
145+
time: "18:30 - 19:00",
146+
icon: <EmojiObjects/>,
147+
title: "Pitch Workshop by Axel Springer",
148+
person: "optional",
149+
},
150+
{
151+
time: "18:00 - 19:00",
152+
icon: <Restaurant/>,
153+
title: "Dinner",
154+
person: "",
155+
}
156+
]
74157
}
75158
]
76159

77-
const dayTwo = [
160+
const dayTwoYears = [
78161
{
79-
time: "08:00 - 09:00",
80-
icon: <Restaurant/>,
81-
title: "Breakfast",
82-
person: "",
83-
},
84-
{
85-
time: "13:00",
86-
icon: <Stop/>,
87-
title: "End Hacking Time",
88-
person: "",
89-
},
90-
{
91-
time: "13:00 - 14:00",
92-
icon: <Restaurant/>,
93-
title: "Lunch",
94-
person: "",
162+
year: 2025,
163+
subtitle: "Saturday 22.03",
164+
dayTwo: [
165+
{
166+
time: "08:00 - 09:00",
167+
icon: <Restaurant/>,
168+
title: "Breakfast",
169+
person: "",
170+
},
171+
{
172+
time: "13:00",
173+
icon: <Stop/>,
174+
title: "End Hacking Time",
175+
person: "",
176+
},
177+
{
178+
time: "13:00 - 14:00",
179+
icon: <Restaurant/>,
180+
title: "Lunch",
181+
person: "",
182+
},
183+
{
184+
time: "14:00 - 16:00",
185+
icon: <Campaign/>,
186+
title: "Participant Challenge Presentations",
187+
person: "",
188+
}, {
189+
time: "17:00 - 18:00",
190+
icon: <EmojiEvents/>,
191+
title: "Awards",
192+
person: "",
193+
}, {
194+
time: "18:00",
195+
icon: <Celebration/>,
196+
title: "Begin After Party",
197+
person: "",
198+
}
199+
]
95200
},
96201
{
97-
time: "14:00 - 17:00",
98-
icon: <Campaign/>,
99-
title: "Challenge Presentations",
100-
person: "",
101-
}, {
102-
time: "17:00 - 17:15",
103-
icon: <EmojiEvents/>,
104-
title: "Feedback & Awards",
105-
person: "",
106-
}, {
107-
time: "17:15",
108-
icon: <Celebration/>,
109-
title: "Drinks & Networking",
110-
person: "",
202+
year: 2024,
203+
subtitle: "Saturday 06.04",
204+
dayTwo: [
205+
{
206+
time: "08:00 - 09:00",
207+
icon: <Restaurant/>,
208+
title: "Breakfast",
209+
person: "",
210+
},
211+
{
212+
time: "13:00",
213+
icon: <Stop/>,
214+
title: "End Hacking Time",
215+
person: "",
216+
},
217+
{
218+
time: "13:00 - 14:00",
219+
icon: <Restaurant/>,
220+
title: "Lunch",
221+
person: "",
222+
},
223+
{
224+
time: "14:00 - 17:00",
225+
icon: <Campaign/>,
226+
title: "Challenge Presentations",
227+
person: "",
228+
}, {
229+
time: "17:00 - 17:15",
230+
icon: <EmojiEvents/>,
231+
title: "Feedback & Awards",
232+
person: "",
233+
}, {
234+
time: "17:15",
235+
icon: <Celebration/>,
236+
title: "Drinks & Networking",
237+
person: "",
238+
}
239+
]
111240
}
112241
]
113242

@@ -167,19 +296,43 @@ export function Table(props) {
167296
}
168297

169298
export function TimeTable() {
299+
const [currentIndex, setCurrentIndex] = useState(0);
170300

171301
return (
172302
<Container sx={{paddingBottom: 10, paddingTop: 10}}>
173303
<Box sx={{display: "flex", justifyContent: "space-between", alignItems: "center"}}>
174-
<Typography variant={"h2"} gutterBottom>Time Table</Typography>
175-
<Chip label={"2024"}/>
176-
</Box>
304+
<Typography variant={"h2"} gutterBottom>Time Table</Typography>
305+
<Stack direction={"row"} spacing={1} alignItems={"center"}>
306+
<IconButton
307+
disabled={dayOneYears.length - 1 === currentIndex}
308+
onClick={() => {
309+
setCurrentIndex(currentIndex + 1);
310+
}}
311+
>
312+
<KeyboardArrowLeft/>
313+
</IconButton>
314+
<Chip
315+
label={dayOneYears[currentIndex].year}
316+
color={currentIndex === 0 ? "primary" : undefined}
317+
/>
318+
<IconButton
319+
disabled={currentIndex === 0}
320+
onClick={() => {
321+
setCurrentIndex(currentIndex - 1);
322+
}}
323+
>
324+
<KeyboardArrowRight/>
325+
</IconButton>
326+
</Stack>
327+
</Box>
177328
<Grid container spacing={5}>
178329
<Grid item md={6} xs={12}>
179-
<Table data={dayOne} title={"Day 1"} subtitle={"Friday 05.04"}/>
330+
<Table data={dayOneYears[currentIndex].dayOne} title={"Day 1"}
331+
subtitle={dayOneYears[currentIndex].subtitle}/>
180332
</Grid>
181333
<Grid item md={6} xs={12}>
182-
<Table data={dayTwo} title={"Day 2"} subtitle={"Saturday 06.04"}/>
334+
<Table data={dayTwoYears[currentIndex].dayTwo} title={"Day 2"}
335+
subtitle={dayTwoYears[currentIndex].subtitle}/>
183336
</Grid>
184337
</Grid>
185338
</Container>

0 commit comments

Comments
 (0)