From 7015d1caefdaf4e6cad3d799d7a494f1ac40d955 Mon Sep 17 00:00:00 2001 From: Chloe Date: Sat, 22 Jun 2024 15:21:30 +0700 Subject: [PATCH] fix broken PLP page Signed-off-by: Chloe --- app/search/[collection]/page.tsx | 10 +++++++--- app/search/page.tsx | 1 - components/layout/products-list/actions.ts | 6 ++++-- components/layout/products-list/index.tsx | 14 +++++++------- .../layout/search/filters/filters-container.tsx | 7 +++++-- 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/app/search/[collection]/page.tsx b/app/search/[collection]/page.tsx index 0909ce882..52dfb94e9 100644 --- a/app/search/[collection]/page.tsx +++ b/app/search/[collection]/page.tsx @@ -44,7 +44,8 @@ async function CategoryPage({ searchParams?: { [key: string]: string | string[] | undefined }; }) { const { products, filters, pageInfo } = await getProductsInCollection({ - searchParams + searchParams, + collection: params.collection }); return ( @@ -65,7 +66,7 @@ async function CategoryPage({ @@ -95,7 +96,10 @@ export default async function CategorySearchPage(props: { fallback={} key={`filters-${props.params.collection}`} > - + diff --git a/app/search/page.tsx b/app/search/page.tsx index 320795690..e4ab6659c 100644 --- a/app/search/page.tsx +++ b/app/search/page.tsx @@ -41,7 +41,6 @@ export default async function SearchPage({ initialProducts={products} pageInfo={pageInfo} searchParams={searchParams} - page="search" /> ) : null} diff --git a/components/layout/products-list/actions.ts b/components/layout/products-list/actions.ts index b04743672..a76e8cd0f 100644 --- a/components/layout/products-list/actions.ts +++ b/components/layout/products-list/actions.ts @@ -64,14 +64,16 @@ const constructFilterInput = (filters: { export const getProductsInCollection = async ({ searchParams, - afterCursor + afterCursor, + collection }: { searchParams?: { [key: string]: string | string[] | undefined; }; afterCursor?: string; + collection?: string; }) => { - const { sort, q, collection, ...rest } = searchParams as { [key: string]: string }; + const { sort, q, ...rest } = searchParams as { [key: string]: string }; const { sortKey, reverse } = sorting.find((item) => item.slug === sort) || defaultSort; const filtersInput = constructFilterInput(rest); diff --git a/components/layout/products-list/index.tsx b/components/layout/products-list/index.tsx index 3ebc98efc..c41f9b5c0 100644 --- a/components/layout/products-list/index.tsx +++ b/components/layout/products-list/index.tsx @@ -13,7 +13,7 @@ const ProductsList = ({ initialProducts, pageInfo, searchParams, - page + collection }: { initialProducts: Product[]; pageInfo: { @@ -21,7 +21,7 @@ const ProductsList = ({ hasNextPage: boolean; }; searchParams?: { [key: string]: string | string[] | undefined }; - page: 'search' | 'collection'; + collection?: string; }) => { const [products, setProducts] = useState(initialProducts); const [_pageInfo, setPageInfo] = useState(pageInfo); @@ -31,13 +31,13 @@ const ProductsList = ({ try { const params = { searchParams, - afterCursor: _pageInfo.endCursor + afterCursor: _pageInfo.endCursor, + collection }; setIsLoading(true); - const { products, pageInfo } = - page === 'collection' - ? await getProductsInCollection(params) - : await searchProducts(params); + const { products, pageInfo } = collection + ? await getProductsInCollection(params) + : await searchProducts(params); setProducts((prev) => [...prev, ...products]); setPageInfo({ diff --git a/components/layout/search/filters/filters-container.tsx b/components/layout/search/filters/filters-container.tsx index ff36f6822..5b9a5b109 100644 --- a/components/layout/search/filters/filters-container.tsx +++ b/components/layout/search/filters/filters-container.tsx @@ -2,12 +2,15 @@ import { getProductsInCollection } from 'components/layout/products-list/actions import FiltersList from './filters-list'; const FiltersContainer = async ({ - searchParams + searchParams, + collection }: { searchParams?: { [key: string]: string | string[] | undefined }; + collection: string; }) => { const { filters } = await getProductsInCollection({ - searchParams + searchParams, + collection }); return ;