terminado ej

This commit is contained in:
2025-10-14 12:34:44 -03:00
parent eb03cc1d1d
commit d716173606
3 changed files with 50 additions and 19 deletions

View File

@@ -1,16 +1,31 @@
import { useEffect, useState } from 'react';
import './App.css' import './App.css'
import Alumno from './Components/Alumno' import Alumno from './Components/Alumno'
function App() {
return ( function App() {
<> const [loading, setLoading] = useState(true);
<div style={{ display: 'flex', flexDirection: 'row' , gap: "1rem"}}> const [alumnos, setAlumnos] = useState<any[]>([]);
<Alumno />
<Alumno /> useEffect(() => {
</div> fetch("https://jsonplaceholder.typicode.com/users")
</> .then(res => res.json())
) .then(data => {
} setAlumnos(data);
setLoading(false);
})
.catch(() => setLoading(false));
}, []);
if (loading) return <div>Cargando...</div>;
return (
<div style={{ display: 'flex', flexDirection: 'row', gap: "1rem", flexWrap: 'wrap' }}>
{alumnos.map((x) => (
<Alumno key={x.id} data={x} />
))}
</div>
);
}
export default App export default App

View File

@@ -13,3 +13,7 @@
.b-verde{ .b-verde{
border-color: green; border-color: green;
} }
p{
margin:0;
}

View File

@@ -1,22 +1,34 @@
import { useEffect, useState } from "react"; import { useState } from "react";
import "./Alumno.css" import "./Alumno.css"
export default function Alumno(){ export default function Alumno({data}: {data: any}){
const [alumno, setAlumno] = useState({ presente: false }); const [alumno, setAlumno] = useState({ presente: false });
return ( return (
<div id="aa" <div id="aa"
className = {`alumno b ${alumno.presente ? "b-rojo" : "b-verde"}`} className = {`alumno b ${alumno.presente ? "b-rojo" : "b-verde"}`}
> >
{(alumno.presente === true ? ( {(alumno.presente === true ? (
<p> <p>
Presente Presente
</p> </p>
) : ( ) : (
<p> <p>
Ausente Ausente
</p> </p>
))} ))}
<button onClick={() =>setAlumno({
<hr />
<div style={{ display: 'flex', flexDirection: 'column', gap:"10px" }}>
<p>
Nombre: <b>{data.name}</b>
</p>
<p>
Usuario: <b>{data.username}</b>
</p>
</div>
<hr />
<button onClick={() => setAlumno({
presente: alumno.presente ? false: true presente: alumno.presente ? false: true
})}> })}>
toggle toggle