From b1782a4a283391016156af5f0750311e34723278 Mon Sep 17 00:00:00 2001 From: Chloe Date: Sat, 22 Jun 2024 17:24:10 +0700 Subject: [PATCH] fix: split hero rendering Signed-off-by: Chloe --- app/page.tsx | 4 +- components/hero.tsx | 145 ++++++++++++++++++++++++++++---------------- 2 files changed, 95 insertions(+), 54 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index a71d8df8f..fb82e4d56 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -23,9 +23,7 @@ export async function generateMetadata(): Promise { export default async function HomePage() { return ( <> - - - +
diff --git a/components/hero.tsx b/components/hero.tsx index f43cd95e4..28633f4fa 100644 --- a/components/hero.tsx +++ b/components/hero.tsx @@ -8,62 +8,105 @@ import ImageDisplay from './page/image-display'; const { SITE_NAME } = process.env; -const Hero = async () => { - const [offers, heroImage] = await Promise.all([ - getMetaobjects('usp_item'), - getMetaobject({ handle: { type: 'hero', handle: `${kebabCase(SITE_NAME)}-hero` } }) - ]); +const Offers = async () => { + const offers = await getMetaobjects('usp_item'); return ( -
- + + ); +}; -
+const OffersPlaceholder = () => { + return ( + + ); +}; +const HeroImage = async () => { + const heroImage = await getMetaobject({ + handle: { type: 'hero', handle: `${kebabCase(SITE_NAME)}-hero` } + }); + + return heroImage ? ( + + + + ) : ( + Hero Image + ); +}; + +const Hero = () => { + return ( +
+ }> + + +
{/* Decorative image and overlay */}