async function updateCartIcon() { const cart = await getCarts(); const count = cart.length; const cartIcon = document.getElementById("cart-icon"); if (cartIcon) { cartIcon.innerHTML = ` Keranjang (${count}) `; } } document.addEventListener("DOMContentLoaded", async function () { setInterval(await updateCartIcon, 10000); }); async function promptQuantityAndAdd(productId) { checkUID("addToCart"); let [qtyStr, isCancel] = await prompt( "Masukkan jumlah produk yang ingin ditambahkan ke keranjang:", "number" ); console.log(qtyStr, isCancel); if (isCancel) { return; } if (!qtyStr) { alert("Jumlah tidak boleh kosong.", false); return; } let qty = parseInt(qtyStr); if (isNaN(qty) || qty <= 0) { alert("Masukkan jumlah produk yang valid.", false); return; } await addToCart(productId, qty); } async function addToCart(productId, quantity = 1) { checkUID("addToCart"); console.log(productId, quantity); const cart = await getCarts(); let userData = await getUserData(); for (let i = 0; i < quantity; i++) { cart.push(productId); } userData.cart = cart; localStorage.setItem("cart", JSON.stringify(cart)); await updateUserDataToGitHub(userData); await updateCartIcon(); alert( `Produk telah ditambahkan ke keranjang sebanyak ${quantity} item.`, false ); } function addToCartFromProduct(productId) { checkUID("addToCart"); const qtyInput = document.getElementById("quantity"); let quantity = parseInt(qtyInput.value); if (isNaN(quantity) || quantity <= 0) { alert("Masukkan jumlah produk yang valid.", false); return; } addToCart(productId, quantity); } async function loadCart() { do { const cart = await getCarts(); const params = new URLSearchParams(window.location.search); const message = params.get("message") || ""; if (message) alert(message, false); let cartCount = {}; cart.forEach((id) => { cartCount[id] = (cartCount[id] || 0) + 1; }); const cartItemsContainer = document.getElementById("cart-items"); cartItemsContainer.innerHTML = ""; let total = 0; if (Object.keys(cartCount).length === 0) { cartItemsContainer.innerHTML = "
Keranjang kosong.
"; } else { cartItemsContainer.innerHTML = `${message}`; let index = 1; for (let id in cartCount) { const product = products.find((p) => p.id === parseInt(id)); if (product) { const qty = cartCount[id]; const subtotal = product.price * qty; total += subtotal; cartItemsContainer.innerHTML += `${formatRupiah(product.price)} x