Combined homepage query into 1

This commit is contained in:
2026-01-25 11:22:16 -05:00
parent eb22c73f11
commit cd52d638f6
2 changed files with 22 additions and 24 deletions

View File

@@ -139,9 +139,7 @@
<!-- Time column (only for first day) -->
{#if dayIndex === 0}
<div
class="border-ecsess-500 bg-ecsess-900 sticky left-0 z-20 border-b-2"
>
<div class="border-ecsess-500 bg-ecsess-900 sticky left-0 z-20 border-b-2">
{#each timeSlots as timeSlot}
{@const isHourMark = timeSlot % 60 === 0}
<div

View File

@@ -1,36 +1,36 @@
import { getFromCMS } from '$lib/utils.js';
import type { HomepageCMSResponse, OfficeHour, Sponsors } from '$lib/schemas';
const homepageQuery = `*[_type == "homepage"]{
"description": description[],
"councilPhoto": councilPhoto.asset->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,