2.6 completed

This commit is contained in:
counterweight 2025-05-25 00:00:13 +02:00
parent bf5fc1431d
commit 6d81165900
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
4 changed files with 2625 additions and 5 deletions

View file

@ -4,8 +4,7 @@ Exercises:
* [X] 2.3
* [X] 2.4
* [X] 2.5
* [ ] 2.5
* [ ] 2.6
* [X] 2.6
* [ ] 2.7
* [ ] 2.8
* [ ] 2.9

2595
parts/2/phoneBook/package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,22 +1,32 @@
import { useState } from "react";
import PersonList from "./components/PersonList";
const App = () => {
const [persons, setPersons] = useState([{ name: "Arto Hellas" }]);
const [newName, setNewName] = useState("");
const handleOnSubmit = (event) => {
event.preventDefault();
setPersons(persons.concat({ name: [newName] }));
};
const handleNameChange = (event) => {
setNewName(event.target.value);
};
return (
<div>
<h2>Phonebook</h2>
<form>
<form onSubmit={handleOnSubmit}>
<div>
name: <input />
name: <input onChange={handleNameChange} />
</div>
<div>
<button type="submit">add</button>
</div>
</form>
<h2>Numbers</h2>
...
<PersonList persons={persons} />
</div>
);
};

View file

@ -0,0 +1,16 @@
const PersonList = ({ persons }) => {
console.log("the list");
console.log(persons);
return (
<>
<ul>
{persons.map((person) => {
return <li id={person.name}>{person.name}</li>;
})}
</ul>
</>
);
};
export default PersonList;