diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/components/elements/Navbar/NavbarDesktop.jsx | 2 | ||||
| -rw-r--r-- | src/core/components/elements/Navbar/Search.jsx | 2 | ||||
| -rw-r--r-- | src/lib/product/components/Product/ProductDesktop.jsx | 5 | ||||
| -rw-r--r-- | src/pages/shop/product/[slug].jsx | 45 |
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> )} |
