@@ -11,38 +11,32 @@ import { Featured } from '@/components/products/featured';
1111import { ProductItems } from '@/components/products/product-items' ;
1212import { generateMetadataObject } from '@/lib/shared/metadata' ;
1313import { fetchCollectionType , fetchSingleType } from '@/lib/strapi' ;
14- import { Product } from '@/types/types' ;
14+ import { LocaleParamsProps , Product } from '@/types/types' ;
1515
16- export async function generateMetadata ( props : {
17- params : Promise < { locale : string } > ;
18- } ) : Promise < Metadata > {
19- const params = await props . params ;
20- const pageData = await fetchSingleType ( 'product-page' , {
21- locale : params . locale ,
22- } ) ;
16+ export async function generateMetadata ( {
17+ params,
18+ } : LocaleParamsProps ) : Promise < Metadata > {
19+ const { locale } = await params ;
20+ const pageData = await fetchSingleType ( 'product-page' , { locale } ) ;
2321
2422 const seo = pageData ?. seo ;
2523 const metadata = generateMetadataObject ( seo ) ;
2624 return metadata ;
2725}
2826
29- export default async function Products ( props : {
30- params : Promise < { locale : string } > ;
31- } ) {
32- const params = await props . params ;
27+ export default async function Products ( { params } : LocaleParamsProps ) {
28+ const { locale } = await params ;
3329
3430 // Fetch the product-page and products data
35- const pageData = await fetchSingleType ( 'product-page' , {
36- locale : params . locale ,
37- } ) ;
31+ const pageData = await fetchSingleType ( 'product-page' , { locale } ) ;
3832 const products = await fetchCollectionType < Product [ ] > ( 'products' ) ;
3933
40- const localizedSlugs = pageData . localizations ? .reduce (
34+ const localizedSlugs = pageData . localizations . reduce (
4135 ( acc : Record < string , string > , localization : any ) => {
4236 acc [ localization . locale ] = 'products' ;
4337 return acc ;
4438 } ,
45- { [ params . locale ] : 'products' }
39+ { [ locale ] : 'products' }
4640 ) ;
4741 const featured = products . filter (
4842 ( product : { featured ?: boolean } ) => product . featured
@@ -62,8 +56,8 @@ export default async function Products(props: {
6256 < Subheading className = "max-w-3xl mx-auto" >
6357 { pageData . sub_heading }
6458 </ Subheading >
65- < Featured products = { featured } locale = { params . locale } />
66- < ProductItems products = { products } locale = { params . locale } />
59+ < Featured products = { featured } locale = { locale } />
60+ < ProductItems products = { products } locale = { locale } />
6761 </ Container >
6862 </ div >
6963 ) ;
0 commit comments