summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-05-02 15:14:18 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-05-02 15:14:18 +0700
commitdb5d67db219a6672848115b556fd572cdba7c60c (patch)
treef9eadd9e9e4c9181c9d596a38bb90525d8fcb204 /src
parent988badbf4dfd9bf493ff37fd9e5ac81ed34adb14 (diff)
fix product
Diffstat (limited to 'src')
-rw-r--r--src/core/components/elements/Navbar/NavbarDesktop.jsx2
-rw-r--r--src/core/components/elements/Navbar/Search.jsx2
-rw-r--r--src/lib/product/components/Product/ProductDesktop.jsx5
-rw-r--r--src/pages/shop/product/[slug].jsx45
4 files changed, 27 insertions, 27 deletions
diff --git a/src/core/components/elements/Navbar/NavbarDesktop.jsx b/src/core/components/elements/Navbar/NavbarDesktop.jsx
index ae4e09dd..aab43e26 100644
--- a/src/core/components/elements/Navbar/NavbarDesktop.jsx
+++ b/src/core/components/elements/Navbar/NavbarDesktop.jsx
@@ -42,7 +42,7 @@ const NavbarDesktop = () => {
<TopBanner />
<div className='py-3 bg-warning-400' id='desktop-nav-top'>
<div className='container mx-auto flex justify-between'>
- <Link href='/' className='!text-gray_r-12'>
+ <Link href='/about-us' className='!text-gray_r-12'>
Tentang Indoteknik.com
</Link>
<div className='flex gap-x-6'>
diff --git a/src/core/components/elements/Navbar/Search.jsx b/src/core/components/elements/Navbar/Search.jsx
index 54eecf84..77510773 100644
--- a/src/core/components/elements/Navbar/Search.jsx
+++ b/src/core/components/elements/Navbar/Search.jsx
@@ -13,7 +13,7 @@ const Search = () => {
const loadSuggestion = useCallback(() => {
if (query && document.activeElement == queryRef.current) {
searchSuggestApi({ query }).then((response) => {
- setSuggestions(response.data.suggestions)
+ setSuggestions(response.data?.suggestions || [])
})
} else {
setSuggestions([])
diff --git a/src/lib/product/components/Product/ProductDesktop.jsx b/src/lib/product/components/Product/ProductDesktop.jsx
index b1ec971b..9ff782ce 100644
--- a/src/lib/product/components/Product/ProductDesktop.jsx
+++ b/src/lib/product/components/Product/ProductDesktop.jsx
@@ -60,7 +60,6 @@ const ProductDesktop = ({ product, wishlist, toggleWishlist }) => {
selected: true
})
setAddCartAlert(true)
- // toast.success('Berhasil menambahkan ke keranjang')
}
const handleBuy = (variantId) => {
@@ -222,11 +221,11 @@ const ProductDesktop = ({ product, wishlist, toggleWishlist }) => {
</button>
</div>
- <div className='border border-gray_r-6 h-full overflow-auto mt-4'>
+ <div className='border border-gray_r-6 overflow-auto mt-4'>
<div className='font-medium text-center p-4 bg-gray_r-1 border-b border-gray_r-6 sticky top-0 z-10'>
Produk Serupa
</div>
- <div className='h-full divide-y divide-gray_r-6 max-h-40'>
+ <div className='h-full divide-y divide-gray_r-6 max-h-52'>
{productSimilarInBrand &&
productSimilarInBrand?.map((product) => (
<div className='py-2' key={product.id}>
diff --git a/src/pages/shop/product/[slug].jsx b/src/pages/shop/product/[slug].jsx
index 230d1f87..7ab0ef76 100644
--- a/src/pages/shop/product/[slug].jsx
+++ b/src/pages/shop/product/[slug].jsx
@@ -9,29 +9,30 @@ import { useEffect, useState } from 'react'
const BasicLayout = dynamic(() => import('@/core/components/layouts/BasicLayout'))
const Product = dynamic(() => import('@/lib/product/components/Product/Product'))
-export default function ProductDetail() {
- const router = useRouter()
- const [product, setProduct] = useState(null)
+export async function getServerSideProps(context) {
+ const { slug } = context.query
+
+ let product = await productApi({ id: getIdFromSlug(slug) })
+ if (product?.length == 1) {
+ product = product[0]
+ const regexHtmlTags = /(<([^>]+)>)/gi
+ const regexHtmlTagsExceptP = /<\/?(?!p\b)[^>]*>/g
+ if (product.description.replace(regexHtmlTags, ' ').trim() == '') {
+ product.description = ''
+ }
+ product.description = product.description.replace(regexHtmlTagsExceptP, ' ')
+ product.description = product.description.trim()
+ } else {
+ product = null
+ }
- useEffect(() => {
- const { slug } = router.query
+ return {
+ props: { product }
+ }
+}
- const loadProduct = async () => {
- let product = await productApi({ id: getIdFromSlug(slug) })
- if (product?.length == 1) {
- product = product[0]
- const regexHtmlTags = /(<([^>]+)>)/gi
- const regexHtmlTagsExceptP = /<\/?(?!p\b)[^>]*>/g
- if (product.description.replace(regexHtmlTags, ' ').trim() == '') {
- product.description = ''
- }
- product.description = product.description.replace(regexHtmlTagsExceptP, ' ')
- product.description = product.description.trim()
- }
- setProduct(product)
- }
- if (slug) loadProduct()
- }, [router])
+export default function ProductDetail({ product }) {
+ const router = useRouter()
return (
<BasicLayout>
@@ -51,7 +52,7 @@ export default function ProductDetail() {
]}
/>
{!product && (
- <div className="container mx-auto flex justify-center pt-10">
+ <div className='container mx-auto flex justify-center pt-10'>
<LogoSpinner width={36} height={36} />
</div>
)}