Skip to content

Commit e780905

Browse files
feat(organizers): add organizer social links
1 parent 78f9b8f commit e780905

4 files changed

Lines changed: 90 additions & 4 deletions

File tree

src/data/organizers.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,57 @@
1+
export type OrganizerLink = {
2+
url: string;
3+
icon: string;
4+
label: string;
5+
};
6+
17
export type Organizer = {
28
name: string;
39
image: string;
410
index: number;
11+
links?: OrganizerLink[];
512
};
613

714
export const ORGANIZERS: Organizer[] = [
815
{
916
name: "Piotr Grędowski",
1017
image: "/organizers/piotr-gredowski.jpeg",
1118
index: 1,
19+
links: [
20+
{
21+
url: "https://pl.linkedin.com/in/piotrgredowski",
22+
icon: "/socials/linkedin.png",
23+
label: "LinkedIn",
24+
},
25+
],
1226
},
1327
{
1428
name: "Dorota Ostrowska",
1529
image: "/organizers/dorota-ostrowska.jpeg",
1630
index: 2,
31+
links: [
32+
{
33+
url: "https://www.linkedin.com/in/ostrowska-dorota/",
34+
icon: "/socials/linkedin.png",
35+
label: "LinkedIn",
36+
},
37+
],
1738
},
1839
{
1940
name: "Natalia Traczewska",
2041
image: "/organizers/natalia-traczewska.jpg",
2142
index: 3,
43+
links: [
44+
{
45+
url: "https://pl.linkedin.com/in/natalia-traczewska",
46+
icon: "/socials/linkedin.png",
47+
label: "LinkedIn",
48+
},
49+
],
2250
},
2351
{
2452
name: "Data Science Club PJATK",
2553
image: "/organizers/dsc-pjatk.png",
2654
index: 4,
55+
links: [],
2756
},
2857
];

src/sections/cfp.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { ContentButton } from "~/components/header";
66
export const CFP = () => (
77
<Container id="cfp" variant="smallContainer">
88
<AnchorHeading anchor="cfp">
9-
Call For Proposals is open until April 12 2026, 23:59 CET
9+
Call For Proposals is open until the end of Tuesday, April 14 2026
1010
</AnchorHeading>
1111
<Paragraph>
1212
<a

src/sections/organizer.tsx

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1+
/** @jsxImportSource theme-ui */
12
import React from "react";
3+
import { Image, Link } from "theme-ui";
24

3-
const Organizer = ({ name, image }) => {
5+
import type { Organizer as OrganizerType } from "~/data/organizers";
6+
7+
type OrganizerProps = Pick<OrganizerType, "name" | "image" | "links">;
8+
9+
const Organizer = ({ name, image, links = [] }: OrganizerProps) => {
410
return (
511
<div>
612
<img
@@ -13,7 +19,53 @@ const Organizer = ({ name, image }) => {
1319
objectFit: "cover",
1420
}}
1521
/>
16-
<h3>{name}</h3>
22+
23+
<div
24+
sx={{
25+
display: "flex",
26+
justifyContent: "center",
27+
}}
28+
>
29+
<h3
30+
style={{ margin: 0 }}
31+
sx={{
32+
display: "inline-flex",
33+
alignItems: "center",
34+
justifyContent: "center",
35+
gap: "0.4rem",
36+
flexWrap: "wrap",
37+
}}
38+
>
39+
<span>{name}</span>
40+
{links.map((link) => (
41+
<Link
42+
as="a"
43+
key={`${name}-${link.url}`}
44+
href={link.url}
45+
target="_blank"
46+
rel="noopener noreferrer"
47+
aria-label={link.label}
48+
title={link.label}
49+
sx={{
50+
display: "inline-flex",
51+
alignItems: "center",
52+
lineHeight: 0,
53+
}}
54+
>
55+
<Image
56+
src={link.icon}
57+
alt={link.label}
58+
sx={{
59+
width: "16px",
60+
height: "16px",
61+
display: "block",
62+
filter: "brightness(0)",
63+
}}
64+
/>
65+
</Link>
66+
))}
67+
</h3>
68+
</div>
1769
</div>
1870
);
1971
};

src/sections/organizers.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@ export const OrganizerSection = () => {
2727
>
2828
<Grid columns={[2, 2, 2, 3]} gap="primary">
2929
{ORGANIZERS.map((org) => (
30-
<Organizer key={org.index} name={org.name} image={org.image} />
30+
<Organizer
31+
key={org.index}
32+
name={org.name}
33+
image={org.image}
34+
links={org.links}
35+
/>
3136
))}
3237
</Grid>
3338
</div>

0 commit comments

Comments
 (0)