Skip to content

Commit 3a92549

Browse files
committed
Minor fixes
Added Keyboard navigation Added 2024 Tag
1 parent 79a2624 commit 3a92549

File tree

4 files changed

+62
-17
lines changed

4 files changed

+62
-17
lines changed

src/components/Gallery/GalleryDialog/GalleryDialog.jsx

Lines changed: 48 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,19 @@ import {
22
AppBar,
33
Box,
44
CardActionArea,
5-
Container, Dialog,
5+
Container,
6+
Dialog,
67
Grid,
78
IconButton,
8-
Paper, Slide,
9+
Paper,
10+
Slide,
911
Stack,
1012
Toolbar,
11-
Typography, useMediaQuery
13+
Typography,
14+
useMediaQuery
1215
} from "@mui/material";
1316
import {Close, KeyboardArrowLeft, KeyboardArrowRight} from "@mui/icons-material";
14-
import React, {useState} from "react";
17+
import React, {useCallback, useEffect, useState} from "react";
1518
import images from "../../../assets/images/event/Images";
1619

1720
const Transition = React.forwardRef(function Transition(
@@ -28,28 +31,62 @@ export function GalleryDialog(props) {
2831
const [selectedImage, setSelectedImage] = useState(0)
2932
const isMobile = useMediaQuery((theme) => theme.breakpoints.down('md'));
3033

34+
35+
const handleKeyboardInput = useCallback((event) => {
36+
if (event?.key === "ArrowRight") {
37+
nextImage()
38+
}
39+
if (event?.key === "ArrowLeft") {
40+
previousImage()
41+
}
42+
}, [])
43+
44+
const nextImage = () => {
45+
setNewImage(selectedImage => {
46+
return ((selectedImage + 1) % images[galleryTab].items.length)
47+
})
48+
};
49+
const previousImage = () => {
50+
setNewImage(selectedImage => {
51+
return ((((selectedImage - 1) % images[galleryTab].items.length) + images[galleryTab].items.length) % images[galleryTab].items.length)
52+
})
53+
};
54+
55+
56+
useEffect(() => {
57+
document.addEventListener("keydown", handleKeyboardInput, false);
58+
59+
return () => {
60+
document.removeEventListener("keydown", handleKeyboardInput, false);
61+
};
62+
}, [handleKeyboardInput()]);
63+
3164
function setNewImage(index) {
32-
scrollImageIntoView(index)
3365
setSelectedImage(index)
3466
}
67+
68+
useEffect(() => {
69+
scrollImageIntoView(selectedImage)
70+
}, [selectedImage]);
71+
3572
function scrollImageIntoView(index) {
3673
const element = document.getElementById("img-" + index);
3774
if (!element) {
38-
console.error("could not find element", "img-" + index, element)
75+
console.warn("could not find element", "img-" + index, element)
3976
return
4077
}
4178
element.scrollIntoView({behavior: 'smooth', block: 'center', inline: 'center'})
42-
4379
}
4480

45-
return(
81+
return (
4682
<Dialog
4783
fullScreen
4884
open={props.isOpen}
4985
onClose={props.onClose}
5086
TransitionComponent={Transition}
5187
>
52-
<Box sx={{flexDirection: "column", height: "100vh !important", width: "100vw"}}>
88+
<Box sx={{flexDirection: "column", height: "100vh !important", width: "100vw"}}
89+
onKeyDown={(e) => console.log("KEYDOWN", e)}>
5390
<AppBar sx={{position: 'absolute'}}>
5491
<Toolbar>
5592
<Typography sx={{ml: 2, flex: 1}} variant="h6" component="div">
@@ -155,15 +192,15 @@ export function GalleryDialog(props) {
155192
sx={{
156193
background: "rgba(19,16,27,0.4)",
157194
}}
158-
onClick={() => setNewImage((((selectedImage - 1) % images[galleryTab].items.length) + images[galleryTab].items.length) % images[galleryTab].items.length)}
195+
onClick={previousImage}
159196
>
160197
<KeyboardArrowLeft fontSize={"large"} sx={{color: "#fff"}}/>
161198
</IconButton>
162199
<IconButton
163200
sx={{
164201
background: "rgba(19,16,27,0.4)",
165202
}}
166-
onClick={() => setNewImage((selectedImage + 1) % images[galleryTab].items.length)}
203+
onClick={nextImage}
167204
>
168205
<KeyboardArrowRight fontSize={"large"} sx={{color: "#fff"}}/>
169206
</IconButton>

src/components/Jury/Jury.jsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"use client"
2-
import {Box, Container, Grid, Paper, Stack, Typography, useTheme} from "@mui/material";
2+
import {Box, Chip, Container, Grid, Paper, Stack, Typography, useTheme} from "@mui/material";
33
import SebastianUlm from "../../assets/images/jury/SebastianUlm.jpg"
44
import HolgerRhinow from "../../assets/images/jury/HolgerRhinow.png"
55
import FlorianBreipohl from "../../assets/images/jury/FlorianBreipohl.jpeg"
@@ -39,7 +39,10 @@ function Jury() {
3939
const theme = useTheme();
4040
return (
4141
<Container sx={{paddingBottom: 10, paddingTop: 10}}>
42+
<Box sx={{display: "flex", justifyContent: "space-between", alignItems: "center"}}>
4243
<Typography variant={"h2"} gutterBottom>Jury</Typography>
44+
<Chip label={"2024"}/>
45+
</Box>
4346
<Grid container spacing={10}>
4447
<Grid item xs={12} md={12}>
4548
<Stack spacing={3}>

src/components/Speakers/Speakers.jsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"use client"
2-
import {Box, Container, Grid, Paper, Stack, Typography, useTheme} from "@mui/material";
2+
import {Box, Chip, Container, Grid, Paper, Stack, Typography, useTheme} from "@mui/material";
33
import FelixLennardHake from "../../assets/images/speakers/FelixLennardHake.jpg"
44
import {WindowCard} from "../WindowCard/WindowCard";
55

@@ -19,7 +19,10 @@ function Speakers() {
1919
const theme = useTheme();
2020
return (
2121
<Container sx={{paddingBottom: 10, paddingTop: 10}}>
22-
<Typography variant={"h2"} gutterBottom>Speaker</Typography>
22+
<Box sx={{display: "flex", justifyContent: "space-between", alignItems: "center"}}>
23+
<Typography variant={"h2"} gutterBottom>Speaker</Typography>
24+
<Chip label={"2024"}/>
25+
</Box>
2326
<Grid container spacing={10}>
2427
<Grid item xs={12} md={12}>
2528
<Stack spacing={3}>

src/components/TimeTable/TimeTable.jsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {Box, Card, Container, Divider, Grid, Stack, Typography} from "@mui/material";
1+
import {Box, Card, Chip, Container, Divider, Grid, Stack, Typography} from "@mui/material";
22
import {
33
Campaign,
44
Celebration,
@@ -170,8 +170,10 @@ export function TimeTable() {
170170

171171
return (
172172
<Container sx={{paddingBottom: 10, paddingTop: 10}}>
173-
<Typography variant={"h2"} component={"h1"} gutterBottom>Time Table</Typography>
174-
173+
<Box sx={{display: "flex", justifyContent: "space-between", alignItems: "center"}}>
174+
<Typography variant={"h2"} gutterBottom>Time Table</Typography>
175+
<Chip label={"2024"}/>
176+
</Box>
175177
<Grid container spacing={5}>
176178
<Grid item md={6} xs={12}>
177179
<Table data={dayOne} title={"Day 1"} subtitle={"Friday 05.04"}/>

0 commit comments

Comments
 (0)