|  | 
| 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"; | 
| 2 | 3 | import { | 
| 3 | 4 |     Campaign, | 
| 4 | 5 |     Celebration, | 
| 5 | 6 |     ConfirmationNumber, | 
| 6 | 7 |     EmojiEvents, | 
| 7 | 8 |     EmojiObjects, | 
|  | 9 | +    KeyboardArrowLeft, | 
|  | 10 | +    KeyboardArrowRight, | 
| 8 | 11 |     PlayArrow, | 
| 9 | 12 |     Restaurant, | 
| 10 | 13 |     Stop | 
| 11 | 14 | } from "@mui/icons-material"; | 
|  | 15 | +import * as React from "react"; | 
|  | 16 | +import {useState} from "react"; | 
| 12 | 17 | import {IconContainer} from "../Features/Features"; | 
| 13 | 18 | 
 | 
| 14 |  | -const dayOne = [ | 
|  | 19 | +const dayOneYears = [ | 
| 15 | 20 |     { | 
| 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 | +        ] | 
| 68 | 91 |     }, | 
| 69 | 92 |     { | 
| 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 | +        ] | 
| 74 | 157 |     } | 
| 75 | 158 | ] | 
| 76 | 159 | 
 | 
| 77 |  | -const dayTwo = [ | 
|  | 160 | +const dayTwoYears = [ | 
| 78 | 161 |     { | 
| 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 | +        ] | 
| 95 | 200 |     }, | 
| 96 | 201 |     { | 
| 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 | +        ] | 
| 111 | 240 |     } | 
| 112 | 241 | ] | 
| 113 | 242 | 
 | 
| @@ -167,19 +296,43 @@ export function Table(props) { | 
| 167 | 296 | } | 
| 168 | 297 | 
 | 
| 169 | 298 | export function TimeTable() { | 
|  | 299 | +    const [currentIndex, setCurrentIndex] = useState(0); | 
| 170 | 300 | 
 | 
| 171 | 301 |     return ( | 
| 172 | 302 |         <Container sx={{paddingBottom: 10, paddingTop: 10}}> | 
| 173 | 303 |             <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> | 
| 177 | 328 |             <Grid container spacing={5}> | 
| 178 | 329 |                 <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}/> | 
| 180 | 332 |                 </Grid> | 
| 181 | 333 |                 <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}/> | 
| 183 | 336 |                 </Grid> | 
| 184 | 337 |             </Grid> | 
| 185 | 338 |         </Container> | 
|  | 
0 commit comments