add dedicated filters for models and years

Signed-off-by: Chloe <pinkcloudvnn@gmail.com>
This commit is contained in:
Chloe
2024-07-05 15:06:58 +07:00
parent a077bbe753
commit 7e9a84aaae
7 changed files with 119 additions and 78 deletions

View File

@@ -39,7 +39,7 @@ import {
getCollectionProductsQuery,
getCollectionQuery,
getCollectionsQuery,
getTransmissionCodesQuery
getProductFiltersQuery
} from './queries/collection';
import { getCustomerQuery } from './queries/customer';
import { getMenuQuery } from './queries/menu';
@@ -1188,7 +1188,7 @@ export async function getProductFilters(
const _make = Array.isArray(make) ? make : make ? [make] : undefined;
const res = await shopifyFetch<ShopifyCollectionProductsOperation>({
query: getTransmissionCodesQuery,
query: getProductFiltersQuery,
tags: [TAGS.collections, TAGS.products],
variables: {
handle: collection,

View File

@@ -79,8 +79,8 @@ export const getCollectionProductsQuery = /* GraphQL */ `
${productFragment}
`;
export const getTransmissionCodesQuery = /* GraphQL */ `
query getTransmissionCodes($handle: String!, $filters: [ProductFilter!]) {
export const getProductFiltersQuery = /* GraphQL */ `
query getProductFilters($handle: String!, $filters: [ProductFilter!]) {
collection(handle: $handle) {
products(first: 1, filters: $filters) {
filters {

View File

@@ -145,23 +145,7 @@ export const isBeforeToday = (date?: string | null) => {
};
export const getCollectionUrl = (handle: string, includeSlashPrefix = true) => {
let rewriteUrl = '';
const enginesPattern = /^\/?remanufactured-engines(-.+)?$/;
const transferCasesPattern = /^\/?transfer-cases(-.+)?$/;
if (enginesPattern.test(handle)) {
rewriteUrl = handle
.replace(/-/g, '/')
.replace('/engines/', '-engines/')
.replace('/engines', '-engines');
} else if (transferCasesPattern.test(handle)) {
rewriteUrl = handle
.replace(/-/g, '/')
.replace('/cases/', '-cases/')
.replace('/cases', '-cases');
} else {
rewriteUrl = handle.split('-').filter(Boolean).join('/');
}
const rewriteUrl = handle.split('_').filter(Boolean).join('/');
return includeSlashPrefix ? `/${rewriteUrl}` : rewriteUrl;
};