// Admin panel — vista de tienda para la vendedora const { useState: useStateA, useMemo: useMemoA } = React; function AdminPanel({ data, onClose, currency, rates, products, setProducts }) { const [tab, setTab] = useStateA("dashboard"); const [showForm, setShowForm] = useStateA(false); const [editing, setEditing] = useStateA(null); const lowStock = products.filter(p => p.stock > 0 && p.stock < 10).length; const outStock = products.filter(p => p.stock === 0).length; return (
mima edit · ADMIN

Tu tienda

{tab === "dashboard" && ( <>
Ventas hoy
$ 184.500
+24% vs. ayer
Pedidos
12
3 pendientes
Productos
{products.length}
{lowStock} con stock bajo
Sin stock
{outStock}
Reponer

Stock que requiere atención

{products.filter(p => p.stock < 15).slice(0, 4).map(p => (
{p.name}
{p.tagline}
{p.stock === 0 ? "AGOTADO" : p.stock + " UDS"}
))}
)} {tab === "products" && ( <>
{products.map(p => (
{ setEditing(p); setShowForm(true); }} style={{ cursor: "pointer" }}>
{p.name}
{formatPrice(p.price, currency, rates)} · {p.tagline}
{p.stock === 0 ? "0" : p.stock} UDS
))}
)} {tab === "import" && ( <>

Subí tu CSV o Excel

Arrastrá el archivo o tocá para elegirlo. Reconocemos columnas: nombre, categoría, precio, stock, descripción.

Plantilla recomendada
                {"nombre,categoria,precio_ars,stock,tagline,descripcion\n"}
                {"Eau de Parfum Lirio,perfumeria,48900,23,Floral · 75ml,Una fragancia luminosa…\n"}
                {"Sérum Vit. C,facial,32400,41,Antioxidante · 30ml,Concentración alta de…"}
              
💡 Última importación: hace 4 días · 8 productos actualizados
)} {tab === "orders" && ( <> {[ { id: "AR-2026-0042", buyer: "Camila S.", total: 64500, status: "Pendiente envío", color: "terra" }, { id: "AR-2026-0041", buyer: "Florencia M.", total: 32400, status: "En preparación", color: "sage" }, { id: "AR-2026-0040", buyer: "Magdalena R.", total: 89400, status: "Enviado", color: "sage" }, { id: "AR-2026-0039", buyer: "Lucía D.", total: 18700, status: "Entregado", color: "ink" }, ].map(o => (
{o.id}
{o.buyer}
{formatPrice(o.total, currency, rates)}
{o.status.toUpperCase()}
))} )}
{showForm && setShowForm(false)} onSave={(p) => { if (editing) { setProducts(products.map(x => x.id === p.id ? p : x)); } else { setProducts([...products, { ...p, id: "p" + (products.length + 1).toString().padStart(2, "0") }]); } setShowForm(false); }} cats={data.categories} />}
); } function ProductForm({ product, onClose, onSave, cats }) { const [f, setF] = useStateA(product || { name: "", category: cats[0]?.id || "perfumeria", tagline: "", price: 0, stock: 0, description: "", notes: [], tones: ["#efe4cf", "#c9b58a"], isNew: true, }); const [notesText, setNotesText] = useStateA(f.notes.join("\n")); const u = (k, v) => setF(s => ({ ...s, [k]: v })); const save = () => { onSave({ ...f, notes: notesText.split("\n").filter(Boolean), price: Number(f.price), stock: Number(f.stock) }); }; return ( <>

{product ? "Editar producto" : "Nuevo producto"}

Subir foto
u("name", e.target.value)} placeholder="Eau de Parfum Lirio Blanco" />
u("tagline", e.target.value)} placeholder="Floral · 75ml" />
u("price", e.target.value)} />
u("stock", e.target.value)} />