import { useEffect, useState } from 'react'
import useProductSearch from '../hooks/useProductSearch'
import ProductCard from './ProductCard'
import Pagination from '@/core/components/elements/Pagination/Pagination'
import { toQuery } from 'lodash-contrib'
import _ from 'lodash'
import ProductSearchSkeleton from './Skeleton/ProductSearchSkeleton'
import ProductFilter from './ProductFilter'
import useActive from '@/core/hooks/useActive'
const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
const { page = 1 } = query
if (defaultBrand) query.brand = defaultBrand.toLowerCase()
const { productSearch } = useProductSearch({ query })
const [products, setProducts] = useState(null)
const popup = useActive()
const pageCount = Math.ceil(
productSearch.data?.response.numFound / productSearch.data?.responseHeader.params.rows
)
const productStart = productSearch.data?.responseHeader.params.start
const productRows = productSearch.data?.responseHeader.params.rows
const productFound = productSearch.data?.response.numFound
const brands = productSearch.data?.facetCounts?.facetFields?.brandStr?.filter((value, index) => {
if (index % 2 === 0) {
return true
}
})
const categories = productSearch.data?.facetCounts?.facetFields?.categoryNameStr?.filter(
(value, index) => {
if (index % 2 === 0) {
return true
}
}
)
useEffect(() => {
if (!products) {
setProducts(productSearch.data?.response?.products)
}
}, [query, products, productSearch])
if (productSearch.isLoading) {
return