forked from vercel/commerce
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.tsx
114 lines (107 loc) · 3.06 KB
/
index.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import { Layout } from '@components/common'
import { Grid, Marquee, Hero } from '@components/ui'
import { ProductCard } from '@components/product'
// import HomeAllProductsGrid from '@components/common/HomeAllProductsGrid'
import type { GetStaticPropsContext, InferGetStaticPropsType } from 'next'
import { getConfig } from '@framework/api'
import getAllProducts from '@framework/product/get-all-products'
import getSiteInfo from '@framework/common/get-site-info'
import getAllPages from '@framework/common/get-all-pages'
export async function getStaticProps({
preview,
locale,
}: GetStaticPropsContext) {
const config = getConfig({ locale })
const { products } = await getAllProducts({
variables: { first: 12 },
config,
preview,
})
const { categories, brands } = await getSiteInfo({ config, preview })
const { pages } = await getAllPages({ config, preview })
return {
props: {
products,
categories,
brands,
pages,
},
revalidate: 14400,
}
}
export default function Home({
products,
brands,
categories,
}: InferGetStaticPropsType<typeof getStaticProps>) {
return (
<>
<Grid>
{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"
imgProps={{
width: 320,
height: 320,
}}
/>
))}
</Marquee>
<Hero
headline="Release Details: The Yeezy BOOST 350 V2 ‘Natural'"
description="
The Yeezy BOOST 350 V2 lineup continues to grow. We recently had the
‘Carbon’ iteration, and now release details have been locked in for
this ‘Natural’ joint. Revealed by Yeezy Mafia earlier this year, the
shoe was originally called ‘Abez’, which translated to ‘Tin’ in
Hebrew. It’s now undergone a name change, and will be referred to as
‘Natural’."
/>
<Grid layout="B">
{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(0, 3).map((product, i) => (
<ProductCard
key={product.id}
product={product}
variant="slim"
imgProps={{
width: 320,
height: 320,
}}
/>
))}
</Marquee>
{/* <HomeAllProductsGrid
newestProducts={products}
categories={categories}
brands={brands}
/> */}
</>
)
}
Home.Layout = Layout