mirror of
https://github.com/vercel/commerce.git
synced 2025-05-14 13:47:49 +00:00
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import HomePage from '@/components/pages/home-page';
|
|
import HomePagePreview from '@/components/pages/home-page-preview';
|
|
import PreviewProvider from '@/components/preview-provider';
|
|
import { homePageQuery } from 'lib/sanity/queries';
|
|
import { getCachedClient } from 'lib/sanity/sanity.client';
|
|
import { Metadata } from 'next';
|
|
import { draftMode } from 'next/headers';
|
|
import { notFound } from 'next/navigation';
|
|
|
|
export async function generateMetadata({
|
|
params
|
|
}: {
|
|
params: { slug: string; locale: string };
|
|
}): Promise<Metadata> {
|
|
const homePage = await getCachedClient()(homePageQuery, params);
|
|
|
|
if (!homePage) return notFound();
|
|
|
|
return {
|
|
title: homePage.seo.title || homePage.title,
|
|
description: homePage.seo.description || homePage.description
|
|
};
|
|
}
|
|
interface HomePageParams {
|
|
params: {
|
|
locale: string;
|
|
};
|
|
}
|
|
|
|
export default async function IndexPage({ params }: HomePageParams) {
|
|
const preview = draftMode().isEnabled ? { token: process.env.SANITY_API_READ_TOKEN } : undefined;
|
|
|
|
const data = await getCachedClient(preview)(homePageQuery, params);
|
|
|
|
if (!data) return notFound();
|
|
|
|
if (preview && preview.token) {
|
|
return (
|
|
<PreviewProvider token={preview.token}>
|
|
<HomePagePreview initialData={data} params={params} />
|
|
</PreviewProvider>
|
|
);
|
|
}
|
|
|
|
return <HomePage data={data} />;
|
|
}
|