Feat: Edición y Manejo de Titulares, entre otros.
This commit is contained in:
		| @@ -11,11 +11,13 @@ import { useSignalR } from '../hooks/useSignalR'; | ||||
| import FormularioConfiguracion from './FormularioConfiguracion'; | ||||
| import TablaTitulares from './TablaTitulares'; | ||||
| import AddTitularModal from './AddTitularModal'; | ||||
| import EditarTitularModal from './EditarTitularModal'; | ||||
|  | ||||
| const Dashboard = () => { | ||||
|   const [titulares, setTitulares] = useState<Titular[]>([]); | ||||
|   const [modalOpen, setModalOpen] = useState(false); | ||||
|   const [isGeneratingCsv, setIsGeneratingCsv] = useState(false); | ||||
|   const [titularAEditar, setTitularAEditar] = useState<Titular | null>(null); | ||||
|  | ||||
|   // Usamos useCallback para que la función de callback no se recree en cada render, | ||||
|   // evitando que el useEffect del hook se ejecute innecesariamente. | ||||
| @@ -95,6 +97,15 @@ const Dashboard = () => { | ||||
|     } | ||||
|   }; | ||||
|  | ||||
|   const handleSaveEdit = async (id: number, texto: string, viñeta: string) => { | ||||
|     try { | ||||
|       await api.actualizarTitular(id, { texto, viñeta: viñeta || null }); | ||||
|       // SignalR se encargará de actualizar la UI | ||||
|     } catch (err) { | ||||
|       console.error("Error al guardar cambios:", err); | ||||
|     } | ||||
|   }; | ||||
|  | ||||
|   return ( | ||||
|     <> | ||||
|       <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', mb: 2 }}> | ||||
| @@ -120,8 +131,25 @@ const Dashboard = () => { | ||||
|       </Box> | ||||
|  | ||||
|       <FormularioConfiguracion /> | ||||
|       <TablaTitulares titulares={titulares} onReorder={handleReorder} onDelete={handleDelete} /> | ||||
|       <AddTitularModal open={modalOpen} onClose={() => setModalOpen(false)} onAdd={handleAdd} /> | ||||
|       <TablaTitulares | ||||
|         titulares={titulares} | ||||
|         onReorder={handleReorder} | ||||
|         onDelete={handleDelete} | ||||
|         onEdit={(titular) => setTitularAEditar(titular)} | ||||
|       /> | ||||
|  | ||||
|       <AddTitularModal | ||||
|         open={modalOpen} | ||||
|         onClose={() => setModalOpen(false)} | ||||
|         onAdd={handleAdd} | ||||
|       /> | ||||
|  | ||||
|       <EditarTitularModal | ||||
|         open={titularAEditar !== null} | ||||
|         onClose={() => setTitularAEditar(null)} | ||||
|         onSave={handleSaveEdit} | ||||
|         titular={titularAEditar} | ||||
|       /> | ||||
|     </> | ||||
|   ); | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user