import { GET_PAGE_METADATA_BY_SLUG, PageMetadataResponse, } from "@/graphql/queries/getHeroMetadata"; import createApolloServerClient from "@/graphql/server-client"; import { HeroClientRenderer } from "./heroClientRenderer"; type MetadataItem = { key: string; value: string | null; }; export async function ShowroomHeroCarousel() { let heroData = { title: "Title goes here", description: "Description goes here", bgSrc: "/images/wsm.webp", }; if (!process.env.NEXT_PUBLIC_API_URL) { return ; } try { const client = createApolloServerClient(); const { data } = await client.query({ query: GET_PAGE_METADATA_BY_SLUG, variables: { slug: "hero-section" }, fetchPolicy: "cache-first", errorPolicy: "all", }); const meta = (data?.page?.metadata ?? []) as MetadataItem[]; const getVal = (key: string): string | null => { const value = meta.find((m) => m.key === key)?.value; // Return null if value is null, undefined, empty string, or only whitespace return value?.trim() || null; }; heroData = { title: getVal("heading") || heroData.title, description: getVal("paragraph") || heroData.description, bgSrc: getVal("background-image-url") || heroData.bgSrc, }; } catch (error) { } return ; }