Skip to content

Commit 5cbe084

Browse files
authored
feat/on a break (#11)
* . * Upgrade * . * . * Add 28th * Updates
1 parent 20416e1 commit 5cbe084

15 files changed

Lines changed: 906 additions & 1001 deletions

File tree

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ pnpm-debug.log*
2424
.idea/
2525

2626
# vercel
27-
.vercel
27+
.vercel
28+
.env*.local

package.json

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,28 @@
1212
"lint": "eslint ."
1313
},
1414
"dependencies": {
15-
"animejs": "^4.0.2",
15+
"animejs": "^4.2.0",
1616
"astro-masonry": "^1.2.2",
1717
"date-fns": "^4.1.0"
1818
},
1919
"devDependencies": {
2020
"@astrojs/check": "^0.9.4",
21-
"@astrojs/sitemap": "^3.5.0",
22-
"@eslint/js": "^9.28.0",
23-
"@tailwindcss/vite": "^4.1.8",
24-
"@typescript-eslint/parser": "^8.33.1",
25-
"astro": "^5.13.2",
26-
"eslint": "^9.28.0",
21+
"@astrojs/sitemap": "^3.6.0",
22+
"@eslint/js": "^9.37.0",
23+
"@tailwindcss/vite": "^4.1.14",
24+
"@typescript-eslint/parser": "^8.45.0",
25+
"astro": "^5.14.1",
26+
"eslint": "^9.37.0",
2727
"eslint-plugin-astro": "^1.3.1",
2828
"eslint-plugin-jsx-a11y": "^6.10.2",
29-
"eslint-plugin-unicorn": "^59.0.1",
30-
"prettier": "^3.5.3",
29+
"eslint-plugin-unicorn": "^61.0.2",
30+
"prettier": "^3.6.2",
3131
"prettier-plugin-astro": "^0.14.1",
32-
"prettier-plugin-tailwindcss": "^0.6.12",
32+
"prettier-plugin-tailwindcss": "^0.6.14",
3333
"schema-dts": "^1.1.5",
34-
"sharp": "^0.34.2",
35-
"tailwindcss": "^4.1.8",
36-
"typescript": "^5.8.3",
37-
"typescript-eslint": "^8.33.1"
34+
"sharp": "^0.34.4",
35+
"tailwindcss": "^4.1.14",
36+
"typescript": "^5.9.3",
37+
"typescript-eslint": "^8.45.0"
3838
}
3939
}

pnpm-lock.yaml

Lines changed: 702 additions & 868 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/featured.astro

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
---
22
import HandpickedBerlin from "../images/logo-handpicked-berlin.svg";
3+
import BerlinEventsWeekly from "../images/logo-berlin-events-weekly.svg";
34
import WiggleText from "./wiggle-text.astro";
45
---
56

@@ -25,17 +26,28 @@ import WiggleText from "./wiggle-text.astro";
2526
/>
2627
</h2>
2728

28-
<div class="mt-20 flex flex-wrap gap-10">
29+
<div class="mt-20 flex flex-wrap items-center gap-12">
2930
<a
30-
class="transition-opacity hover:bg-transparent! hover:opacity-60"
3131
href="https://newsletter.handpickedberlin.com?utm_source=partner&utm_campaign=swapfest&utm_medium=link"
3232
rel="nofollow"
3333
target="_blank"
3434
>
3535
<HandpickedBerlin
3636
aria-labelledby="handpicked-berlin"
37-
class="h-auto w-[15rem] sm:w-[20rem]"
37+
class="h-auto w-[15rem] overflow-visible sm:w-[20rem]"
3838
/>
3939
<span class="sr-only" id="handpicked-berlin">Handpicked Berlin</span>
4040
</a>
41+
42+
<a
43+
href="https://www.berlineventsweekly.com?utm_source=partner&utm_campaign=swapfest&utm_medium=link"
44+
rel="nofollow"
45+
target="_blank"
46+
>
47+
<BerlinEventsWeekly
48+
aria-labelledby="berlin-events-weekly"
49+
class="h-[5rem] w-auto overflow-visible sm:h-[7rem]"
50+
/>
51+
<span class="sr-only" id="berlin-events-weekly">Berlin Events Weekly</span>
52+
</a>
4153
</div>

src/components/footer.astro

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,6 @@ import * as LINKS from "../constants/links";
4343
</a>
4444
</p>
4545

