summaryrefslogtreecommitdiff
path: root/src/lib/product/components/ProductSearch.jsx
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-02-22 11:03:34 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-02-22 11:03:34 +0700
commitf66b12fd1d0b83af0d7230d7b1565fbe00afbe3c (patch)
tree253dcf854a3c92e09ca846e86a09e5b4c5d16be1 /src/lib/product/components/ProductSearch.jsx
parent3c559031623649a67825ff47f34512f0eb946861 (diff)
prettier
Diffstat (limited to 'src/lib/product/components/ProductSearch.jsx')
-rw-r--r--src/lib/product/components/ProductSearch.jsx86
1 files changed, 49 insertions, 37 deletions
diff --git a/src/lib/product/components/ProductSearch.jsx b/src/lib/product/components/ProductSearch.jsx
index 14df9864..25d0278f 100644
--- a/src/lib/product/components/ProductSearch.jsx
+++ b/src/lib/product/components/ProductSearch.jsx
@@ -1,21 +1,23 @@
-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"
+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 [products, setProducts] = useState(null)
const popup = useActive()
- const pageCount = Math.ceil(productSearch.data?.response.numFound / productSearch.data?.responseHeader.params.rows)
+ 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
@@ -25,11 +27,13 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
return true
}
})
- const categories = productSearch.data?.facetCounts?.facetFields?.categoryNameStr?.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) {
@@ -40,47 +44,55 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
if (productSearch.isLoading) {
return <ProductSearchSkeleton />
}
-
+
return (
- <div className="p-4">
- <h1 className="mb-2 font-semibold text-h-sm">Produk</h1>
-
- <div className="mb-2 leading-6 text-gray_r-11">
- { productFound > 0 ? (
+ <div className='p-4'>
+ <h1 className='mb-2 font-semibold text-h-sm'>Produk</h1>
+
+ <div className='mb-2 leading-6 text-gray_r-11'>
+ {productFound > 0 ? (
<>
Menampilkan&nbsp;
{pageCount > 1 ? (
<>
- {productStart + 1}-{
- (productStart + productRows) > productFound ? productFound : productStart + productRows
- }
+ {productStart + 1}-
+ {productStart + productRows > productFound
+ ? productFound
+ : productStart + productRows}
&nbsp;dari&nbsp;
</>
- ) : ''}
- { productFound }
- &nbsp;produk { query.q && (<>untuk pencarian <span className="font-semibold">{ query.q }</span></>) }
+ ) : (
+ ''
+ )}
+ {productFound}
+ &nbsp;produk{' '}
+ {query.q && (
+ <>
+ untuk pencarian <span className='font-semibold'>{query.q}</span>
+ </>
+ )}
</>
- ) : 'Mungkin yang anda cari'}
+ ) : (
+ 'Mungkin yang anda cari'
+ )}
</div>
- <button className="btn-light mb-6 py-2 px-5" onClick={popup.activate}>
+ <button className='btn-light mb-6 py-2 px-5' onClick={popup.activate}>
Filter
</button>
- <div className="grid grid-cols-2 gap-3">
- { products && products.map((product) => (
- <ProductCard product={product} key={product.id} />
- )) }
+ <div className='grid grid-cols-2 gap-3'>
+ {products && products.map((product) => <ProductCard product={product} key={product.id} />)}
</div>
<Pagination
pageCount={pageCount}
- currentPage={parseInt(page)}
+ currentPage={parseInt(page)}
url={`${prefixUrl}?${toQuery(_.omit(query, ['page']))}`}
- className="mt-6 mb-2"
+ className='mt-6 mb-2'
/>
- <ProductFilter
+ <ProductFilter
active={popup.active}
close={popup.deactivate}
brands={brands || []}
@@ -92,4 +104,4 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
)
}
-export default ProductSearch \ No newline at end of file
+export default ProductSearch