-
-

-
-
{yearProgram}
+
+
+
+
+

+
+
Major: {yearProgram}
+
-
{name}
-
{position}
-
{positionDescription}
-
{email}
+
{name}
+
+
+
{position}
+
+ Email: {email}
+
+
+
+
{positionDescription}
diff --git a/src/routes/council/+page.svelte b/src/routes/council/+page.svelte
index 6cf1964..4a5c717 100644
--- a/src/routes/council/+page.svelte
+++ b/src/routes/council/+page.svelte
@@ -2,30 +2,34 @@
import CouncilCardPopUp from 'components/CouncilCardPopUp.svelte';
import Section from 'components/Section.svelte';
import CardCouncil from 'components/CouncilCard.svelte';
- import type CouncilMember from 'utils/schemas';
+ import type { CouncilMember } from '$lib/schemas';
+ import { fly, slide } from 'svelte/transition';
let { data } = $props();
+
+ // Get members by 3 main categories:
+ // - Preseident
+ // - VPs + Equity and Mental Health Officer
+ // - UReps
+ let president: CouncilMember = data.members.filter((member: CouncilMember) =>
+ member.position.includes('President')
+ )[0];
+
+ let vps: CouncilMember[] = data.members.filter(
+ (member: CouncilMember) =>
+ member.position.includes('VP') || member.position.includes('Equity and Mental Health Officer')
+ );
+
+ let ureps: CouncilMember[] = data.members.filter((member: CouncilMember) =>
+ member.position.includes('Representative')
+ );
+
let years = ['U4', 'U3', 'U2', 'U1', 'U0'];
- let vps: CouncilMember[] = [];
- let ureps: CouncilMember[] = [];
- // svelte-ignore non_reactive_update
- let president: CouncilMember | null = null;
- data.members.forEach((member: CouncilMember) => {
- if (
- member.position.includes('VP') ||
- member.position.includes('Equity and Mental Health Officer')
- ) {
- vps.push(member);
- } else if (member.position.includes('Representative')) {
- ureps.push(member);
- ureps.sort((a, b) => {
- const aYear = years.findIndex((y) => a.position.includes(y));
- const bYear = years.findIndex((y) => b.position.includes(y));
- return aYear - bYear;
- });
- } else if (member.position.includes('President')) {
- president = member;
- }
+
+ ureps.sort((a, b) => {
+ const aYear = years.findIndex((year) => a.position.includes(year));
+ const bYear = years.findIndex((year) => b.position.includes(year));
+ return aYear - bYear;
});
let selectedMember = $state
(null);
@@ -33,11 +37,6 @@
function handleViewProfile(member: CouncilMember) {
selectedMember = member;
}
-
- console.log(ureps);
-
- // svelte-ignore state_referenced_locally
- // console.log(selectedMember);
ECSESS council
@@ -45,39 +44,39 @@
Meet the council!
Our Student Council
-

+
-
- {#if president}
-
handleViewProfile(president!)}
- />
- {/if}
+
+ handleViewProfile(president!)}
+ />
+
- {#each vps as councilMember}
+ {#each vps as vp}
handleViewProfile(councilMember)}
+ name={vp.name}
+ position={vp.position}
+ image={vp.image}
+ onViewProfile={() => handleViewProfile(vp)}
/>
{/each}
- {#each ureps as councilMember}
+ {#each ureps as urep}
handleViewProfile(councilMember)}
+ name={urep.name}
+ position={urep.position}
+ image={urep.image}
+ onViewProfile={() => handleViewProfile(urep)}
/>
{/each}
+
{#if selectedMember}
@@ -97,12 +96,3 @@
{/if}
-
-