Refactor Informacion component to use fetched data for concerts and seats, and optimize category filtering logic

This commit is contained in:
SirRobert-1 2025-03-10 07:40:29 -06:00
parent 53b6041973
commit bc2b125ac2
1 changed files with 10 additions and 19 deletions
ventaboletos/src/components/vistas

View File

@ -34,7 +34,7 @@ function Informacion() {
if (error) {
console.error(error);
} else {
setConciertos(conciertos);
setConciertos(data);
}
};
@ -45,21 +45,11 @@ function Informacion() {
if (error) {
console.error(error);
} else {
setNumeroAsiento(asientos);
}
};
const fetchTipoAsiento = async () => {
let { data: asientos, error } = await supabaseClient
.from("asientos")
.select("categoria");
if (error) {
console.error(error);
} else {
const uniqueCategories = asientos
.map((asiento) => asiento.categoria)
.filter((value, index, self) => self.indexOf(value) === index);
const uniqueCategories = [
...new Set(data.map((asiento) => asiento.categoria)),
];
setTipoAsiento(uniqueCategories);
setNumeroAsiento(data);
}
};
@ -70,12 +60,9 @@ function Informacion() {
const handleCategoriaChange = (categoria) => {
setSelectedCategoria(categoria);
setAsientoSeleccionado("");
};
const filteredAsientos = numeroAsiento
.filter((asiento) => asiento.categoria === selectedCategoria)
.sort((a, b) => a.numero_asiento - b.numero_asiento);
const handleAgregarAlCarrito = () => {
if (!selectedConcierto || !asientoSeleccionado) {
alert("Selecciona un tipo de asiento antes de continuar.");
@ -92,6 +79,10 @@ function Informacion() {
setOpen(false);
};
const filteredAsientos = numeroAsiento
.filter((asiento) => asiento.categoria === selectedCategoria)
.sort((a, b) => a.numero_asiento - b.numero_asiento);
return (
<>
<div className="space-y-4">