diff --git a/src/components/event/Calendar.svelte b/src/components/event/Calendar.svelte new file mode 100644 index 0000000..33c81c2 --- /dev/null +++ b/src/components/event/Calendar.svelte @@ -0,0 +1,95 @@ + + +
+
+

+ {currentYear} +

+
+ + + + + + +
+
+ +
+ {#each months as month} + + {#if month.events.length > 0} + {#each month.events as event} + +
+ {event.data.event.event.name} +
+
+ {dayjs(event.data.event.event.start).format("MMM D, YYYY • HH:mm")} +
+
+ {/each} + {:else} +

Keine Events für diesen Monat

+ {/if} +
+ {/each} +
+
diff --git a/src/components/event/EventCard.svelte b/src/components/event/EventCard.svelte index d0f4571..96e7bc0 100644 --- a/src/components/event/EventCard.svelte +++ b/src/components/event/EventCard.svelte @@ -4,13 +4,15 @@ const { title, children, + unsized = false, }: { title: string; children: Snippet; + unsized?: boolean; } = $props(); -
+
{title}
diff --git a/src/components/event/EventList.svelte b/src/components/event/EventList.svelte new file mode 100644 index 0000000..a476041 --- /dev/null +++ b/src/components/event/EventList.svelte @@ -0,0 +1,122 @@ + + +{#if currentEvent} + +{/if} + +{#if upcomingEvents.length} + +{/if} + +{#if pastEvents.length} + +{/if} diff --git a/src/components/event/EventPage.svelte b/src/components/event/EventPage.svelte new file mode 100644 index 0000000..299835c --- /dev/null +++ b/src/components/event/EventPage.svelte @@ -0,0 +1,21 @@ + + +
+
+

Events

+
+ + + +
diff --git a/src/pages/events/[slug].astro b/src/pages/events/[slug].astro index 83066a9..54cc9c2 100644 --- a/src/pages/events/[slug].astro +++ b/src/pages/events/[slug].astro @@ -27,6 +27,25 @@ export const getStaticPaths = createGetStaticPaths(async () => { const { event, page } = Astro.props as { event: ExtendedEvent; page: CollectionEntry<"events"> }; const { Content } = await page.render(); + +const colorMap: Record = { + "0": "#000000", + "1": "#0000AA", + "2": "#00AA00", + "3": "#00AAAA", + "4": "#AA0000", + "5": "#AA00AA", + "6": "#FFAA00", + "7": "#AAAAAA", + "8": "#555555", + "9": "#5555FF", + a: "#55FF55", + b: "#55FFFF", + c: "#FF5555", + d: "#FF55FF", + e: "#FFFF55", + f: "#FFFFFF", +}; --- @@ -54,6 +73,23 @@ const { Content } = await page.render();
+ { + event.teams.length > 0 && ( +
+

Angemeldete Teams

+
+ {event.teams.map((team) => ( +
+ {team.kuerzel} + + {team.name} + +
+ ))} +
+
+ ) + } { page.data.viewConfig && (
diff --git a/src/pages/events/index.astro b/src/pages/events/index.astro index 88a3e9d..f285d59 100644 --- a/src/pages/events/index.astro +++ b/src/pages/events/index.astro @@ -2,35 +2,23 @@ import type { ExtendedEvent } from "@components/types/event"; import PageLayout from "@layouts/PageLayout.astro"; import { getCollection } from "astro:content"; +import EventPage from "@components/event/EventPage.svelte"; const events = await Promise.all( (await getCollection("events")).map(async (event) => ({ ...event, data: { ...event.data, - event: (await fetch(import.meta.env.PUBLIC_API_SERVER + "/events/" + event.data.eventId).then((value) => value.json())) as ExtendedEvent, + event: (await fetch( + import.meta.env.PUBLIC_API_SERVER + + "/events/" + + event.data.eventId, + ).then((value) => value.json())) as ExtendedEvent, }, - })) + })), ); --- - { - events.map((event) => ( - - )) - } +