"use client"; import React, { useState, useEffect } from "react"; import { db } from "@/lib/firebase"; import { collection, onSnapshot, addDoc, serverTimestamp } from "firebase/firestore"; import Link from "next/link"; interface Sale { id: string; client: string; items: string; total: number; date: any; } export default function SalesPage() { const [sales, setSales] = useState([]); const [products, setProducts] = useState([]); const [isModalOpen, setIsModalOpen] = useState(false); const [newSale, setNewSale] = useState({ client: "", items: "", total: 0 }); useEffect(() => { const unsubSales = onSnapshot(collection(db, "sales"), (snap) => { const data = snap.docs.map(doc => ({ id: doc.id, ...doc.data() } as Sale)); setSales(data); }); const unsubProducts = onSnapshot(collection(db, "products"), (snap) => { setProducts(snap.docs.map(doc => ({ id: doc.id, ...doc.data() }))); }); return () => { unsubSales(); unsubProducts(); }; }, []); const handleAdd = async (e: React.FormEvent) => { e.preventDefault(); await addDoc(collection(db, "sales"), { ...newSale, date: serverTimestamp() }); setIsModalOpen(false); setNewSale({ client: "", items: "", total: 0 }); }; return (
← Home

Historial de Ventas

{sales.map((s) => (
🧾

{s.client}

PRODUCTOS: {s.items}

${Number(s.total).toLocaleString()}

Completado

))}
{isModalOpen && (

NUEVA VENTA /

setNewSale({...newSale, client: e.target.value})} className="w-full bg-white/5 border-b border-white/10 py-4 text-xl outline-none focus:border-orange-500 transition-all font-bold" /> setNewSale({...newSale, items: e.target.value})} className="w-full bg-white/5 border-b border-white/10 py-4 text-lg outline-none focus:border-orange-500 transition-all" />
$ setNewSale({...newSale, total: Number(e.target.value)})} className="w-full bg-transparent border-b border-white/10 pl-10 py-6 text-6xl outline-none focus:border-orange-500 transition-all font-black text-orange-400 placeholder:text-gray-800" />
)}
); }