From f577a23d10ae0a8b2ea348d893a0a491c15c9738 Mon Sep 17 00:00:00 2001 From: Vassshhh Date: Tue, 12 Aug 2025 02:31:50 +0700 Subject: [PATCH] ok --- src/components/ProductDetail.module.css | 8 ++---- src/components/ProductDetailPage.js | 36 ++++++++----------------- 2 files changed, 13 insertions(+), 31 deletions(-) diff --git a/src/components/ProductDetail.module.css b/src/components/ProductDetail.module.css index ca13e44..4957999 100644 --- a/src/components/ProductDetail.module.css +++ b/src/components/ProductDetail.module.css @@ -10,7 +10,7 @@ } .image { - width: 40vw; + width: 100%; height: 260px; background-color: #e2e8f0; border-radius: 0.75rem; @@ -22,7 +22,7 @@ margin-bottom: 1.5rem; background-repeat: no-repeat; - background-size: cover; + background-size: contain; background-position: center; } @@ -94,10 +94,6 @@ .buttonGroup { gap: 0.5rem; } - -.image { - width: 63vw; -} } .childSelector { diff --git a/src/components/ProductDetailPage.js b/src/components/ProductDetailPage.js index e797785..68724b0 100644 --- a/src/components/ProductDetailPage.js +++ b/src/components/ProductDetailPage.js @@ -12,22 +12,6 @@ const ProductDetail = ({ subscriptions, product, requestLogin, setShowedModal }) const [showNamingInput, setShowNamingInput] = useState(false); const [customName, setCustomName] = useState(''); - const parseJWT = (token) => { - try { - const base64Url = token.split('.')[1]; - const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); - const jsonPayload = decodeURIComponent( - atob(base64) - .split('') - .map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)) - .join('') - ); - return JSON.parse(jsonPayload); - } catch { - return null; - } - }; - const onCheckout = () => { const tokenCookie = document.cookie.split('; ').find(row => row.startsWith('token=')); const token = tokenCookie ? tokenCookie.split('=')[1] : ''; @@ -85,8 +69,8 @@ const ProductDetail = ({ subscriptions, product, requestLogin, setShowedModal }) } } - setShowNamingInput(true); - return; + setShowNamingInput(true); + return; } // No children, no matching subscription @@ -170,11 +154,13 @@ const ProductDetail = ({ subscriptions, product, requestLogin, setShowedModal }) className={`${styles.button} ${styles.checkoutButton}`} onClick={() => { const token = (document.cookie.split('; ').find(row => row.startsWith('token=')) || '').split('=')[1] || ''; - const url = `https://${product.site_url}/dashboard/${product.name.split('%%%')[0]}?token=${token}`; + const url = product.end_date + ? `https://${product.site_url}/dashboard/${product.name.split('%%%')[0]}?token=${token}` + : `https://${product.site_url}`; window.location.href = url; }} > - KUNJUNGI + PELAJARI LEBIH LANJUT )} @@ -289,11 +275,11 @@ const ProductDetail = ({ subscriptions, product, requestLogin, setShowedModal }) onClick={() => { setShowNamingInput(false); - const hasMatchingSubscription = Array.isArray(subscriptions) && - subscriptions.some(sub => - String(sub.product_id) === String(product.id) || String(sub.product_parent_id) === String(product.id) - ); - if(hasMatchingSubscription) setShowSubscriptionSelector(true); + const hasMatchingSubscription = Array.isArray(subscriptions) && + subscriptions.some(sub => + String(sub.product_id) === String(product.id) || String(sub.product_parent_id) === String(product.id) + ); + if (hasMatchingSubscription) setShowSubscriptionSelector(true); }} > Kembali