mirror of
https://github.com/vercel/commerce.git
synced 2025-07-27 12:11:23 +00:00
.vscode
assets
components
config
framework
lib
pages
api
product
404.tsx
[...pages].tsx
_app.tsx
_document.tsx
cart.tsx
index.tsx
orders.tsx
profile.tsx
search.tsx
wishlist.tsx
public
.editorconfig
.env.template
.gitignore
.prettierignore
.prettierrc
README.md
codegen.json
commerce.config.json
global.d.ts
license.md
next-env.d.ts
next.config.js
package.json
postcss.config.js
tailwind.config.js
tsconfig.json
yarn.lock
86 lines
2.4 KiB
TypeScript
86 lines
2.4 KiB
TypeScript
import commerce from '@lib/api/commerce'
|
|
import { Layout } from '@components/common'
|
|
import { ProductCard } from '@components/product'
|
|
import { Grid, Marquee, Hero } from '@components/ui'
|
|
// import HomeAllProductsGrid from '@components/common/HomeAllProductsGrid'
|
|
import type { GetStaticPropsContext, InferGetStaticPropsType } from 'next'
|
|
|
|
export async function getStaticProps({
|
|
preview,
|
|
locale,
|
|
locales,
|
|
}: GetStaticPropsContext) {
|
|
const config = { locale, locales }
|
|
const { products } = await commerce.getAllProducts({
|
|
variables: { first: 6 },
|
|
config,
|
|
preview,
|
|
})
|
|
const { categories, brands } = await commerce.getSiteInfo({ config, preview })
|
|
const { pages } = await commerce.getAllPages({ config, preview })
|
|
|
|
return {
|
|
props: {
|
|
products,
|
|
categories,
|
|
brands,
|
|
pages,
|
|
},
|
|
revalidate: 60,
|
|
}
|
|
}
|
|
|
|
export default function Home({
|
|
products,
|
|
}: InferGetStaticPropsType<typeof getStaticProps>) {
|
|
return (
|
|
<>
|
|
<Grid variant="filled">
|
|
{products.slice(0, 3).map((product, i) => (
|
|
<ProductCard
|
|
key={product.id}
|
|
product={product}
|
|
imgProps={{
|
|
width: i === 0 ? 1080 : 540,
|
|
height: i === 0 ? 1080 : 540,
|
|
}}
|
|
/>
|
|
))}
|
|
</Grid>
|
|
<Marquee variant="secondary">
|
|
{products.slice(0, 3).map((product, i) => (
|
|
<ProductCard key={product.id} product={product} variant="slim" />
|
|
))}
|
|
</Marquee>
|
|
<Hero
|
|
headline=" Dessert dragée halvah croissant."
|
|
description="Cupcake ipsum dolor sit amet lemon drops pastry cotton candy. Sweet carrot cake macaroon bonbon croissant fruitcake jujubes macaroon oat cake. Soufflé bonbon caramels jelly beans. Tiramisu sweet roll cheesecake pie carrot cake. "
|
|
/>
|
|
<Grid layout="B" variant="filled">
|
|
{products.slice(0, 3).map((product, i) => (
|
|
<ProductCard
|
|
key={product.id}
|
|
product={product}
|
|
imgProps={{
|
|
width: i === 0 ? 1080 : 540,
|
|
height: i === 0 ? 1080 : 540,
|
|
}}
|
|
/>
|
|
))}
|
|
</Grid>
|
|
<Marquee>
|
|
{products.slice(3).map((product, i) => (
|
|
<ProductCard key={product.id} product={product} variant="slim" />
|
|
))}
|
|
</Marquee>
|
|
{/* <HomeAllProductsGrid
|
|
newestProducts={products}
|
|
categories={categories}
|
|
brands={brands}
|
|
/> */}
|
|
</>
|
|
)
|
|
}
|
|
|
|
Home.Layout = Layout
|