'use client'; import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import { useAuth } from '@/hooks/useAuth'; import { api } from '@/services/api'; import LoadingSpinner from '@/components/LoadingSpinner'; export default function AlumnosPage() { const { user, loading } = useAuth(); const router = useRouter(); const [alumnos, setAlumnos] = useState([]); const [busqueda, setBusqueda] = useState(''); const [loadingData, setLoadingData] = useState(true); useEffect(() => { if (!loading && !user) router.push('/login'); if (user) { api.get('/alumno', { tipoBusqueda: 'NOMBRE', nombre: '' }).then(data => { setAlumnos(Array.isArray(data) ? data : []); setLoadingData(false); }).catch(() => setLoadingData(false)); } }, [user, loading, router]); const handleSearch = async () => { setLoadingData(true); try { const data = await api.get('/alumno', { tipoBusqueda: 'NOMBRE', nombre: busqueda }); setAlumnos(Array.isArray(data) ? data : []); } catch { /* ignore */ } setLoadingData(false); }; if (loading) return ; return (

Alumnos

setBusqueda(e.target.value)} placeholder="Buscar alumno..." onKeyDown={e => e.key === 'Enter' && handleSearch()} />
{alumnos.map((a: any, i: number) => ( ))} {alumnos.length === 0 && }
RUTNombreMailTeléfono
{a.AlumnoRut || a.rut || a.Rut} {a.NombreAlumno || a.nombre || a.Nombre} {a.Email || a.mail || a.Mail} {a.Telefono || a.telefono || a.Fono}
Sin resultados
); }