From bc2b125ac28682e7bcfda5d782924783b970a9bc Mon Sep 17 00:00:00 2001
From: SirRobert-1 <rviverosgonzalez@gmail.com>
Date: Mon, 10 Mar 2025 07:40:29 -0600
Subject: [PATCH] Refactor Informacion component to use fetched data for
 concerts and seats, and optimize category filtering logic

---
 .../src/components/vistas/Informacion.jsx     | 29 +++++++------------
 1 file changed, 10 insertions(+), 19 deletions(-)

diff --git a/ventaboletos/src/components/vistas/Informacion.jsx b/ventaboletos/src/components/vistas/Informacion.jsx
index 97f3112..95ca5d7 100644
--- a/ventaboletos/src/components/vistas/Informacion.jsx
+++ b/ventaboletos/src/components/vistas/Informacion.jsx
@@ -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">