From 0b47317903f095e8bead861219c00aedc5a4dc75 Mon Sep 17 00:00:00 2001 From: Martin Kleiven Date: Mon, 20 Jan 2025 17:18:56 +0100 Subject: [PATCH] Add events formatted from official spreadsheet --- src/assets/events.json | 289 ++++++++++++++++++++++++++++++++++++++++ src/pages/EventCard.tsx | 113 ++++++++++++++++ src/pages/index.astro | 19 +-- 3 files changed, 407 insertions(+), 14 deletions(-) create mode 100644 src/assets/events.json create mode 100644 src/pages/EventCard.tsx diff --git a/src/assets/events.json b/src/assets/events.json new file mode 100644 index 0000000..e1ab062 --- /dev/null +++ b/src/assets/events.json @@ -0,0 +1,289 @@ +[ + { + "Dato": "27.jan.", + "Når": "", + "Dag": "Mandag", + "Hvor": "Grøndahls", + "Tittel": "Lansering av jubileumsøl", + "Pris S\\O": "", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "" + }, + { + "Dato": "Januar", + "Når": "", + "Dag": "", + "Hvor": "Maos?", + "Tittel": "Lansering av Merch-popup", + "Pris S\\O": "", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "" + }, + { + "Dato": "12.februar ", + "Når": "20:00", + "Dag": "Onsdag", + "Hvor": "Storelogen", + "Tittel": "Impro Battle", + "Pris S\\O": "", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "Studentteateret Immaturus" + }, + { + "Dato": "13.februar ", + "Når": "18:00", + "Dag": "torsdag ", + "Hvor": "Teglverket", + "Tittel": "Åpningsarrangement ", + "Pris S\\O": "GRATIS", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "" + }, + { + "Dato": "13.februar ", + "Når": "21:00", + "Dag": "torsdag ", + "Hvor": "", + "Tittel": "Standup med Komikk", + "Pris S\\O": "100 \\ 150", + "FB-Event": "KOMMER", + "Link til TicketCo": "KOMMER", + "Samarbeid med": "" + }, + { + "Dato": "14.februar ", + "Når": "21:00", + "Dag": "fredag", + "Hvor": "Teglverket", + "Tittel": "Konsert: Gæste Gutter", + "Pris S\\O": "200 \\ 250", + "FB-Event": "https://fb.me/e/i7v3r22Ms", + "Link til TicketCo": "https://asf.ticketco.events/no/nb/e/gaeste_gutter__klubb_gaeste__asf__kvarteret", + "Samarbeid med": "Aktive Studenters Forening" + }, + { + "Dato": "14.februar ", + "Når": "19:00 ", + "Dag": "Fredag", + "Hvor": "Tivoli", + "Tittel": "En Kroneis til Besto (mikro.prod)", + "Pris S\\O": "", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "Studentteateret Immaturus" + }, + { + "Dato": "15.februar ", + "Når": "21:00", + "Dag": "lørdag", + "Hvor": "Teglverket", + "Tittel": "Konsert Datarock + Support: Tåpelig", + "Pris S\\O": "250 \\ 350", + "FB-Event": "https://fb.me/e/81Pyl8qwg", + "Link til TicketCo": "https://kvarteret.ticketco.events/no/nb/e/datarock", + "Samarbeid med": "" + }, + { + "Dato": "15.februar ", + "Når": "20:15", + "Dag": "lørdag", + "Hvor": "Tivoli", + "Tittel": "Tipsy Ibsen: En Folkefiende", + "Pris S\\O": "180 \\ 260", + "FB-Event": "https://fb.me/e/2OTunSYKk", + "Link til TicketCo": "https://kvarteret.ticketco.events/no/nb/e/tipsy_ibsen_en_folkefiende", + "Samarbeid med": "" + }, + { + "Dato": "", + "Når": "23:00", + "Dag": "lørdag", + "Hvor": "Tivoli", + "Tittel": "Silent Disco: Galentines", + "Pris S\\O": "", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "Studentersamfunnet" + }, + { + "Dato": "15.februar ", + "Når": "19:00 ", + "Dag": "lørdag", + "Hvor": "Storelogen", + "Tittel": "En Kroneis til Besto (mikro.prod)", + "Pris S\\O": "", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "Studentteateret Immaturus" + }, + { + "Dato": "16.februar ", + "Når": "", + "Dag": "søndag", + "Hvor": "", + "Tittel": "noe artige aktiviteter med printing og kos", + "Pris S\\O": "", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "" + }, + { + "Dato": "16.februar ", + "Når": "18:00", + "Dag": "Søndag", + "Hvor": "Tivoli", + "Tittel": "Film: Palestina i Fokus", + "Pris S\\O": "", + "FB-Event": "KOMMER", + "Link til TicketCo": "KOMMER", + "Samarbeid med": "Bergen FIlmklubb" + }, + { + "Dato": "17.februar ", + "Når": "18:00", + "Dag": "Mandag", + "Hvor": "Tivoli", + "Tittel": "Film: Palestina i Fokus", + "Pris S\\O": "", + "FB-Event": "KOMMER", + "Link til TicketCo": "KOMMER", + "Samarbeid med": "Bergen FIlmklubb" + }, + { + "Dato": "17.februar ", + "Når": "18:30?", + "Dag": "mandag", + "Hvor": "Grøndahls/teglverket", + "Tittel": "Ølsmaking m\\ jubileumsøl", + "Pris S\\O": "", + "FB-Event": "KOMMER", + "Link til TicketCo": "KOMMER", + "Samarbeid med": "" + }, + { + "Dato": "17.februar ", + "Når": "20:30?", + "Dag": "mandag", + "Hvor": "Grøndahls/teglverket", + "Tittel": "Musikkbingo m\\ liveband", + "Pris S\\O": "", + "FB-Event": "KOMMER", + "Link til TicketCo": "KOMMER", + "Samarbeid med": "" + }, + { + "Dato": "18.februar ", + "Når": "19:00", + "Dag": "tirsdag", + "Hvor": "Stjerne/ lobby", + "Tittel": "Quiz m/ Morten Almaas og Jon-Einar Sand", + "Pris S\\O": "GRATIS", + "FB-Event": "https://fb.me/e/2Rb2LAMyg", + "Link til TicketCo": "", + "Samarbeid med": "" + }, + { + "Dato": "18.februar ", + "Når": "18:00", + "Dag": "tirsdag", + "Hvor": "Storelogen", + "Tittel": "Debatt?: Legesnop eller Partydop", + "Pris S\\O": "", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "Studentersamfunnet" + }, + { + "Dato": "18.februar ", + "Når": "20", + "Dag": "tirsdag", + "Hvor": "Teglverket", + "Tittel": "Konsert Himmelskip (Samklang)", + "Pris S\\O": "", + "FB-Event": "https://fb.me/e/2NCFtPGTS", + "Link til TicketCo": "", + "Samarbeid med": "Studentersamfunnet" + }, + { + "Dato": "19.februar ", + "Når": "18:00", + "Dag": "onsdag", + "Hvor": "Teglverket", + "Tittel": "Samtalemøte: Aktteikning", + "Pris S\\O": "", + "FB-Event": "KOMMER", + "Link til TicketCo": "KOMMER", + "Samarbeid med": "Studentersamfunnet" + }, + { + "Dato": "19.februar ", + "Når": "20:00", + "Dag": "onsdag", + "Hvor": "Storelogen", + "Tittel": "Åpen scene: Gameshow", + "Pris S\\O": "", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "Studentteateret Immaturus" + }, + { + "Dato": "19.februar ", + "Når": "20:15", + "Dag": "onsdag", + "Hvor": "Teglverket", + "Tittel": "Korpils - en konsert med Sirenene, MAR og BLAK", + "Pris S\\O": "", + "FB-Event": "KOMMER", + "Link til TicketCo": "KOMMER", + "Samarbeid med": "MAR + Sirenene" + }, + { + "Dato": "20.februar ", + "Når": "18:00", + "Dag": "torsdag ", + "Hvor": "Storelogen", + "Tittel": "Debatt?: Hundre år siden åttetimersdagen - på tide med seks?", + "Pris S\\O": "", + "FB-Event": "KOMMER", + "Link til TicketCo": "KOMMER", + "Samarbeid med": "Studentersamfunnet" + }, + { + "Dato": "20.februar ", + "Når": "", + "Dag": "torsdag ", + "Hvor": "Teglverket", + "Tittel": "Konsert: Vepsestikk", + "Pris S\\O": "", + "FB-Event": "KOMMER", + "Link til TicketCo": "KOMMER", + "Samarbeid med": "" + }, + { + "Dato": "21.februar ", + "Når": "21:00", + "Dag": "fredag", + "Hvor": "Teglverket", + "Tittel": "Konsert: Pikekyss + Saksa", + "Pris S\\O": "", + "FB-Event": "https://fb.me/e/2URmXtQ91", + "Link til TicketCo": "https://asf.ticketco.events/no/nb/e/pikekyss__saksa__asf__kvarteret", + "Samarbeid med": "Aktive Studenters Forening" + }, + { + "Dato": "21.februar ", + "Når": "20:00?", + "Dag": "fredag", + "Hvor": "Teglverket", + "Tittel": "Minglekveld for interne i tredje", + "Pris S\\O": "", + "FB-Event": "", + "Link til TicketCo": "", + "Samarbeid med": "" + } + ] + \ No newline at end of file diff --git a/src/pages/EventCard.tsx b/src/pages/EventCard.tsx new file mode 100644 index 0000000..d78ad0e --- /dev/null +++ b/src/pages/EventCard.tsx @@ -0,0 +1,113 @@ +import { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from "../components/ui/card" +import { cn } from "@/lib/utils" + +interface Event { + Dato: string + Når: string + Dag: string + Hvor: string + Tittel: string + "Pris S\\O": string + "FB-Event": string + "Link til TicketCo": string + "Samarbeid med": string +} + +interface EventCardProps { + event: Event + className?: string +} + +interface EventHeaderProps { + title: string + date: string + time?: string + location?: string + price?: string +} + +const EventHeader = ({ title, date, time, location, price }: EventHeaderProps) => ( + +
+ {title} +
+

{date}

+ {time &&

{time}

} +
+
+ + {location &&

{location}

} + {price &&

Pris: {price}

} +
+
+) + +interface EventCollaborationProps { + collaborator?: string +} + +const EventCollaboration = ({ collaborator }: EventCollaborationProps) => ( + + {collaborator && ( +

I samarbeid med: {collaborator}

+ )} +
+) + +interface EventLinksProps { + ticketUrl?: string + facebookUrl?: string +} + +const EventLinks = ({ ticketUrl, facebookUrl }: EventLinksProps) => { + const hasTickets = ticketUrl && ticketUrl !== "KOMMER" + const hasFacebook = facebookUrl && facebookUrl !== "KOMMER" + + if (!hasTickets && !hasFacebook) return null + + return ( + + {hasTickets && ( + + Kjøp billetter + + )} + {hasFacebook && ( + + Facebook-arrangement + + )} + + ) +} + +export const EventCard = ({ event, className }: EventCardProps) => { + return ( + + + + + + ) +} diff --git a/src/pages/index.astro b/src/pages/index.astro index de72e25..c4e9550 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -2,6 +2,8 @@ // import Welcome from '../components/Welcome.astro'; import Layout from '../layouts/Layout.astro'; import '@/styles/globals.css' +import { EventCard } from '@/components/EventCard' +import events from '@/assets/events.json' import { Card, @@ -14,20 +16,9 @@ import { --- -
- {[1,2,3,4, 5, 6, 7, 8, 8, 10, 11, 12].map(() => ( - - - Card Title - Card Description - - -

Card Content

-
- -

Card Footer

-
-
+
+ {events.map((event) => ( + ))}