Fix: carga áreas en modal de edición de usuarios

- Agrega endpoint GET /api/areas en servidor
- Carga áreas desde API en GestionUsuarios en lugar de usar store
This commit is contained in:
2026-04-23 23:58:59 -03:00
parent a27487363d
commit ed76be8351
2 changed files with 24 additions and 2 deletions
+10
View File
@@ -254,6 +254,16 @@ app.put('/api/auth/update-email', async (req, res) => {
// === GESTIÓN DE USUARIOS (ADMIN) ===
app.get('/api/areas', async (req, res) => {
try {
const areas = await getAllAreas();
res.json(areas);
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Error al obtener áreas' });
}
});
app.get('/api/usuarios', async (req, res) => {
try {
const usuarios = await getAllUsuarios();
+14 -2
View File
@@ -1,6 +1,6 @@
import { useState, useEffect } from 'react';
import { useHospitalStore } from '@/hooks/useHospitalStore';
import type { Usuario, RolUsuario } from '@/types';
import type { Usuario, RolUsuario, Area } from '@/types';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
@@ -14,8 +14,9 @@ import { Plus, Pencil, Trash2, UserCog, Mail, Shield } from 'lucide-react';
const API_BASE = 'http://localhost:4001/api';
export function GestionUsuarios() {
const { logout, areas } = useHospitalStore();
const { logout } = useHospitalStore();
const [usuarios, setUsuarios] = useState<Usuario[]>([]);
const [areas, setAreas] = useState<Area[]>([]);
const [loading, setLoading] = useState(true);
const [dialogOpen, setDialogOpen] = useState(false);
const [editUsuario, setEditUsuario] = useState<Usuario | null>(null);
@@ -34,6 +35,7 @@ export function GestionUsuarios() {
useEffect(() => {
fetchUsuarios();
fetchAreas();
}, []);
const fetchUsuarios = async () => {
@@ -48,6 +50,16 @@ export function GestionUsuarios() {
}
};
const fetchAreas = async () => {
try {
const res = await fetch(`${API_BASE}/areas`);
const data = await res.json();
setAreas(data);
} catch (err) {
console.error(err);
}
};
const resetForm = () => {
setForm({
apellido: '',