From db5d67db219a6672848115b556fd572cdba7c60c Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 2 May 2023 15:14:18 +0700 Subject: fix product --- .../components/elements/Navbar/NavbarDesktop.jsx | 2 +- src/core/components/elements/Navbar/Search.jsx | 2 +- .../product/components/Product/ProductDesktop.jsx | 5 +-- src/pages/shop/product/[slug].jsx | 45 +++++++++++----------- 4 files changed, 27 insertions(+), 27 deletions(-) (limited to 'src') 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 = () => {
- + Tentang Indoteknik.com
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 }) => {
-
+
Produk Serupa
-
+
{productSimilarInBrand && productSimilarInBrand?.map((product) => (
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 ( @@ -51,7 +52,7 @@ export default function ProductDetail() { ]} /> {!product && ( -
+
)} -- cgit v1.2.3