diff --git a/packages/core/src/sdk/product/useProductGalleryQuery.ts b/packages/core/src/sdk/product/useProductGalleryQuery.ts index e51e490a57..456f41e085 100644 --- a/packages/core/src/sdk/product/useProductGalleryQuery.ts +++ b/packages/core/src/sdk/product/useProductGalleryQuery.ts @@ -1,6 +1,6 @@ import { sendAnalyticsEvent } from '@faststore/sdk' -import { useSearch, setFacet } from '@faststore/sdk' +import { useSearch } from '@faststore/sdk' import { gql } from '@faststore/graphql-utils' import { useQuery } from 'src/sdk/graphql/useQuery' @@ -72,40 +72,30 @@ export const useProductGalleryQuery = ({ selectedFacets, }) - const findAndSetFacetValue = ( + const findFacetValue = ( facets: Facet[], - key: string, - newValue: string - ) => { - const existingFacetValue = facets?.find( - (facet: Facet) => facet.key === key - )?.value - - if (!existingFacetValue) { - setState({ - ...state, - selectedFacets: setFacet( - state.selectedFacets, - { key, value: newValue }, - true - ), - }) - } + searchParam: string + ): string | null => { + const facet = facets.find(({ key }) => key === searchParam) + return facet?.value ?? null } return useQuery(query, localizedVariables, { onSuccess: (data) => { if (data && term) { - findAndSetFacetValue( - selectedFacets, - 'fuzzy', - data.search.metadata?.fuzzy - ) - findAndSetFacetValue( - selectedFacets, - 'operator', - data.search.metadata?.logicalOperator - ) + const fuzzyFacetValue = findFacetValue(selectedFacets, 'fuzzy') + const operatorFacetValue = findFacetValue(selectedFacets, 'operator') + + if (!fuzzyFacetValue && !operatorFacetValue) { + setState({ + ...state, + selectedFacets: [ + ...selectedFacets, + { key: 'fuzzy', value: data.search.metadata?.fuzzy }, + { key: 'operator', value: data.search.metadata?.logicalOperator }, + ], + }) + } sendAnalyticsEvent({ name: 'intelligent_search_query',