diff --git a/src/components/event/EventBlock.svelte b/src/components/event/EventBlock.svelte
index 077d428..1846393 100644
--- a/src/components/event/EventBlock.svelte
+++ b/src/components/event/EventBlock.svelte
@@ -1,6 +1,12 @@
-
-
- {#if thumbnail}
-

- {:else if eventCategory?.[0] === 'social'}
-

- {:else if eventCategory?.[0] === 'technical'}
-

- {:else if eventCategory?.[0] === 'professional'}
-

- {:else if eventCategory?.[0] === 'academic'}
-

- {:else}
-

- {/if}
-
-
+
+
+
+
+ class="flip-box-front bg-ecsess-950 shadow-ecsess-950/60 flex flex-col rounded-2xl shadow-xl transition-opacity duration-500 {showDescription
+ ? 'pointer-events-none opacity-0'
+ : 'opacity-100'}"
+ >
+
+
+
+
+ {#if thumbnail}
+

+ {:else if eventCategory?.[0] === 'social'}
+

+ {:else if eventCategory?.[0] === 'technical'}
+

+ {:else if eventCategory?.[0] === 'professional'}
+

+ {:else if eventCategory?.[0] === 'academic'}
+

+ {:else}
+

+ {/if}
-
-
- {#if isPastEvent}
-
- Past Event
-
- {:else}
-
- Upcoming
-
- {/if}
+
+
+
+
+
+ {eventTitle}
+
+
+
+
+
+ {#if isPastEvent}
+
+ Past Event
+
+ {:else}
+
+ Upcoming
+
+ {/if}
- {#if eventCategory && eventCategory.length > 0}
-
- {#each eventCategory as category}
-
0}
+
+ {#each eventCategory as category}
+
+ {category}
+
+ {/each}
+
+ {/if}
+
+
+
+
+
+
+
+
+
+
+
+
+ {location ?? 'TBA'}
+
+
+
+
+
+
+ {#if !isPastEvent}
+
+
+
+ {#if registrationLink}
+
+
+ Register
+
+ {:else}
+
+
+ Drop In
+
+ {/if}
+
+ {#if paymentLink}
+
+
+ Pay
+
+ {:else}
+
+ Free!
+
+ {/if}
+
+
+ {/if}
+
+
+
+
+
+
+
+
+
+
+ {eventTitle}
+
+
+
+
+
+ {#if eventDescription}
+
+ {:else}
+
No description available for this event.
+ {/if}
+
+
+
+
+
+
- {/if}
-
-
-
-
-
- {eventTitle}
-
-
-
-
-
-
-
- {#if eventDescription}
-
-
-
- {/if}
-
-
-
-
-
-
-
-
-
-
-
- {location ?? 'TBA'}
-
-
+ {/if}
-
-
- {#if !isPastEvent}
-
-
-
-
-
-
- {#if registrationLink}
-
-
- Register
-
- {:else}
-
-
- Drop In
-
- {/if}
-
- {#if paymentLink}
-
-
- Pay
-
- {:else}
-
- Free!
-
- {/if}
-
-
- {/if}
+
+
diff --git a/src/components/event/EventTabsContent.svelte b/src/components/event/EventTabsContent.svelte
index a298600..d61a835 100644
--- a/src/components/event/EventTabsContent.svelte
+++ b/src/components/event/EventTabsContent.svelte
@@ -1,13 +1,9 @@
-
+
{#if upcomingEvents.length > 0}
@@ -94,8 +108,9 @@
location={e.location}
eventDescription={e.description}
thumbnail={e.thumbnail}
- registrationLink={e.reglink}
- paymentLink={e.paylink}
+ registrationLink={getPaymentLink(e, EventLinkKind.REGISTRATION)}
+ paymentLink={getPaymentLink(e, EventLinkKind.PAYMENT)}
+ generalLink={getPaymentLink(e, EventLinkKind.GENERAL)}
eventCategory={e.category}
isPastEvent={false}
/>
@@ -119,8 +134,9 @@
location={e.location}
eventDescription={e.description}
thumbnail={e.thumbnail}
- registrationLink={e.reglink}
- paymentLink={e.paylink}
+ registrationLink={getPaymentLink(e, EventLinkKind.REGISTRATION)}
+ paymentLink={getPaymentLink(e, EventLinkKind.PAYMENT)}
+ generalLink={getPaymentLink(e, EventLinkKind.GENERAL)}
eventCategory={e.category}
isPastEvent={true}
/>
@@ -139,4 +155,4 @@
{/if}
-
+
diff --git a/src/components/event/EventTabsTrigger.svelte b/src/components/event/EventTabsTrigger.svelte
index 6fc8ad9..9c09c45 100644
--- a/src/components/event/EventTabsTrigger.svelte
+++ b/src/components/event/EventTabsTrigger.svelte
@@ -1,15 +1,15 @@
-
- {#snippet element(attributes)}
-
- {/snippet}
-
+
+
+
diff --git a/src/lib/schemas.ts b/src/lib/schemas.ts
index 47a2e64..eb9eba2 100644
--- a/src/lib/schemas.ts
+++ b/src/lib/schemas.ts
@@ -8,11 +8,29 @@ export type EventPost = {
time: string;
location: string;
thumbnail: string;
- reglink: string;
- category: string;
- paylink: string; // event payment link (e.g., Zeffy)
+ category: EventCategory;
+ links: LinkType[];
};
+export enum EventCategory {
+ ALL_EVENTS = 'allEvents',
+ ACADEMIC = 'academic',
+ PROFESSIONAL = 'professional',
+ SOCIAL = 'social',
+ TECHNICAL = 'technical'
+}
+
+export type LinkType = {
+ title: string;
+ kind: EventLinkKind;
+ url: string;
+};
+export enum EventLinkKind {
+ PAYMENT = 'payment',
+ REGISTRATION = 'registration',
+ GENERAL = 'general'
+}
+
export type FAQ = {
question: string;
answer: string;
diff --git a/src/routes/events/+page.server.ts b/src/routes/events/+page.server.ts
index 603e2d6..6b6c9bf 100644
--- a/src/routes/events/+page.server.ts
+++ b/src/routes/events/+page.server.ts
@@ -7,8 +7,11 @@ const eventQuery = `*[_type == "events"]{
date,
location,
description,
- reglink,
- paylink,
+ "links": links[]{
+ "kind": kind,
+ "title": title,
+ "url": url
+ },
"thumbnail": thumbnail.asset->url+"?h=800&fm=webp",
"lastUpdated": _updatedAt,
}`;
diff --git a/src/routes/events/+page.svelte b/src/routes/events/+page.svelte
index 28a0dd8..8161c9b 100644
--- a/src/routes/events/+page.svelte
+++ b/src/routes/events/+page.svelte
@@ -1,6 +1,5 @@
Events
- (group = e.value)} composite={true}>
-
- All Events
- Academic
- Professional
- Social
- Technical
-
+
+
+ {#each categories as category}
+ {category.label}
+ {/each}
+
-
-
-
-
-
-
+
+