From af619997002f33b2a9a5276467ac632218cfc2f8 Mon Sep 17 00:00:00 2001 From: Daniel Almaguer Date: Wed, 8 May 2024 12:10:23 -0500 Subject: [PATCH] fix(core): use categoryEntityId filter on category PLP (#880) --- .changeset/violet-swans-suffer.md | 5 +++++ .../[locale]/(default)/(faceted)/_components/facets.tsx | 2 +- .../[locale]/(default)/(faceted)/_components/refine-by.tsx | 2 +- .../[locale]/(default)/(faceted)/category/[slug]/page.tsx | 2 +- .../[locale]/(default)/(faceted)/fetch-faceted-search.ts | 7 +++++-- 5 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 .changeset/violet-swans-suffer.md diff --git a/.changeset/violet-swans-suffer.md b/.changeset/violet-swans-suffer.md new file mode 100644 index 000000000..ffbe9c48d --- /dev/null +++ b/.changeset/violet-swans-suffer.md @@ -0,0 +1,5 @@ +--- +"@bigcommerce/catalyst-core": patch +--- + +Category pages now use the `categoryEntityId` filter diff --git a/core/app/[locale]/(default)/(faceted)/_components/facets.tsx b/core/app/[locale]/(default)/(faceted)/_components/facets.tsx index 0740f412e..7cdc1e4b2 100644 --- a/core/app/[locale]/(default)/(faceted)/_components/facets.tsx +++ b/core/app/[locale]/(default)/(faceted)/_components/facets.tsx @@ -151,7 +151,7 @@ export const Facets = ({ facets, pageType }: Props) => { aria-labelledby={labelId} defaultChecked={category.isSelected} id={id} - name="category" + name="categoryIn" onCheckedChange={submitForm} value={category.entityId} /> diff --git a/core/app/[locale]/(default)/(faceted)/_components/refine-by.tsx b/core/app/[locale]/(default)/(faceted)/_components/refine-by.tsx index 5bf8a55fb..6e41a830d 100644 --- a/core/app/[locale]/(default)/(faceted)/_components/refine-by.tsx +++ b/core/app/[locale]/(default)/(faceted)/_components/refine-by.tsx @@ -43,7 +43,7 @@ const mapFacetsToRefinements = ({ facets, pageType }: Props) => return facet.categories .filter((category) => category.isSelected) .map>(({ name, entityId }) => ({ - key: 'category', + key: 'categoryIn', display_name: name, value: String(entityId), })); diff --git a/core/app/[locale]/(default)/(faceted)/category/[slug]/page.tsx b/core/app/[locale]/(default)/(faceted)/category/[slug]/page.tsx index c8e150eb9..cb5b0a567 100644 --- a/core/app/[locale]/(default)/(faceted)/category/[slug]/page.tsx +++ b/core/app/[locale]/(default)/(faceted)/category/[slug]/page.tsx @@ -46,7 +46,7 @@ export default async function Category({ params: { locale, slug }, searchParams const messages = await getMessages({ locale }); const categoryId = Number(slug); - const search = await fetchFacetedSearch({ ...searchParams, category: [slug] }); + const search = await fetchFacetedSearch({ ...searchParams, category: categoryId }); const data = await getCategoryPageData({ categoryId, diff --git a/core/app/[locale]/(default)/(faceted)/fetch-faceted-search.ts b/core/app/[locale]/(default)/(faceted)/fetch-faceted-search.ts index 670fb6d67..69122cd33 100644 --- a/core/app/[locale]/(default)/(faceted)/fetch-faceted-search.ts +++ b/core/app/[locale]/(default)/(faceted)/fetch-faceted-search.ts @@ -78,7 +78,8 @@ export const PublicSearchParamsSchema = z.object({ after: z.string().optional(), before: z.string().optional(), brand: SearchParamToArray.transform((value) => value?.map(Number)), - category: SearchParamToArray.transform((value) => value?.map(Number)), + category: z.coerce.number().optional(), + categoryIn: SearchParamToArray.transform((value) => value?.map(Number)), isFeatured: z.coerce.boolean().optional(), limit: z.coerce.number().optional(), minPrice: z.coerce.number().optional(), @@ -108,6 +109,7 @@ export const PublicToPrivateParams = PublicSearchParamsSchema.catchall(SearchPar const { brand, category, + categoryIn, isFeatured, minPrice, maxPrice, @@ -137,7 +139,8 @@ export const PublicToPrivateParams = PublicSearchParamsSchema.catchall(SearchPar sort, filters: { brandEntityIds: brand, - categoryEntityIds: category, + categoryEntityId: category, + categoryEntityIds: categoryIn, hideOutOfStock: stock?.includes('in_stock'), isFreeShipping: shipping?.includes('free_shipping'), isFeatured,