46-
<p class="body">
47-
<a
48-
class="no-underline"
49-
href={LINKS.SMOKESIGNAL_LINK}
50-
rel="nofollow"
51-
target="_blank"
52-
>
53-
Smoke Signal
54-
</a>
55-
</p>
56-
5746
<p class="body">
5847
<a
5948
class="no-underline"
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
import { format } from "date-fns";
3+
import * as LINKS from "../constants/links";
4+
import * as LOCATION from "../constants/location";
5+
import WiggleText from "./wiggle-text.astro";
6+
7+
export interface Properties {
8+
eventDate: string;
9+
}
10+
11+
const { eventDate } = Astro.props;
12+
---
13+
14+
<p aria-hidden="true" class="faq-header tilt-left">
15+
{format(eventDate, "MMMM do, yyyy")}
16+
</p>
17+
<p aria-hidden="true" class="faq-header tilt-right">at {LOCATION.NAME}</p>
18+
19+
<p class="sr-only">
20+
{`${format(eventDate, "MMMM do, yyyy")} at ${LOCATION.NAME}`}
21+
</p>
22+
23+
<p class="body mt-5">
24+
{`${LOCATION.STREET_ADDRESS}, ${LOCATION.ADDRESS_ADDITIONAL}`}
25+
</p>
26+
27+
<p class="display mb-10">
28+
<WiggleText
29+
text="12:00 to 17:00"
30+
words={[
31+
[
32+
["1", "rotate-[3deg] scale-75 mr-[-0.5%]"],
33+
["2", "rotate-[-2deg] scale-105 mr-[0.5%]"],
34+
[":", ""],
35+
["0", "rotate-[-3deg] scale-80 mr-[-0.25%]"],
36+
["0", "rotate-[6deg] scale-102"],
37+
],
38+
[["", ""]],
39+
[
40+
["1", "rotate-[-3deg] scale-80 mr-[-0.5%]"],
41+
["7", "rotate-[6deg] scale-100 ml-[-0.5%]"],
42+
[":", ""],
43+
["0", "rotate-[2deg] scale-95"],
44+
["0", "rotate-[-5deg] scale-102"],
45+
],
46+
]}
47+
/>
48+
</p>
49+
50+
<p>
51+
<a
52+
aria-label="Register to attend the Berlin Swapfest"
53+
class="register-button"
54+
href={LINKS.REGISTER_LINK}
55+
onclick="fathom.trackEvent('click register here');"
56+
target="_blank"
57+
>
58+
Register here
59+
</a>
60+
</p>

src/components/hero.astro

Lines changed: 38 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,51 @@
11
---
2-
import { format } from "date-fns";
32
import Background from "../components/background.astro";
43
import FlyerTabs from "../components/flyer-tabs.astro";
54
import Title from "../components/title.astro";
6-
import { EVENT_DATE } from "../constants/date";
75
import * as LINKS from "../constants/links";
8-
import * as LOCATION from "../constants/location";
9-
import WiggleText from "./wiggle-text.astro";
6+
import { EVENT_DATE } from "../constants/date";
7+
import HeroEventDetails from "./hero-event-details.astro";
108
---
119

12-
<header class="relative grid place-items-center pt-10 pb-20 text-center">
10+
<header
11+
class:list={[
12+
"relative grid place-items-center pt-10 pb-20 text-center",
13+
{ "border-b": !EVENT_DATE },
14+
]}
15+
>
1316
<Background />
1417

1518
<Title />
1619

