Soy nuevo en JavaScript y tengo un problema. No entiendo cómo crear un evento que elimine elementos de la página del carrito. Creé addCartEvent pero no sé cómo eliminar productos. Ya creé el componente del botón menos. En el proyecto estoy usando Firebase.
Aquí hay un código de la página del carrito:
export default function CartPage() { const { user, loading } = useAuth(); const { data } = useCart(); const cartLength = Object.keys(data).reduce((a, b) => a + data[b].length, 0); const cartItems = cartLength > 0 ? Object.keys(data) .map((item) => { return data[item].map((size) => { return { name: item, size, }; }); }) .flat(1) : []; const sizeCount = cartItems.reduce( (acc, value) => ({ ...acc, [value.name + '__size__' + value.size]: (acc[value.name + '__size__' + value.size] || 0) + 1, }), {} ); const cartItemsArray = [ ...new Set( cartItems.filter( (v, i, a) => a.findIndex((t) => t.name === v.name && t.size === v.size) === i ) ), ].map((item) => { return { ...item, count: sizeCount[item.name + '__size__' + item.size] }; }); const addCartEvent = (id, size) => { const newCart = size ? { ...data, [id]: data.hasOwnProperty(id) ? [...data[id], size] : [size], } : { ...data, [id]: data.hasOwnProperty(id) ? [...data[id], '-'] : ['-'], }; addToCart(newCart); }; const router = useRouter(); }Y código de firebase/product.js:
import { auth, db } from '../config/firebase'; function addToCart(newCart) { const currentUser = auth.currentUser.uid; return db.collection('Users').doc(currentUser).update({ cart: newCart, }); } export { addToCart };