diff --git a/src/app.css b/src/app.css index d1dd4f3..6359b7c 100644 --- a/src/app.css +++ b/src/app.css @@ -204,3 +204,32 @@ h2 { @apply mt-3 text-sm leading-5; } } + +/* Scrollbar Styles */ +*::-webkit-scrollbar { + @apply h-1 w-1; +} + +*::-webkit-scrollbar-track { + @apply bg-ecsess-700 rounded; +} + +*::-webkit-scrollbar-track:hover { + @apply bg-ecsess-900; +} + +*::-webkit-scrollbar-track:active { + @apply bg-ecsess-900; +} + +*::-webkit-scrollbar-thumb { + @apply bg-ecsess-100 rounded-md; +} + +*::-webkit-scrollbar-thumb:hover { + @apply bg-ecsess-300; +} + +*::-webkit-scrollbar-thumb:active { + @apply bg-ecsess-300; +} diff --git a/src/components/RichText.svelte b/src/components/RichText.svelte index 5e760e1..b6662c9 100644 --- a/src/components/RichText.svelte +++ b/src/components/RichText.svelte @@ -4,6 +4,6 @@ let { value } = $props(); -
+
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} - {eventTitle} - {:else if eventCategory?.[0] === 'social'} - Social Event - {:else if eventCategory?.[0] === 'technical'} - Technical Event - {:else if eventCategory?.[0] === 'professional'} - Professional Event - {:else if eventCategory?.[0] === 'academic'} - Academic Event - {:else} - ECSESS Event - {/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} + {eventTitle} + {:else if eventCategory?.[0] === 'social'} + Social Event + {:else if eventCategory?.[0] === 'technical'} + Technical Event + {:else if eventCategory?.[0] === 'professional'} + Professional Event + {:else if eventCategory?.[0] === 'academic'} + Academic Event + {:else} + ECSESS Event + {/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} +
+ + +
+
+
+ +
+
+

{date}

+
+
+ +
+
+ +
+
+

+ {location ?? 'TBA'} +

+
+
+
+
+ + {#if !isPastEvent} +
+ +
+ {#if registrationLink} + + + Register + + {:else} +
+ + Drop In +
+ {/if} + + {#if paymentLink} + + + Pay + + {:else} +
+ Free! +
+ {/if} +
+
+ {/if} +
+
+

Click to view more

+
+
+ +
+ +
+ +
+

+ {eventTitle} +

+
+
+ +
+ {#if eventDescription} + + {:else} +

No description available for this event.

+ {/if} +
+
+ + + +
+ {#if generalLink} + {#each generalLink as link} + - {category} - + + {link.title} + {/each} -
- {/if} -
- - -
-

- {eventTitle} -

-
-
- - -
- - {#if eventDescription} -
- -
- {/if} - - -
-
-
- -
-
-

{date}

-
-
- -
-
- -
-
-

- {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} +
- - - - - - + +