From 42fed2490fe537b46a717eafaf1b1e4a5e0a08c8 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 18 Apr 2023 17:05:25 +0700 Subject: price tier --- src/pages/shop/product/[slug].jsx | 53 ++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 20 deletions(-) (limited to 'src/pages/shop') diff --git a/src/pages/shop/product/[slug].jsx b/src/pages/shop/product/[slug].jsx index 84b848f0..230d1f87 100644 --- a/src/pages/shop/product/[slug].jsx +++ b/src/pages/shop/product/[slug].jsx @@ -1,48 +1,61 @@ import Seo from '@/core/components/Seo' +import LogoSpinner from '@/core/components/elements/Spinner/LogoSpinner' import { getIdFromSlug } from '@/core/utils/slug' import productApi from '@/lib/product/api/productApi' import dynamic from 'next/dynamic' import { useRouter } from 'next/router' +import { useEffect, useState } from 'react' const BasicLayout = dynamic(() => import('@/core/components/layouts/BasicLayout')) const Product = dynamic(() => import('@/lib/product/components/Product/Product')) -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 = '' +export default function ProductDetail() { + const router = useRouter() + const [product, setProduct] = useState(null) + + useEffect(() => { + const { slug } = router.query + + 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) } - product.description = product.description.replace(regexHtmlTagsExceptP, ' ') - product.description = product.description.trim() - } - return { props: { product } } -} + if (slug) loadProduct() + }, [router]) -export default function ProductDetail({ product }) { - const router = useRouter() return ( - + {!product && ( +
+ +
+ )} + {product && }
) } -- cgit v1.2.3