remove skeleton ui

This commit is contained in:
Minh Vo
2025-12-22 19:52:46 -05:00
parent 37666f9d0a
commit b4bb7dec0c
6 changed files with 45 additions and 42 deletions

View File

@@ -1,5 +1,6 @@
{
"lockfileVersion": 1,
"configVersion": 0,
"workspaces": {
"": {
"name": "ecsess-website",

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { PortableText } from '@portabletext/svelte';
//import { PortableText } from '@portabletext/svelte';
import { CalendarDays, MapPin, Link as LinkIcon, FilePen, CalendarPlus } from '@lucide/svelte';
import RichText from 'components/RichText.svelte';

View File

@@ -1,12 +1,8 @@
<script lang="ts">
import { Tabs } from '@skeletonlabs/skeleton-svelte';
import EventBlock from 'components/event/EventBlock.svelte';
import type { EventPost } from '$lib/schemas';
import type { EventPost, Category } from '$lib/schemas';
type Category = 'allEvents' | 'academic' | 'professional' | 'social' | 'technical';
let { value, category, events } = $props<{
value: Category;
let { category, events } = $props<{
category: Category;
events: EventPost[];
}>();
@@ -66,18 +62,18 @@
const upcomingEvents = $derived(
filtered
.filter((e) => !isPastEvent(e.date))
.sort((a, b) => parseEventDate(a.date).getTime() - parseEventDate(b.date).getTime())
.filter((e: { date: string; }) => !isPastEvent(e.date))
.sort((a: { date: string; }, b: { date: string; }) => parseEventDate(a.date).getTime() - parseEventDate(b.date).getTime())
);
const finishedEvents = $derived(
filtered
.filter((e) => isPastEvent(e.date))
.sort((a, b) => parseEventDate(b.date).getTime() - parseEventDate(a.date).getTime())
.filter((e: { date: string; }) => isPastEvent(e.date))
.sort((a: { date: string; }, b: { date: string; }) => parseEventDate(b.date).getTime() - parseEventDate(a.date).getTime())
);
</script>
<Tabs.Content {value}>
<div>
<div class="space-y-12 px-4 py-8 lg:px-8">
<!-- Upcoming Events -->
{#if upcomingEvents.length > 0}
@@ -139,4 +135,4 @@
</div>
{/if}
</div>
</Tabs.Content>
</div>

View File

@@ -1,15 +1,14 @@
<script>
import { Tabs } from '@skeletonlabs/skeleton-svelte';
let { value, children } = $props();
let { value, onclick, children } = $props();
</script>
<Tabs.Trigger {value}>
{#snippet element(attributes)}
<button
{...attributes}
class="hover:border-b-ecsess-200 data-[state=active]:border-b-ecsess-400 border-b-4 border-b-transparent px-2 pb-2 text-lg transition-all ease-in-out"
>
{@render children()}
</button>
{/snippet}
</Tabs.Trigger>
<div>
<button
{value}
onclick={() => onclick(value)}
class="hover:border-b-ecsess-200 data-[state=active]:border-b-ecsess-400 border-b-4 border-b-transparent px-2 pb-2 text-lg transition-all ease-in-out"
>
{@render children()}
</button>
</div>

View File

@@ -13,6 +13,9 @@ export type EventPost = {
paylink: string; // event payment link (e.g., Zeffy)
};
export type Category = 'allEvents' | 'academic' | 'professional' | 'social' | 'technical';
export type FAQ = {
question: string;
answer: string;

View File

@@ -1,6 +1,5 @@
<script lang="ts">
import type { EventPost } from '$lib/schemas';
import { Tabs } from '@skeletonlabs/skeleton-svelte';
import type { EventPost, Category } from '$lib/schemas';
import Section from 'components/layout/Section.svelte';
import SeoMetaTags from 'components/layout/SeoMetaTags.svelte';
import EventTabsTrigger from 'components/event/EventTabsTrigger.svelte';
@@ -9,7 +8,18 @@
let { data } = $props();
let events: EventPost[] = data.events ?? [];
let group = $state('allEvents');
let group = $state<Category>('allEvents');
let categories: {value: Category; label: string}[] = [
{ value: 'allEvents', label: 'All Events' },
{ value: 'academic', label: 'Academic' },
{ value: 'professional', label: 'Professional' },
{ value: 'social', label: 'Social' },
{ value: 'technical', label: 'Technical' }
];
// Handle tab change
function handleTabChange(selectedCategory: Category) {
group = selectedCategory;
}
</script>
<SeoMetaTags
@@ -21,19 +31,13 @@
<Section from="from-ecsess-black" to="to-ecsess-black" via="via-ecsess-600" direction="to-b">
<p class="page-title">Events</p>
<Tabs value={group} onValueChange={(e) => (group = e.value)} composite={true}>
<Tabs.List>
<EventTabsTrigger value="allEvents">All Events</EventTabsTrigger>
<EventTabsTrigger value="academic">Academic</EventTabsTrigger>
<EventTabsTrigger value="professional">Professional</EventTabsTrigger>
<EventTabsTrigger value="social">Social</EventTabsTrigger>
<EventTabsTrigger value="technical">Technical</EventTabsTrigger>
</Tabs.List>
<div>
<ul class="flex justify-center flex-wrap gap-2">
{#each categories as category}
<EventTabsTrigger value={category.value} onclick={handleTabChange}>{category.label}</EventTabsTrigger>
{/each}
</ul>
<EventTabsContent value="allEvents" category="allEvents" {events} />
<EventTabsContent value="academic" category="academic" {events} />
<EventTabsContent value="professional" category="professional" {events} />
<EventTabsContent value="social" category="social" {events} />
<EventTabsContent value="technical" category="technical" {events} />
</Tabs>
<EventTabsContent category={group} {events} />
</div>
</Section>