forked from crowetic/commerce
* Custom Checkout Progress * Updates to Checkout * Custom Checkout Progress * Adding tabs * Adding Collapse * Adding Collapse * Improving Sidebar Scroll * Modif footer * Changes * More design updates * sidebar cart * More design updates * More design updates * More design updates * More design updates * Types * Types * Design Updates * More changes * More changes * More changes * Changes * Changes * Changes * New tailwind required changes * Sidebar Styling issues with Mobile * Latest changes - Normalizing cart * Styling Fixes * New changes * Changes * latest * Refactor and Renaming some UI Props * Adding Quantity Component * Adding Rating Component * Rating Component * More updates * User Select disabled, plus hidding horizontal scroll bars * Changes * Adding ProductOptions Component and more helpers * Styling updates * Styling updates * Fix for slim tags * Missmatch with RightArrow * Footer updates and some styles * Latest Updates * Latest Updates * Latest Updates * Removing Portal, since it's not needed. We might add it later I'd rather not to. * Removing Portal, since it's not needed. We might add it later I'd rather not to. * Sam backdrop filter * General UI Improvements * General UI Improvements * Search now with Geist Colors * Now with Geist Colors * Changes * Scroll for Mobile on IOs devises * LoadingDots Working (: * Changes * More Changes * Perf changes * More perf changes * Fade to the Nametags in the ProductCard * changes * Search issue ui * Search issue ui * Make sure to only refresh navbar and modals when required * Index revalidate * Fixed image issue * hide album scroll on windows * Fix scrollbar * Changing * Adding 404 with Layout * Removing Toast * Adding Assets * Adding Assets * Progress with LocalProvider * New productTag * Only images for the drop * changes * Empty SWRhooks * Adding Local Provider * Working local * Working view of a LocalProvider * More updates * Changes * Removed react-ticker * default to local if no env available * default to local if no env available * add missing `@` to css import * rewrite search rewrites to multiple pages * allow requests in getStaticProps to execute in parallel * make type import explicit * add a tsconfig.js file * use local provider in tsconfig.js * avoid a circular dependency * Saleor was not in the providers list * avoid circular dependency in bigcommerce * Adding more to the Local Provider (#366) * Adding more data * Adding more data * optimize assets (#370) * Optimize assets (#372) * optimize assets * remove assets * remove assets * cart enabled * Adding saleor * Changes with Webpack * Changes Co-authored-by: Luis Alvarez <luis@vercel.com> Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com> Co-authored-by: Shu Ding <g@shud.in>
91 lines
2.7 KiB
TypeScript
91 lines
2.7 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 productsPromise = commerce.getAllProducts({
|
|
variables: { first: 6 },
|
|
config,
|
|
preview,
|
|
// Saleor provider only
|
|
...({ featured: true } as any),
|
|
})
|
|
const pagesPromise = commerce.getAllPages({ config, preview })
|
|
const siteInfoPromise = commerce.getSiteInfo({ config, preview })
|
|
const { products } = await productsPromise
|
|
const { pages } = await pagesPromise
|
|
const { categories, brands } = await siteInfoPromise
|
|
|
|
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: any, i: number) => (
|
|
<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: any, i: number) => (
|
|
<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: any, i: number) => (
|
|
<ProductCard
|
|
key={product.id}
|
|
product={product}
|
|
imgProps={{
|
|
width: i === 0 ? 1080 : 540,
|
|
height: i === 0 ? 1080 : 540,
|
|
}}
|
|
/>
|
|
))}
|
|
</Grid>
|
|
<Marquee>
|
|
{products.slice(3).map((product: any, i: number) => (
|
|
<ProductCard key={product.id} product={product} variant="slim" />
|
|
))}
|
|
</Marquee>
|
|
{/* <HomeAllProductsGrid
|
|
newestProducts={products}
|
|
categories={categories}
|
|
brands={brands}
|
|
/> */}
|
|
</>
|
|
)
|
|
}
|
|
|
|
Home.Layout = Layout
|