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:
@@ -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();
|
||||
|
||||
@@ -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: '',
|
||||
|
||||
Reference in New Issue
Block a user