From db5d67db219a6672848115b556fd572cdba7c60c Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 2 May 2023 15:14:18 +0700 Subject: fix product --- src/pages/shop/product/[slug].jsx | 45 ++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 22 deletions(-) (limited to 'src/pages') 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