Refactor Informacion component to use fetched data for concerts and seats, and optimize category filtering logic
This commit is contained in:
parent
53b6041973
commit
bc2b125ac2
ventaboletos/src/components/vistas
|
@ -34,7 +34,7 @@ function Informacion() {
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
} else {
|
} else {
|
||||||
setConciertos(conciertos);
|
setConciertos(data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -45,21 +45,11 @@ function Informacion() {
|
||||||
if (error) {
|
if (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
} else {
|
} else {
|
||||||
setNumeroAsiento(asientos);
|
const uniqueCategories = [
|
||||||
}
|
...new Set(data.map((asiento) => asiento.categoria)),
|
||||||
};
|
];
|
||||||
|
|
||||||
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);
|
|
||||||
setTipoAsiento(uniqueCategories);
|
setTipoAsiento(uniqueCategories);
|
||||||
|
setNumeroAsiento(data);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -70,12 +60,9 @@ function Informacion() {
|
||||||
|
|
||||||
const handleCategoriaChange = (categoria) => {
|
const handleCategoriaChange = (categoria) => {
|
||||||
setSelectedCategoria(categoria);
|
setSelectedCategoria(categoria);
|
||||||
|
setAsientoSeleccionado("");
|
||||||
};
|
};
|
||||||
|
|
||||||
const filteredAsientos = numeroAsiento
|
|
||||||
.filter((asiento) => asiento.categoria === selectedCategoria)
|
|
||||||
.sort((a, b) => a.numero_asiento - b.numero_asiento);
|
|
||||||
|
|
||||||
const handleAgregarAlCarrito = () => {
|
const handleAgregarAlCarrito = () => {
|
||||||
if (!selectedConcierto || !asientoSeleccionado) {
|
if (!selectedConcierto || !asientoSeleccionado) {
|
||||||
alert("Selecciona un tipo de asiento antes de continuar.");
|
alert("Selecciona un tipo de asiento antes de continuar.");
|
||||||
|
@ -92,6 +79,10 @@ function Informacion() {
|
||||||
setOpen(false);
|
setOpen(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const filteredAsientos = numeroAsiento
|
||||||
|
.filter((asiento) => asiento.categoria === selectedCategoria)
|
||||||
|
.sort((a, b) => a.numero_asiento - b.numero_asiento);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="space-y-4">
|
<div className="space-y-4">
|
||||||
|
|
Loading…
Reference in New Issue