This commit is contained in:
Vassshhh
2025-08-05 19:19:04 +07:00
parent 7e83b442cc
commit 4d12884941
2 changed files with 31 additions and 28 deletions

View File

@@ -32,13 +32,6 @@ const Header = ({ username, scrollToProduct, scrollToCourse, setShowedModal, han
> >
{username ? 'MY PRODUCTS' : 'PRODUCTS'} {username ? 'MY PRODUCTS' : 'PRODUCTS'}
</a> </a>
<a
className={`${styles.navLink} ${hoveredNav === 4 ? styles.navLinkHover : ''}`}
onMouseEnter={() => setHoveredNav(4)}
onMouseLeave={() => setHoveredNav(null)}
>
USER
</a>
</nav> </nav>
{/* Burger Menu Button */} {/* Burger Menu Button */}
@@ -51,7 +44,7 @@ const Header = ({ username, scrollToProduct, scrollToCourse, setShowedModal, han
<div className={styles.mobileMenu}> <div className={styles.mobileMenu}>
{username ? ( {username ? (
<> <>
<div className={styles.username}>Halo, {username}</div> <div className={styles.username}>{username}</div>
<button className={styles.logoutButton} onClick={() => { <button className={styles.logoutButton} onClick={() => {
navigate('/products'); navigate('/products');
@@ -84,7 +77,7 @@ const Header = ({ username, scrollToProduct, scrollToCourse, setShowedModal, han
<div className={styles.authButtons}> <div className={styles.authButtons}>
{username && ( {username && (
<div className={styles.loggedInContainer}> <div className={styles.loggedInContainer}>
<span className={styles.username}>Halo, {username}</span> <span className={styles.username}>{username}</span>
<button className={styles.logoutButton} onClick={handleLogout}>Logout</button> <button className={styles.logoutButton} onClick={handleLogout}>Logout</button>
</div> </div>
)} )}

View File

@@ -66,14 +66,23 @@ const CoursePage = ({ subscriptions }) => {
}) })
.then(res => res.json()) .then(res => res.json())
.then(data => { .then(data => {
const enrichedData = Object.values(groupedSubs).map(group => { const enrichedData = Object.values(groupedSubs)
.filter(group => data.some(p => p.id === group.product_id)) // ✅ hanya produk yang ada di metadata
.map(group => {
const productData = data.find(p => p.id == group.product_id); const productData = data.find(p => p.id == group.product_id);
// Cek fallback image dari parent jika image kosong dan sub_product_of ada
let image = productData?.image || '';
if (!image && productData?.sub_product_of) {
const parent = data.find(p => p.id === productData.sub_product_of);
image = parent?.image || '';
}
return { return {
id: group.product_id, id: group.product_id,
name: group.product_name, name: group.product_name,
type: productData?.type || 'product', type: productData?.type || 'product',
image: productData?.image || '', image: image,
description: productData?.description || '', description: productData?.description || '',
price: productData?.price || 0, price: productData?.price || 0,
currency: productData?.currency || 'IDR', currency: productData?.currency || 'IDR',
@@ -81,11 +90,12 @@ const CoursePage = ({ subscriptions }) => {
sub_product_of: productData?.sub_product_of || null, sub_product_of: productData?.sub_product_of || null,
is_visible: productData?.is_visible ?? true, is_visible: productData?.is_visible ?? true,
unit_type: productData?.unit_type || group.unit_type, unit_type: productData?.unit_type || group.unit_type,
quantity: group.quantity, // Bisa diganti dengan jumlah token kalau diperlukan quantity: group.quantity,
end_date: group.end_date, end_date: group.end_date,
children: [] // Kosong, bisa diisi jika ada sub-product children: []
}; };
}); });
console.log(enrichedData) console.log(enrichedData)
setProducts(enrichedData); setProducts(enrichedData);
console.log('Enriched Data:', enrichedData); console.log('Enriched Data:', enrichedData);