import React, { useState, useEffect } from 'react'; const products = [ { id: 1, name: "Martabak Coklat ", price: 10000, img: "https://6a009e0ae3ddafb3f4a07e89.imgix.net/2/martabak%20coklat.jpeg?auto=format&fit=fill&w=256" }, { id: 2, name: "Martabak Kacang", price: 10000, img: "https://6a009e0ae3ddafb3f4a07e89.imgix.net/4/martabak%20kacang.jpeg?auto=format&fit=fill&w=256" }, { id: 3, name: "Martabak Keju", price: 10000, img: "https://6a009e0ae3ddafb3f4a07e89.imgix.net/1/martabak%20keju.jfif?auto=format&fit=fill&w=384" }, ]; const JAM_BUKA = 16; const JAM_TUTUP = 22; export default function App() { const [cart, setCart] = useState([]); const [isCartOpen, setIsCartOpen] = useState(false); const [isOpen, setIsOpen] = useState(true); useEffect(() => { const checkStatus = () => { const now = new Date(); const jamSekarang = now.getHours(); setIsOpen(jamSekarang >= JAM_BUKA && jamSekarang < JAM_TUTUP); }; checkStatus(); const interval = setInterval(checkStatus, 40000); return () => clearInterval(interval); }, []); const addToCart = (product) => { if(!isOpen) return; setCart((prev) => { const exist = prev.find(x => x.id === product.id); if (exist) return prev.map(x => x.id === product.id ? {...x, qty: x.qty + 1} : x); return [...prev, {...product, qty: 1}]; }); }; const updateQty = (id, delta) => { setCart(prev => prev.map(item => item.id === id ? { ...item, qty: Math.max(0, item.qty + delta) } : item ).filter(item => item.qty > 0)); }; const totalItems = cart.reduce((sum, item) => sum + item.qty, 0); const totalHarga = cart.reduce((sum, item) => sum + item.price * item.qty, 0); const handleCheckout = () => { const phone = "6281220213200"; let msg = "*PESANAN BARU*\n----------\n"; cart.forEach(item => msg += `• ${item.name} (${item.qty}x)\n`); msg += `----------\n*Total: Rp ${totalHarga.toLocaleString('id-ID')}*`; window.open(`https://wa.me/${phone}?text=${encodeURIComponent(msg)}`, '_blank'); }; return (
{/* HEADER ESTETIK - CENTERED */}
{/* Ikon Keranjang di Pojok Kanan Atas */} {/* Nama Toko Gaya Serif Estetik */}

MARTABAK Manis ARNESA

{/* Status Toko dengan Garis Dekoratif */}

{isOpen ? 'Open Order' : 'Closed'}

EST. 2026 • PREMIUM MARTABAK

{!isOpen && (

Gallery is currently closed.
Re-opening at {JAM_BUKA}:00 AM

)} {/* KATALOG */}
{products.map((product) => (
{isOpen && ( )}

{product.name}

IDR {product.price.toLocaleString('id-ID')}

))}
{/* MODAL KERANJANG */} {isCartOpen && (

Your Selection

{cart.length === 0 ? (

Empty gallery...

) : ( cart.map(item => (

{item.name}

IDR {(item.price * item.qty).toLocaleString('id-ID')}

{item.qty}
)) )}
Subtotal IDR {totalHarga.toLocaleString('id-ID')}
)} {/* FLOATING BUTTON */} {!isCartOpen && totalItems > 0 && (
)}
); }