17-
<p aria-hidden="true" class="faq-header tilt-left">
18-
{format(EVENT_DATE, "MMMM do, yyyy")}
19-
</p>
20-
<p aria-hidden="true" class="faq-header tilt-right">at {LOCATION.NAME}</p>
21-
22-
<p class="sr-only">
23-
{`${format(EVENT_DATE, "MMMM do, yyyy")} at ${LOCATION.NAME}`}
24-
</p>
25-
26-
<p class="body mt-5">
27-
{`${LOCATION.STREET_ADDRESS}, ${LOCATION.ADDRESS_ADDITIONAL}`}
28-
</p>
29-
30-
<p class="display mb-10">
31-
<WiggleText
32-
text="12:00 to 17:00"
33-
words={[
34-
[
35-
["1", "rotate-[3deg] scale-75 mr-[-0.5%]"],
36-
["2", "rotate-[-2deg] scale-105 mr-[0.5%]"],
37-
[":", ""],
38-
["0", "rotate-[-3deg] scale-80 mr-[-0.25%]"],
39-
["0", "rotate-[6deg] scale-102"],
40-
],
41-
[["", ""]],
42-
[
43-
["1", "rotate-[-3deg] scale-80 mr-[-0.5%]"],
44-
["7", "rotate-[6deg] scale-100 ml-[-0.5%]"],
45-
[":", ""],
46-
["0", "rotate-[2deg] scale-95"],
47-
["0", "rotate-[-5deg] scale-102"],
48-
],
49-
]}
50-
/>
51-
</p>
52-
53-
<p>
54-
<a
55-
aria-label="Register to attend the Berlin Swapfest"
56-
class="register-button"
57-
href={LINKS.REGISTER_LINK}
58-
onclick="fathom.trackEvent('click register here');"
59-
target="_blank"
60-
>
61-
Register here
62-
</a>
63-
</p>
20+
{
21+
EVENT_DATE ? (
22+
<HeroEventDetails eventDate={EVENT_DATE} />
23+
) : (
24+
<Fragment>
25+
<p aria-hidden="true" class="faq-header tilt-left">
26+
We're taking a break
27+
</p>
28+
29+
<p aria-hidden="true" class="faq-header tilt-right">
30+
back in 2026
31+
</p>
32+
33+
<p class="sr-only">We're taking a break, back in 2026</p>
34+
35+
<p class="mt-20">
36+
<a
37+
aria-label="Subscribe for updates!"
38+
class="register-button"
39+
href={LINKS.NEWSLETTER_LINK}
40+
onclick="fathom.trackEvent('click subscribe for updates');"
41+
target="_blank"
42+
>
43+
Subscribe for updates!
44+
</a>
45+
</p>
46+
</Fragment>
47+
)
48+
}
6449
</header>
6550

66-
<FlyerTabs />
51+
{EVENT_DATE && <FlyerTabs />}

src/components/ld-json.astro

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
/* eslint-disable astro/no-set-html-directive */
3+
4+
import { format } from "date-fns";
5+
import type { Event, WithContext } from "schema-dts";
6+
import * as LOCATION from "../constants/location";
7+
import * as SEO from "../constants/seo";
8+
9+
export interface Properties {
10+
eventDate: string;
11+
}
12+
13+
const { eventDate } = Astro.props;
14+
15+
const eventStructuredData: WithContext<Event> = {
16+
"@context": "https://schema.org",
17+
"@type": "Event",
18+
name: "Berlin Swapfest",
19+
startDate: `${format(eventDate, "yyyy-MM-dd")}T12:00-01:00`,
20+
endDate: `${format(eventDate, "yyyy-MM-dd")}T17:00-01:00`,
21+
eventAttendanceMode: "https://schema.org/OfflineEventAttendanceMode",
22+
eventStatus: "https://schema.org/EventScheduled",
23+
location: {
24+
"@type": "Place",
25+
name: LOCATION.NAME,
26+
address: {
27+
"@type": "PostalAddress",
28+
streetAddress: LOCATION.STREET_ADDRESS,
29+
addressLocality: LOCATION.ADDRESS_LOCALITY,
30+
postalCode: LOCATION.POSTAL_CODE,
31+
addressRegion: LOCATION.ADDRESS_REGION,
32+
addressCountry: LOCATION.ADDRESS_COUNTRY,
33+
},
34+
},
35+
description: SEO.DESCRIPTION,
36+
organizer: [
37+
{
38+
"@type": "Person",
39+
name: "mirshko",
40+
url: "https://www.reiner.systems",
41+
},
42+
{
43+
"@type": "Organization",
44+
name: LOCATION.NAME,
45+
url: LOCATION.URL,
46+
},
47+
],
48+
};
49+
---
50+
51+
<script
52+
is:inline
53+
set:html={JSON.stringify(eventStructuredData)}
54+
type="application/ld+json"
55+
/>

src/constants/date.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
export const EVENT_DATE = "2025-09-28";
1+
/**
2+
* @format 2025-09-28
3+
*/
4+
export const EVENT_DATE: string | undefined = undefined;

src/constants/links.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
export const REGISTER_LINK = "https://tickets.swapfest.berlin";
22

33
export const SMOKESIGNAL_LINK =
4-
"https://smokesignal.events/did:plc:lyu5ybynh5od5uelivdlto36/3lwjuh7cnxp2d";
4+
"https://smokesignal.events/did:plc:lyu5ybynh5od5uelivdlto36?tab=events&";
55

66
export const BLUESKY_LINK = "https://bsky.app/profile/swapfest.berlin";
77

8-
export const MATRIX_LINK = "https://matrix.to/#/!wZyJLpRBZamVkKXskN:matrix.org";
8+
export const MATRIX_LINK = "https://matrix.to/#/%23swapfest:c-base.org";
99

1010
export const CONTACT_LINK = "mailto:swapfest.berlin@proton.me";
1111

0 commit comments

Comments
 (0)