summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/product/components/ProductSearch.jsx9
-rw-r--r--src/lib/product/hooks/useProductSearch.js4
-rw-r--r--src/pages/api/shop/search.js2
3 files changed, 10 insertions, 5 deletions
diff --git a/src/lib/product/components/ProductSearch.jsx b/src/lib/product/components/ProductSearch.jsx
index bc69c9dd..af3d881f 100644
--- a/src/lib/product/components/ProductSearch.jsx
+++ b/src/lib/product/components/ProductSearch.jsx
@@ -26,18 +26,22 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
const [limit, setLimit] = useState(query?.limit || 30)
const [orderBy, setOrderBy] = useState(router.query?.orderBy || 'popular')
if (defaultBrand) query.brand = defaultBrand.toLowerCase()
- const { productSearch } = useProductSearch({ query: { ...query, q, limit, orderBy } })
+ const { productSearch } = useProductSearch({ query: { ...query, q, limit, orderBy } , operation : router?.pathname?.includes('brands') ? 'OR' : 'AND' })
const [products, setProducts] = useState(null)
const [spellings, setSpellings] = useState(null)
const [bannerPromotionHeader, setBannerPromotionHeader] = useState(null)
const [bannerPromotionFooter, setBannerPromotionFooter] = useState(null)
const popup = useActive()
const numRows = [30, 50, 80, 100]
- const [brandValues, setBrand] = useState(query?.brand?.split(',') || [])
+ const [brandValues, setBrand] = useState(
+ !router.pathname.includes('brands') ? query.brand ? query.brand.split(',') : [] : []
+ )
const [categoryValues, setCategory] = useState(query?.category?.split(',') || [])
const [priceFrom, setPriceFrom] = useState(query?.priceFrom || null)
const [priceTo, setPriceTo] = useState(query?.priceTo || null)
+ console.log('ini roiute', router.pathname.includes('brands'))
+
const pageCount = Math.ceil(productSearch.data?.response.numFound / limit)
const productStart = productSearch.data?.responseHeader.params.start
const productRows = limit
@@ -466,6 +470,7 @@ const FilterChoicesComponent = ({
<TagCloseButton onClick={() => handleDeleteFilter('brands', value)} />
</Tag>
))}
+
{categoryValues.map((value, index) => (
<Tag size='lg' key={index} borderRadius='lg' variant='outline' colorScheme='gray'>
<TagLabel>{value}</TagLabel>
diff --git a/src/lib/product/hooks/useProductSearch.js b/src/lib/product/hooks/useProductSearch.js
index 4c9272f1..f3b7530a 100644
--- a/src/lib/product/hooks/useProductSearch.js
+++ b/src/lib/product/hooks/useProductSearch.js
@@ -2,9 +2,9 @@ import { useQuery } from 'react-query'
import productSearchApi from '../api/productSearchApi'
import _ from 'lodash-contrib'
-const useProductSearch = ({ query }) => {
+const useProductSearch = ({ query, operation }) => {
const queryString = _.toQuery(query)
- const fetchProductSearch = async () => await productSearchApi({ query: queryString })
+ const fetchProductSearch = async () => await productSearchApi({ query: queryString , operation : operation})
const productSearch = useQuery(`productSearch-${queryString}`, fetchProductSearch)
return {
diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js
index b4d67c5d..883bb8df 100644
--- a/src/pages/api/shop/search.js
+++ b/src/pages/api/shop/search.js
@@ -67,7 +67,7 @@ export default async function handler(req, res) {
}
if (brand) parameter.push(`fq=manufacture_name:${brand.replace(/,/g, ' OR ')}`)
- if (category) parameter.push(`fq=category_name:${category}`)
+ if (category) parameter.push(`fq=category_name:${category.replace(/,/g, ' OR ')}`)
if (stock) parameter.push(`fq=stock_total_f:{1 TO *}`)
// Single fq in url params