This commit is contained in:
Joel Varty
2021-06-17 17:37:32 -04:00
parent d48aec2c2d
commit d9fe7d8e6b
23 changed files with 263 additions and 11789 deletions

View File

@@ -5,20 +5,14 @@ import type {
} from 'next'
import commerce from '@lib/api/commerce'
import { Layout } from '@components/common'
import { missingLocaleInPages } from '@lib/usage-warns'
import { getAgilityPageProps, getAgilityPaths } from "@agility/nextjs/node"
import { handlePreview } from "@agility/nextjs"
import { defaultPageProps } from '@lib/defaults'
import AgilityPage from "components/agility-global/AgilityPage"
import { getConfig } from '@framework/api'
import getProduct from '@framework/api/operations/get-product'
import getModuleData from "framework/module-data"
import getAllProductPaths from '@framework/api/operations/get-all-product-paths'
import getModuleData from "framework/module-data"
export async function getStaticProps({ preview, params, locale, locales, defaultLocale }: GetStaticPropsContext<{ slug: string[] }>) {
@@ -43,11 +37,13 @@ export async function getStaticProps({ preview, params, locale, locales, default
let rebuildFrequency = 10
let productDetail:any = null
let productDetail: any = null
if (productCode) {
const config = getConfig({ locale })
const { product } = await getProduct({
const config = { locale, locales }
const { product } = await commerce.getProduct({
variables: { slug: productCode },
config,
preview,
@@ -69,7 +65,7 @@ export async function getStaticProps({ preview, params, locale, locales, default
}
return {
props: { ...defaultPageProps, agilityProps },
props: { agilityProps },
revalidate: rebuildFrequency
}
} catch (err) {
@@ -81,7 +77,6 @@ export async function getStaticProps({ preview, params, locale, locales, default
return {
props: {
error: `Params: ${params}, Error: ${err}, Stack: ${st}`,
header: null,
agilityProps: null
},
revalidate: 60000
@@ -98,14 +93,26 @@ export async function getStaticPaths({ defaultLocale, locales }: GetStaticPathsC
agilityPaths = agilityPaths.filter(p => p !== "/product/product-details")
//get the product paths from the commerce api
const { products } = await getAllProductPaths()
const productPaths = products.map(p => `/product${p.node.path}`)
const { products } = await commerce.getAllProductPaths()
let productPaths = []
if (locales) {
productPaths = locales.reduce<string[]>((arr, locale) => {
// Add a product path for every locale
products.forEach((product: any) => {
arr.push(`/${locale}/product${product.path}`)
})
return arr
}, [])
} else {
productPaths = products.map((product: any) => `/product${product.path}`)
}
const paths = [...agilityPaths, ...productPaths]
return {
paths,
fallback: true,
fallback: 'blocking',
}
}

View File

@@ -1,94 +1,2 @@
//this is just a pointer to the catch-all route and logic for all CMS driven pages (i.e. even rootpage is dynamic from the CMS)
export { default, getStaticProps } from './[...slug]';
// 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
export { default, getStaticProps } from './[...slug]';