Update event date to 24 april, add venue, add Ichtus Antwerpen as co-sponsor
- Change event date from 18 to 24 april across all pages, hero, meta and constants - Add venue (Lange Winkelstraat 5, 2000 Antwerpen) to contact page, Q&A, and transactional emails - Add LOCATION constant to packages/api/src/constants.ts - Add Ichtus Antwerpen (ichtusantwerpen.com) as co-sponsor in footer and contact page - Add location info card to confirmation, update, payment reminder and payment confirmation emails
This commit is contained in:
BIN
apps/web/public/assets/ichtusantwerpen.png
Normal file
BIN
apps/web/public/assets/ichtusantwerpen.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 69 KiB |
@@ -86,6 +86,26 @@ export default function Footer() {
|
|||||||
{/* Vertical rule */}
|
{/* Vertical rule */}
|
||||||
<div className="hidden h-28 w-px bg-white/20 md:block" />
|
<div className="hidden h-28 w-px bg-white/20 md:block" />
|
||||||
|
|
||||||
|
{/* Ichtus Antwerpen */}
|
||||||
|
<a
|
||||||
|
href="https://ichtusantwerpen.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="flex flex-col items-center gap-3 opacity-90 transition-opacity hover:opacity-100"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src="/assets/ichtusantwerpen.png"
|
||||||
|
alt="Ichtus Antwerpen"
|
||||||
|
className="h-14 w-auto"
|
||||||
|
/>
|
||||||
|
<p className="text-center font-['DM_Sans',sans-serif] font-medium text-white/60 text-xs uppercase tracking-[0.15em]">
|
||||||
|
Ichtus Antwerpen
|
||||||
|
</p>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
{/* Vertical rule */}
|
||||||
|
<div className="hidden h-28 w-px bg-white/20 md:block" />
|
||||||
|
|
||||||
{/* Vlaanderen */}
|
{/* Vlaanderen */}
|
||||||
<a
|
<a
|
||||||
href="https://www.vlaanderen.be/cjm/nl"
|
href="https://www.vlaanderen.be/cjm/nl"
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ export default function Hero() {
|
|||||||
{/* Bottom Right - Dark Teal with date - above mic */}
|
{/* Bottom Right - Dark Teal with date - above mic */}
|
||||||
<div className="relative flex flex-1 items-center justify-end bg-[#214e51]">
|
<div className="relative flex flex-1 items-center justify-end bg-[#214e51]">
|
||||||
<p className="px-12 text-right font-['Intro',sans-serif] font-normal text-[clamp(2rem,5vw,6rem)] text-white uppercase leading-[1.1]">
|
<p className="px-12 text-right font-['Intro',sans-serif] font-normal text-[clamp(2rem,5vw,6rem)] text-white uppercase leading-[1.1]">
|
||||||
VRIJDAG 18
|
VRIJDAG 24
|
||||||
<br />
|
<br />
|
||||||
april
|
april
|
||||||
</p>
|
</p>
|
||||||
@@ -153,7 +153,7 @@ export default function Hero() {
|
|||||||
<p className="text-right font-['Intro',sans-serif] font-normal text-[8vw] text-white uppercase leading-tight">
|
<p className="text-right font-['Intro',sans-serif] font-normal text-[8vw] text-white uppercase leading-tight">
|
||||||
VRIJDAG
|
VRIJDAG
|
||||||
<br />
|
<br />
|
||||||
18 april
|
24 april
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,6 +14,12 @@ const faqQuestions = [
|
|||||||
answer:
|
answer:
|
||||||
"Elke deelnemer krijgt 5-7 minuten podiumtijd. Zo houden we de avond dynamisch en krijgt iedereen een kans om te shinen.",
|
"Elke deelnemer krijgt 5-7 minuten podiumtijd. Zo houden we de avond dynamisch en krijgt iedereen een kans om te shinen.",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
question: "Waar vindt het plaats?",
|
||||||
|
answer:
|
||||||
|
"De Open Mic Night vindt plaats op Lange Winkelstraat 5, 2000 Antwerpen.",
|
||||||
|
mapUrl: "https://maps.app.goo.gl/kU6iug3QVKwWD1vR7",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
question: "Wat moet ik meenemen?",
|
question: "Wat moet ik meenemen?",
|
||||||
answer:
|
answer:
|
||||||
@@ -179,6 +185,16 @@ export default function Info() {
|
|||||||
{item.question}
|
{item.question}
|
||||||
</h3>
|
</h3>
|
||||||
<p className="max-w-xl text-white/80 text-xl">{item.answer}</p>
|
<p className="max-w-xl text-white/80 text-xl">{item.answer}</p>
|
||||||
|
{"mapUrl" in item && (
|
||||||
|
<a
|
||||||
|
href={item.mapUrl}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="text-sm text-white/60 underline hover:text-white/90"
|
||||||
|
>
|
||||||
|
Bekijk op Google Maps →
|
||||||
|
</a>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import appCss from "../index.css?url";
|
|||||||
const siteUrl = "https://kunstenkamp.be";
|
const siteUrl = "https://kunstenkamp.be";
|
||||||
const siteTitle = "Kunstenkamp Open Mic Night - Ongedesemd Woord";
|
const siteTitle = "Kunstenkamp Open Mic Night - Ongedesemd Woord";
|
||||||
const siteDescription =
|
const siteDescription =
|
||||||
"Doe mee met de Open Mic Night op 18 april! Een avond vol muziek, theater, dans, woordkunst en meer. Iedereen is welkom - van beginner tot professional.";
|
"Doe mee met de Open Mic Night op 24 april! Een avond vol muziek, theater, dans, woordkunst en meer. Iedereen is welkom - van beginner tot professional.";
|
||||||
const eventImage = `${siteUrl}/assets/og-image.jpg`;
|
const eventImage = `${siteUrl}/assets/og-image.jpg`;
|
||||||
|
|
||||||
export interface RouterAppContext {
|
export interface RouterAppContext {
|
||||||
|
|||||||
@@ -38,10 +38,10 @@ function ContactPage() {
|
|||||||
|
|
||||||
<section className="rounded-lg bg-white/5 p-6">
|
<section className="rounded-lg bg-white/5 p-6">
|
||||||
<h3 className="mb-3 text-white text-xl">Open Mic Night</h3>
|
<h3 className="mb-3 text-white text-xl">Open Mic Night</h3>
|
||||||
<p>Vrijdag 18 april 2026</p>
|
<p>Vrijdag 24 april 2026</p>
|
||||||
<p>Aanvang: 19:00 uur</p>
|
<p>Aanvang: 19:00 uur</p>
|
||||||
<p className="mt-2 text-white/60">
|
<p className="mt-2 text-white/60">
|
||||||
Locatie wordt later bekendgemaakt aan geregistreerde deelnemers.
|
Lange Winkelstraat 5, 2000 Antwerpen
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -72,6 +72,14 @@ function ContactPage() {
|
|||||||
>
|
>
|
||||||
Vlaanderen — Cultuur, Jeugd & Media
|
Vlaanderen — Cultuur, Jeugd & Media
|
||||||
</a>
|
</a>
|
||||||
|
<a
|
||||||
|
href="https://ichtusantwerpen.com"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener noreferrer"
|
||||||
|
className="link-hover text-white/80 hover:text-white"
|
||||||
|
>
|
||||||
|
Ichtus Antwerpen
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
// Single source-of-truth for event details used across the API
|
// Single source-of-truth for event details used across the API
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
export const EVENT = "Open Mic Night — vrijdag 18 april 2026";
|
export const EVENT = "Open Mic Night — vrijdag 24 april 2026";
|
||||||
|
export const LOCATION = "Lange Winkelstraat 5, 2000 Antwerpen";
|
||||||
export const OPENS = "maandag 16 maart 2026 om 19:00";
|
export const OPENS = "maandag 16 maart 2026 om 19:00";
|
||||||
|
|
||||||
// Registration opens — used for reminder scheduling windows
|
// Registration opens — used for reminder scheduling windows
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { env } from "@kk/env/server";
|
import { env } from "@kk/env/server";
|
||||||
import nodemailer from "nodemailer";
|
import nodemailer from "nodemailer";
|
||||||
import { EVENT, OPENS } from "./constants";
|
import { EVENT, LOCATION, OPENS } from "./constants";
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// Transport — singleton so a warm CF isolate reuses the open TCP connection
|
// Transport — singleton so a warm CF isolate reuses the open TCP connection
|
||||||
@@ -209,6 +209,7 @@ export async function sendConfirmationEmail(params: {
|
|||||||
p(
|
p(
|
||||||
`We hebben je inschrijving voor <strong style="color:#fff;">${EVENT}</strong> in goede orde ontvangen.`,
|
`We hebben je inschrijving voor <strong style="color:#fff;">${EVENT}</strong> in goede orde ontvangen.`,
|
||||||
) +
|
) +
|
||||||
|
card("Locatie", LOCATION) +
|
||||||
card("Jouw rol", roleLabel(params.wantsToPerform, params.artForm)) +
|
card("Jouw rol", roleLabel(params.wantsToPerform, params.artForm)) +
|
||||||
paymentCard(drinkCardCents, giftCents) +
|
paymentCard(drinkCardCents, giftCents) +
|
||||||
p(
|
p(
|
||||||
@@ -249,6 +250,7 @@ export async function sendUpdateEmail(params: {
|
|||||||
p(
|
p(
|
||||||
`Je inschrijving voor <strong style="color:#fff;">${EVENT}</strong> is succesvol bijgewerkt.`,
|
`Je inschrijving voor <strong style="color:#fff;">${EVENT}</strong> is succesvol bijgewerkt.`,
|
||||||
) +
|
) +
|
||||||
|
card("Locatie", LOCATION) +
|
||||||
card("Jouw rol", roleLabel(params.wantsToPerform, params.artForm)) +
|
card("Jouw rol", roleLabel(params.wantsToPerform, params.artForm)) +
|
||||||
paymentCard(drinkCardCents, giftCents) +
|
paymentCard(drinkCardCents, giftCents) +
|
||||||
btn(manage, "Bekijk mijn inschrijving"),
|
btn(manage, "Bekijk mijn inschrijving"),
|
||||||
@@ -377,6 +379,7 @@ export async function sendPaymentReminderEmail(params: {
|
|||||||
p(
|
p(
|
||||||
`Je hebt je ingeschreven voor <strong style="color:#fff;">${EVENT}</strong>, maar we hebben nog geen betaling ontvangen.`,
|
`Je hebt je ingeschreven voor <strong style="color:#fff;">${EVENT}</strong>, maar we hebben nog geen betaling ontvangen.`,
|
||||||
) +
|
) +
|
||||||
|
card("Locatie", LOCATION) +
|
||||||
p(`${amountNote} Log in op je account om te betalen.`) +
|
p(`${amountNote} Log in op je account om te betalen.`) +
|
||||||
btn(`${env.BETTER_AUTH_URL}/account`, "Betaal nu") +
|
btn(`${env.BETTER_AUTH_URL}/account`, "Betaal nu") +
|
||||||
note(
|
note(
|
||||||
@@ -407,6 +410,7 @@ export async function sendPaymentConfirmationEmail(params: {
|
|||||||
p(
|
p(
|
||||||
`We hebben je betaling voor <strong style="color:#fff;">${EVENT}</strong> in goede orde ontvangen. Tot dan!`,
|
`We hebben je betaling voor <strong style="color:#fff;">${EVENT}</strong> in goede orde ontvangen. Tot dan!`,
|
||||||
) +
|
) +
|
||||||
|
card("Locatie", LOCATION) +
|
||||||
paymentCard(drinkCardCents, giftCents) +
|
paymentCard(drinkCardCents, giftCents) +
|
||||||
btn(manage, "Beheer mijn inschrijving", "secondary"),
|
btn(manage, "Beheer mijn inschrijving", "secondary"),
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user