import { GetStaticPropsContext, InferGetStaticPropsType } from 'next' import getAllProducts from '@lib/bigcommerce/api/operations/get-all-products' import { Layout } from '@components/core' import { Grid, Marquee, Hero } from '@components/ui' import { ProductCard } from '@components/product' import getSiteInfo from '@lib/bigcommerce/api/operations/get-site-info' import getAllPages from '@lib/bigcommerce/api/operations/get-all-pages' export async function getStaticProps({ preview }: GetStaticPropsContext) { const { pages } = await getAllPages() const { products } = await getAllProducts() const { products: featuredProducts } = await getAllProducts({ variables: { field: 'featuredProducts', first: 3 }, }) const { categories, brands } = await getSiteInfo() return { props: { pages, products, featuredProducts, categories, brands }, } } export default function Home({ products, featuredProducts, categories, brands, }: InferGetStaticPropsType) { return (
{featuredProducts.map((p: any) => ( ))} {products.slice(0, 3).map((p: any) => ( ))} {products.slice(3, 6).map((p: any) => ( ))} {products.slice(0, 3).map((p: any) => ( ))}
  • All Categories
  • {categories.map((cat) => (
  • {cat.name}
  • ))}
  • All Designers
  • {brands.flatMap(({ node }) => (
  • {node.name}
  • ))}
{products.map((p: any) => ( ))}
) } Home.Layout = Layout