Gaya Hidup Premium.
Kurasi produk terbaik untuk melengkapi hari-hari Anda.
Wishlist Saya
{wishlist.length === 0 ?Kosong.
: (import React, { useState, useMemo } from 'react'; import { ShoppingCart, Trash2, Plus, Minus, X, Search, Heart, Star, Send, Instagram, Facebook, Twitter, Phone, Mail, MapPin, Zap } from 'lucide-react'; const PRODUCTS = [ { id: 1, name: "Premium Headphones", price: 2500000, category: "Elektronik", stock: 12, rating: 4.8, image: "https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=800&q=80", desc: "Suara studio, ANC, baterai 40 jam." }, { id: 2, name: "RGB Keyboard", price: 1200000, category: "Elektronik", stock: 5, rating: 4.9, image: "https://images.unsplash.com/photo-1511467687858-23d96c32e4ae?w=800&q=80", desc: "Mechanical switch premium." }, { id: 3, name: "Leather Backpack", price: 850000, category: "Fashion", stock: 20, rating: 4.7, image: "https://images.unsplash.com/photo-1548036328-c9fa89d128fa?w=800&q=80", desc: "Kulit asli, desain minimalis." }, { id: 4, name: "Smartwatch X", price: 3400000, category: "Elektronik", stock: 8, rating: 4.6, image: "https://images.unsplash.com/photo-1523275335684-37898b6baf30?w=800&q=80", desc: "Layar AMOLED, tahan air." } ]; const App = () => { const [cart, setCart] = useState([]); const [wishlist, setWishlist] = useState([]); const [activeTab, setActiveTab] = useState('home'); const [search, setSearch] = useState(""); const [selected, setSelected] = useState(null); const [isCartOpen, setIsCartOpen] = useState(false); const formatIDR = (n) => new Intl.NumberFormat('id-ID', { style: 'currency', currency: 'IDR', maximumFractionDigits: 0 }).format(n); const filtered = useMemo(() => PRODUCTS.filter(p => p.name.toLowerCase().includes(search.toLowerCase())), [search]); const cartTotal = cart.reduce((a, b) => a + (b.price * b.qty), 0); const cartCount = cart.reduce((a, b) => a + b.qty, 0); const toggleCart = (p) => { setCart(prev => { const exists = prev.find(i => i.id === p.id); return exists ? prev.map(i => i.id === p.id ? {...i, qty: i.qty + 1} : i) : [...prev, {...p, qty: 1}]; }); }; const handleWA = () => { const msg = encodeURIComponent(`Halo AlfiahStore, saya pesan:\n${cart.map(i => `- ${i.name} (${i.qty}x)`).join('\n')}\nTotal: ${formatIDR(cartTotal)}`); window.open(`https://wa.me/6588494861?text=${msg}`); }; const Card = ({ p }) => (
{formatIDR(p.price)}
Kurasi produk terbaik untuk melengkapi hari-hari Anda.
Kosong.
: ({formatIDR(i.price)}
{selected.desc}