-
-
Save parzibyte/c417756a55cabf32a2f623a9ad53aecb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const $contenedor = document.querySelector("#contenedor"), | |
$conteoCarrito = document.querySelector("#conteoCarrito"); | |
const actualizarConteo = conteo => { | |
if (!conteo) { | |
$conteoCarrito.textContent = ""; | |
} else { | |
$conteoCarrito.textContent = `(${conteo})`; | |
} | |
}; | |
const obtenerProductos = async () => { | |
// Es una petición GET, no necesitamos indicar el método ni el cuerpo | |
const respuestaRaw = await fetch("obtener_productos.php"); | |
const productos = await respuestaRaw.json(); | |
// Limpiamos la tabla | |
$contenedor.innerHTML = ""; | |
const c = new Carrito(); | |
refrescarConteoDeCarrito(); | |
// Ahora ya tenemos a los productos. Los recorremos | |
for (const producto of productos) { | |
const $div = document.createElement("div"); | |
$div.classList.add("columns"); | |
const $columna = document.createElement("div"); | |
$columna.classList.add("column", "is-full"); | |
$div.appendChild($columna); | |
const $tarjeta = document.createElement("div"); | |
$tarjeta.classList.add("card"); | |
$columna.appendChild($tarjeta); | |
const $header = document.createElement("header"); | |
$header.classList.add("card-header"); | |
const $parrafoNombre = document.createElement("p"); | |
$parrafoNombre.classList.add("card-header-title", "is-size-4"); | |
$parrafoNombre.textContent = producto.nombre; | |
$header.appendChild($parrafoNombre); | |
$tarjeta.appendChild($header); | |
const $contenidoTarjeta = document.createElement("div"); | |
$contenidoTarjeta.classList.add("card-content"); | |
const $contenido = document.createElement("div"); | |
$contenido.classList.add("content"); | |
$contenido.innerText = producto.descripcion; | |
$contenidoTarjeta.appendChild($contenido); | |
$tarjeta.appendChild($contenidoTarjeta); | |
const $encabezadoPrecio = document.createElement("h1"); | |
$encabezadoPrecio.classList.add("is-size-3"); | |
$encabezadoPrecio.textContent = producto.precio; | |
$contenidoTarjeta.appendChild($encabezadoPrecio); | |
if (c.existe(producto.id)) { | |
const $spanYaPresenteEnCarrito = document.createElement("span"); | |
$spanYaPresenteEnCarrito.classList.add("button", "is-success"); | |
$spanYaPresenteEnCarrito.innerHTML = `<i class="fa fa-check"></i> En el carrito`; | |
$contenidoTarjeta.appendChild($spanYaPresenteEnCarrito); | |
const $botonQuitar = document.createElement("button"); | |
$botonQuitar.classList.add("button", "is-danger", "ml-2"); | |
$botonQuitar.innerHTML = `<i class="fa fa-trash-o"></i> Quitar`; | |
$botonQuitar.onclick = () => { | |
c.quitar(producto.id); | |
obtenerProductos(); | |
refrescarConteoDeCarrito(); | |
}; | |
$contenidoTarjeta.appendChild($botonQuitar); | |
} else { | |
const $botonAgregar = document.createElement("button"); | |
$botonAgregar.classList.add("button", "is-primary"); | |
$botonAgregar.innerHTML = `<i class="fa fa-cart-plus"></i> Agregar al carrito`; | |
$botonAgregar.onclick = () => { | |
c.agregar(producto); | |
obtenerProductos(); | |
refrescarConteoDeCarrito(); | |
}; | |
$contenidoTarjeta.appendChild($botonAgregar); | |
} | |
$contenedor.appendChild($div); | |
} | |
}; | |
// Y cuando se incluya este script, invocamos a la función | |
obtenerProductos(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment