From cd52d638f6848c176ff339a8aa84ba6e088de004 Mon Sep 17 00:00:00 2001 From: Antoine Phan Date: Sun, 25 Jan 2026 11:22:16 -0500 Subject: [PATCH] Combined homepage query into 1 --- src/components/officehour/OHSchedule.svelte | 4 +- src/routes/+page.server.ts | 42 ++++++++++----------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/components/officehour/OHSchedule.svelte b/src/components/officehour/OHSchedule.svelte index b4427ef..040711a 100644 --- a/src/components/officehour/OHSchedule.svelte +++ b/src/components/officehour/OHSchedule.svelte @@ -139,9 +139,7 @@ {#if dayIndex === 0} -
+
{#each timeSlots as timeSlot} {@const isHourMark = timeSlot % 60 === 0}
url+"?h=1200&fm=webp", - "faqs": faqs[]{ question, answer }, -}[0]`; - -const ohQuery = `*[_type=="officeHours"]{ - day, - startTime, - endTime, - "member": { - "name": member->name, - "position": member->position - } -}`; - -const sponsorQuery = `*[_type=="sponsors"]{ +const homepageQuery = `{ + "homepage": *[_type == "homepage"]{ + "councilPhoto": councilPhoto.asset->url+"?h=1200&fm=webp", + "faqs": faqs[]{ question, answer }, + }[0], + "officeHours": *[_type=="officeHours"]{ + day, + startTime, + endTime, + "member": { + "name": member->name, + "position": member->position + } + }, + "sponsors": *[_type=="sponsors"]{ name, url, "logo": logo.asset->url+"?h=100&fm=webp" + } }`; export const load = async ({ url }) => { /** - * @description Response data type based on the `homepageQuery` above. + * @description Response data type based on the combined query above. * Note that `description` is a rich/portable text type */ - let homepageResp: HomepageCMSResponse = await getFromCMS(homepageQuery); - let officeHourResp: OfficeHour[] = await getFromCMS(ohQuery); - let sponsorsResp: Sponsors[] = await getFromCMS(sponsorQuery); + let homePageResp = await getFromCMS(homepageQuery); + let homepageResp: HomepageCMSResponse = homePageResp.homepage; + let officeHourResp: OfficeHour[] = homePageResp.officeHours; + let sponsorsResp: Sponsors[] = homePageResp.sponsors; return { description: homepageResp.description,