/* ============================================================ GlowMerald — Cart, Checkout (3-step), Confirmation + About/Contact ============================================================ */ const { useState:useStateC, useEffect:useEffectC } = React; const PROMO = { code:'GLOW10', pct:0.1, label:'Diskon 10%' }; /* ---------- CART ---------- */ function CartPage(){ const { cart, updateQty, removeFromCart, priceOf, labelOf, navigate, cartTotal, toast } = useApp(); const [promo,setPromo] = useStateC(''); const [applied,setApplied] = useStateC(null); const applyPromo=()=>{ if(promo.trim().toUpperCase()===PROMO.code){ setApplied(PROMO); toast('Promo diterapkan — '+PROMO.label,'spark'); } else { setApplied(null); toast('Kode promo tidak valid'); } }; const discount = applied ? Math.round(cartTotal*applied.pct) : 0; if(cart.length===0){ return (

Keranjang masih kosong

Mulai ritualmu dengan koleksi GlowMerald.

); } return (
Keranjang

Keranjang Belanja

{cart.map(line=>{ const it = findItem(line.id); if(!it) return null; const price = priceOf(line.id,line.vi); return (
navigate('product',line.id)}>
{it.name}
{labelOf(line.id,line.vi)}
{line.qty}
{formatRp(price*line.qty)}
); })} navigate('shop')} style={{ marginTop:8 }}> Lanjut Belanja
); } /* ---------- CHECKOUT ---------- */ const STEPS = ['Pengiriman','Pembayaran','Konfirmasi']; function CheckoutPage(){ const { cart, cartTotal, priceOf, labelOf, navigate, clearCart, toast } = useApp(); const [step,setStep] = useStateC(0); const [ship,setShip] = useStateC('jne'); const [pay,setPay] = useStateC('BCA'); const [addr,setAddr] = useStateC({ name:USER.name, phone:USER.phone, detail:ADDRESSES[0].detail, city:ADDRESSES[0].city, prov:ADDRESSES[0].prov, post:ADDRESSES[0].post }); useEffectC(()=>{ if(cart.length===0) navigate('cart'); },[]); const shipObj = SHIPPING.find(s=>s.id===ship); const shipCost = shipObj?shipObj.price:0; const total = cartTotal + shipCost; const next=()=>{ if(step<2) setStep(step+1); window.scrollTo({top:0}); }; const back=()=>{ if(step>0) setStep(step-1); else navigate('cart'); }; const placeOrder=()=>{ const order = { number:'GM-2406-'+Math.floor(10000+Math.random()*89999), date:new Date().toLocaleDateString('id-ID',{day:'numeric',month:'long',year:'numeric'}), items: cart.map(l=>{ const it=findItem(l.id); return { name:it.name, label:labelOf(l.id,l.vi), qty:l.qty, price:priceOf(l.id,l.vi), visual:it.visual }; }), subtotal:cartTotal, shipCost, total, ship:shipObj, pay, addr, eta:shipObj.eta, }; try{ localStorage.setItem('gm_last_order', JSON.stringify(order)); }catch(e){} clearCart(); toast('Pesanan berhasil dibuat','check'); navigate('confirm'); }; return (
Checkout

Selesaikan Pesanan

{STEPS.map((s,i)=>(
{i:i+1} {s} {i}
))}
{step===0 && (

Alamat Pengiriman

Metode Pengiriman

{SHIPPING.map(s=>( ))}
)} {step===1 && (

Metode Pembayaran

{PAYMENTS.map(g=>(
{g.group}
{g.options.map(o=>( ))}
))}
)} {step===2 && (

Tinjau Pesanan

Dikirim ke

{addr.name} · {addr.phone}
{addr.detail}, {addr.city}, {addr.prov} {addr.post}

Pengiriman

{shipObj.name} · estimasi {shipObj.eta}

Pembayaran

{pay}

{cart.map(l=>{ const it=findItem(l.id); return (
{it.name}
{labelOf(l.id,l.vi)} · x{l.qty}
{formatRp(priceOf(l.id,l.vi)*l.qty)}
); })}
)}
{step<2 ? : }
); } /* ---------- CONFIRMATION ---------- */ function ConfirmPage(){ const { navigate } = useApp(); let order=null; try{ order = JSON.parse(localStorage.getItem('gm_last_order')); }catch(e){} if(!order){ return (

Tidak ada pesanan

); } return (
Terima Kasih

Pesanan diterima

Nomor pesanan {order.number}

Estimasi Tiba
{order.ship.name} · {order.eta}
Diproses
{order.items.map((it,i)=>(
{it.name}
{it.label} · x{it.qty}
{formatRp(it.price*it.qty)}
))}
Subtotal{formatRp(order.subtotal)}
Pengiriman{formatRp(order.shipCost)}
Total{formatRp(order.total)}
Dibayar via {order.pay} · Dikirim ke {order.addr.city}
); } /* ---------- ABOUT / CONTACT ---------- */ function AboutPage(){ const { navigate } = useApp(); return (
Brand Story

Terinspirasi dari Emerald

Glow from Within, Confidence Revealed.

GlowMerald lahir di bawah naungan PT Global Makmur Sempurna sebagai representasi kecantikan modern yang berpadu dengan sentuhan alami. Terinspirasi dari kata Emerald — batu permata hijau yang melambangkan ketenangan, kemurnian, dan keseimbangan hidup.

Filosofi kami sederhana namun kuat: setiap individu berhak bersinar dengan caranya sendiri. Kecantikan sejati bukan tentang kesempurnaan, melainkan tentang kulit yang sehat, terawat, dan memancarkan cahaya alami dari dalam diri.

{[['Premium Natural','Formula berkualitas dari bahan alami pilihan.'],['Accessible Luxury','Pengalaman mewah yang dapat dinikmati semua kalangan.'],['Confidence First','Mendorong percaya diri dari dalam, bukan sekadar tampilan.']].map(([t,d],i)=>(

{t}

{d}

))}
); } function ContactPage(){ return (
Contact

Hubungi Kami

Kirim Pesan

PT Global Makmur Sempurna

Cengkareng Business City, Lot 12 Boutique 27, Jl. Atang Sanjaya No 21, Benda — Tangerang.

Emailofficial@glowmerald.id
Websiteglowmerald.id
Instagram@glowmeraldofficial
Telepon+62 811 1008 8887
); } Object.assign(window, { CartPage, CheckoutPage, ConfirmPage, AboutPage, ContactPage });