Feat: Edición y Manejo de Titulares, entre otros.

This commit is contained in:
2025-10-28 14:12:05 -03:00
parent 3c12a89f76
commit 5b3dede4d5
12 changed files with 216 additions and 99 deletions

View File

@@ -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}
/>
</>
);
};