mirror of
https://github.com/vercel/commerce.git
synced 2025-07-26 19:51:23 +00:00
merged
This commit is contained in:
@@ -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',
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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]';
|
Reference in New Issue
Block a user