summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-05-17 15:49:50 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-05-17 15:49:50 +0700
commit6d57dbfd4e27eacfd1604b8d8326ee75326c0dd5 (patch)
treef593c4a7d8e78798863ea366dfbeff819e905e7c /src
parent2cfbc8dee4da9df302bed3d5166b718aae956a1f (diff)
fix search product not found
Diffstat (limited to 'src')
-rw-r--r--src/lib/checkout/components/Checkout.jsx12
-rw-r--r--src/lib/product/components/ProductSearch.jsx29
-rw-r--r--src/lib/product/hooks/useProductSearch.js4
-rw-r--r--src/lib/quotation/components/Quotation.jsx4
4 files changed, 28 insertions, 21 deletions
diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx
index 40f5d8e5..088b641b 100644
--- a/src/lib/checkout/components/Checkout.jsx
+++ b/src/lib/checkout/components/Checkout.jsx
@@ -340,7 +340,7 @@ const Checkout = () => {
{/* <p className='text-caption-2 text-gray_r-10 mb-2'>*) Belum termasuk biaya pengiriman</p> */}
<p className='text-caption-2 text-gray_r-10 leading-5'>
Dengan melakukan pembelian melalui website Indoteknik, saya menyetujui{' '}
- <Link href='/' className='inline font-normal'>
+ <Link href='/syarat-ketentuan' className='inline font-normal'>
Syarat & Ketentuan
</Link>{' '}
yang berlaku
@@ -564,7 +564,7 @@ const Checkout = () => {
</div>
<p className='text-caption-2 text-gray_r-11 leading-5'>
Dengan melakukan pembelian melalui website Indoteknik, saya menyetujui{' '}
- <Link href='/' className='inline font-normal'>
+ <Link href='/syarat-ketentuan' className='inline font-normal'>
Syarat & Ketentuan
</Link>{' '}
yang berlaku
@@ -755,9 +755,11 @@ function formatDate(date) {
function calculateEstimatedArrival(duration) {
if (duration) {
- const estimationDate = duration.split('-')
- const from = addDays(new Date(), parseInt(estimationDate[0]) + 3)
- const to = addDays(new Date(), parseInt(estimationDate[1]) + 3)
+ let estimationDate = duration.split('-')
+ estimationDate[0] = parseInt(estimationDate[0])
+ estimationDate[1] = parseInt(estimationDate[1])
+ const from = addDays(new Date(), estimationDate[0] + 3)
+ const to = addDays(new Date(), estimationDate[1] + 3)
let etdText = `*Estimasi tiba ${formatDate(from)}`
diff --git a/src/lib/product/components/ProductSearch.jsx b/src/lib/product/components/ProductSearch.jsx
index 30722c82..ae9618d2 100644
--- a/src/lib/product/components/ProductSearch.jsx
+++ b/src/lib/product/components/ProductSearch.jsx
@@ -19,8 +19,9 @@ import whatsappUrl from '@/core/utils/whatsappUrl'
const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
const router = useRouter()
const { page = 1 } = query
+ const [q, setQ] = useState(query?.q || '*')
if (defaultBrand) query.brand = defaultBrand.toLowerCase()
- const { productSearch } = useProductSearch({ query })
+ const { productSearch } = useProductSearch({ query: { ...query, q } })
const [products, setProducts] = useState(null)
const [spellings, setSpellings] = useState(null)
const popup = useActive()
@@ -33,7 +34,7 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
const productFound = productSearch.data?.response.numFound
useEffect(() => {
- if (productFound == 0 && query.q) {
+ if (productFound == 0 && query.q && !spellings) {
searchSpellApi({ query: query.q }).then((response) => {
const oddIndexSuggestions = response.data.spellcheck.suggestions.filter(
(_, index) => index % 2 === 1
@@ -51,10 +52,12 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
return acc
}, [])
+ setQ(dataSpellings[0])
+
setSpellings(dataSpellings)
})
}
- }, [productFound, query])
+ }, [productFound, query, spellings])
const brands = productSearch.data?.facetCounts?.facetFields?.manufactureName?.filter(
(value, index) => {
@@ -89,10 +92,8 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
}
useEffect(() => {
- if (!products) {
- setProducts(productSearch.data?.response?.products)
- }
- }, [query, products, productSearch])
+ setProducts(productSearch.data?.response?.products)
+ }, [productSearch])
const SpellingComponent = useMemo(() => {
return (
@@ -116,7 +117,7 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
<h1 className='mb-2 font-semibold text-h-sm'>Produk</h1>
<div className='mb-2 leading-6 text-gray_r-11'>
- {productFound > 0 ? (
+ {!spellings ? (
<>
Menampilkan&nbsp;
{pageCount > 1 ? (
@@ -186,7 +187,7 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
<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'>
- {productFound > 0 ? (
+ {!spellings ? (
<>
Menampilkan&nbsp;
{pageCount > 1 ? (
@@ -248,9 +249,13 @@ const ProductSearch = ({ query, prefixUrl, defaultBrand = null }) => {
<span>
Barang yang anda cari tidak ada?{' '}
<a
- href={query?.q ? whatsappUrl('productSearch', {
- name: query.q
- }) : whatsappUrl()}
+ href={
+ query?.q
+ ? whatsappUrl('productSearch', {
+ name: query.q
+ })
+ : whatsappUrl()
+ }
className='text-danger-500'
>
Hubungi Kami
diff --git a/src/lib/product/hooks/useProductSearch.js b/src/lib/product/hooks/useProductSearch.js
index 0396caec..4c9272f1 100644
--- a/src/lib/product/hooks/useProductSearch.js
+++ b/src/lib/product/hooks/useProductSearch.js
@@ -5,10 +5,10 @@ import _ from 'lodash-contrib'
const useProductSearch = ({ query }) => {
const queryString = _.toQuery(query)
const fetchProductSearch = async () => await productSearchApi({ query: queryString })
- const { data, isLoading } = useQuery(`productSearch-${queryString}`, fetchProductSearch)
+ const productSearch = useQuery(`productSearch-${queryString}`, fetchProductSearch)
return {
- productSearch: { data, isLoading }
+ productSearch
}
}
diff --git a/src/lib/quotation/components/Quotation.jsx b/src/lib/quotation/components/Quotation.jsx
index 6ff40327..9ffc2fbb 100644
--- a/src/lib/quotation/components/Quotation.jsx
+++ b/src/lib/quotation/components/Quotation.jsx
@@ -143,7 +143,7 @@ const Quotation = () => {
<p className='text-caption-2 text-gray_r-10 mb-2'>*) Belum termasuk biaya pengiriman</p>
<p className='text-caption-2 text-gray_r-10 leading-5'>
Dengan melakukan pembelian melalui website Indoteknik, saya menyetujui{' '}
- <Link href='/' className='inline font-normal'>
+ <Link href='/syarat-ketentuan' className='inline font-normal'>
Syarat & Ketentuan
</Link>{' '}
yang berlaku
@@ -270,7 +270,7 @@ const Quotation = () => {
</p>
<p className='text-caption-2 text-gray_r-11 leading-5'>
Dengan melakukan pembelian melalui website Indoteknik, saya menyetujui{' '}
- <Link href='/' className='inline font-normal'>
+ <Link href='/syarat-ketentuan' className='inline font-normal'>
Syarat & Ketentuan
</Link>{' '}
yang berlaku