summaryrefslogtreecommitdiff
path: root/src/lib/product/components/ProductSearch.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/product/components/ProductSearch.jsx')
-rw-r--r--src/lib/product/components/ProductSearch.jsx54
1 files changed, 51 insertions, 3 deletions
diff --git a/src/lib/product/components/ProductSearch.jsx b/src/lib/product/components/ProductSearch.jsx
index edc98197..fd75d587 100644
--- a/src/lib/product/components/ProductSearch.jsx
+++ b/src/lib/product/components/ProductSearch.jsx
@@ -15,6 +15,8 @@ import { useRouter } from 'next/router'
import searchSpellApi from '@/core/api/searchSpellApi'
import Link from '@/core/components/elements/Link/Link'
import whatsappUrl from '@/core/utils/whatsappUrl'
+import { Image } from '@chakra-ui/react'
+import odooApi from '@/core/api/odooApi'
const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
const router = useRouter()
@@ -25,6 +27,8 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
const { productSearch } = useProductSearch({ query: { ...query, q, limit } })
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]
@@ -71,7 +75,9 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
) {
const brand = productSearch.data?.facetCounts?.facetFields?.manufactureName[i]
const qty = productSearch.data?.facetCounts?.facetFields?.manufactureName[i + 1]
- brands.push({ brand, qty })
+ if (qty > 0) {
+ brands.push({ brand, qty })
+ }
}
/*const brandsList = productSearch.data?.facetCounts?.facetFields?.manufactureName?.filter(
(value, index) => {
@@ -83,13 +89,22 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
}
)*/
- const categories = productSearch.data?.facetCounts?.facetFields?.categoryName?.filter(
+ const categories = []
+ for (let i = 0; i < productSearch.data?.facetCounts?.facetFields?.categoryName.length; i += 2) {
+ const name = productSearch.data?.facetCounts?.facetFields?.categoryName[i]
+ const qty = productSearch.data?.facetCounts?.facetFields?.categoryName[i + 1]
+ if (qty > 0) {
+ categories.push({ name, qty })
+ }
+ }
+
+ /*const categories = productSearch.data?.facetCounts?.facetFields?.categoryName?.filter(
(value, index) => {
if (index % 2 === 0) {
return true
}
}
- )
+ )*/
const orderOptions = [
{ value: 'price-asc', label: 'Harga Terendah' },
@@ -117,6 +132,20 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
params = toQuery(params)
router.push(`${prefixUrl}?${params}`)
}
+ const getBanner = async () => {
+ if (router.pathname.includes('search')) {
+ const getBannerHeader = await odooApi('GET', '/api/v1/banner?type=promotion-header')
+ const getBannerFooter = await odooApi('GET', '/api/v1/banner?type=promotion-footer')
+ var randomIndex = Math.floor(Math.random() * getBannerHeader.length)
+ var randomIndexFooter = Math.floor(Math.random() * getBannerFooter.length)
+ setBannerPromotionHeader(getBannerHeader[randomIndex])
+ setBannerPromotionFooter(getBannerFooter[randomIndexFooter])
+ }
+ }
+
+ useEffect(() => {
+ getBanner()
+ }, [])
useEffect(() => {
setProducts(productSearch.data?.response?.products)
@@ -230,6 +259,16 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
/>
</div>
<div className='w-9/12 pl-6'>
+ {bannerPromotionHeader && bannerPromotionHeader?.image && (
+ <div className='mb-3'>
+ <Image
+ src={bannerPromotionHeader?.image}
+ alt=''
+ className='object-cover object-center h-full mx-auto'
+ />
+ </div>
+ )}
+
<h1 className='text-2xl mb-2 font-semibold'>Hasil Pencarian</h1>
<div className='flex justify-between items-center mb-2'>
<div className='mb-2 leading-6 text-gray_r-11'>
@@ -332,6 +371,15 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
className='!justify-end'
/>
</div>
+ {bannerPromotionFooter && bannerPromotionFooter?.image && (
+ <div className='mb-3'>
+ <Image
+ src={bannerPromotionFooter?.image}
+ alt=''
+ className='object-cover object-center h-full mx-auto'
+ />
+ </div>
+ )}
</div>
</div>
</DesktopView>