- {group.name} -
-+ {group.name} +
+ -+
{group.description}
--
+
- - - - {feature} - +
- + + {feature} {/each}
-
{#each group.features as feature (feature)}
-
- Want to get involved? Visit their websites and social media pages to learn about upcoming - events and how to join! -
-+ Our Sponsors +
++ We're grateful to our sponsors for their continued support of ECSESS, our events, activities, + and our community. +
+ +You can be our next sponsor!
++
{officeHour.member.name.split(' ')[0]}
{#if !isShortBlock} -+
{shortenPosition(officeHour.member.position)}
{/if} diff --git a/src/components/officehour/OHSchedule.svelte b/src/components/officehour/OHSchedule.svelte index cc77936..040711a 100644 --- a/src/components/officehour/OHSchedule.svelte +++ b/src/components/officehour/OHSchedule.svelte @@ -114,10 +114,14 @@
- The page you are looking for is not implemented because we are too lazy to do it. But if you
- really want to see it, you can reboot to the homepage and try again.
+ The page you are looking for is not implemented because we are too lazy to do it.
+ But if you really want to see it, you can reboot to the homepage and try again.
Or even better, you can join us and help us implement it.
diff --git a/src/routes/+layout.server.ts b/src/routes/+layout.server.ts
new file mode 100644
index 0000000..4a972c6
--- /dev/null
+++ b/src/routes/+layout.server.ts
@@ -0,0 +1,14 @@
+import { getFromCMS } from '$lib/utils.js';
+
+const thumbnailQuery = `*[_type == "homepage"]{
+ "thumbnail": councilPhoto.asset->url+"?h=800&fm=webp",
+}[0]`;
+
+export const load = async () => {
+ try {
+ return { thumbnail: (await getFromCMS(thumbnailQuery)).thumbnail };
+ } catch (err) {
+ console.error('Failed to fetch homepage thumbnail from CMS:', err);
+ return { thumbnail: null };
+ }
+};
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 2781ad6..8008c05 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -4,9 +4,9 @@
import { onMount } from 'svelte';
import Navbar from 'components/layout/NavBar.svelte';
import Footer from 'components/layout/Footer.svelte';
+ import PageThumbnail from 'components/layout/PageThumbnail.svelte';
- let { children } = $props();
-
+ let { children, data } = $props();
// Lazy load analytics only in production for faster dev startup
onMount(async () => {
if (!dev) {
@@ -17,5 +17,6 @@