completed 2.8

This commit is contained in:
counterweight 2025-05-25 11:55:15 +02:00
parent 9753d15002
commit 5b33d34f0a
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
3 changed files with 18 additions and 4 deletions

View file

@ -6,6 +6,6 @@ Exercises:
* [X] 2.5 * [X] 2.5
* [X] 2.6 * [X] 2.6
* [X] 2.7 * [X] 2.7
* [ ] 2.8 * [X] 2.8
* [ ] 2.9 * [ ] 2.9
* [ ] 2.10 * [ ] 2.10

View file

@ -2,8 +2,11 @@ import { useState } from "react";
import PersonList from "./components/PersonList"; import PersonList from "./components/PersonList";
const App = () => { const App = () => {
const [persons, setPersons] = useState([{ name: "Arto Hellas" }]); const [persons, setPersons] = useState([
{ name: "Arto Hellas", number: 123 },
]);
const [newName, setNewName] = useState(""); const [newName, setNewName] = useState("");
const [newNumber, setNewNumber] = useState("");
const handleOnSubmit = (event) => { const handleOnSubmit = (event) => {
event.preventDefault(); event.preventDefault();
@ -15,13 +18,17 @@ const App = () => {
alert(`${newName} is already in the phonebook.`); alert(`${newName} is already in the phonebook.`);
return; return;
} }
setPersons(persons.concat({ name: newName })); setPersons(persons.concat({ name: newName, number: newNumber }));
}; };
const handleNameChange = (event) => { const handleNameChange = (event) => {
setNewName(event.target.value); setNewName(event.target.value);
}; };
const handleNumberChange = (event) => {
setNewNumber(event.target.value);
};
return ( return (
<div> <div>
<h2>Phonebook</h2> <h2>Phonebook</h2>
@ -29,6 +36,9 @@ const App = () => {
<div> <div>
name: <input onChange={handleNameChange} /> name: <input onChange={handleNameChange} />
</div> </div>
<div>
number: <input onChange={handleNumberChange} />
</div>
<div> <div>
<button type="submit">add</button> <button type="submit">add</button>
</div> </div>

View file

@ -3,7 +3,11 @@ const PersonList = ({ persons }) => {
<> <>
<ul> <ul>
{persons.map((person) => { {persons.map((person) => {
return <li key={person.name}>{person.name}</li>; return (
<li key={person.name}>
{person.name} --- {person.number}
</li>
);
})} })}
</ul> </ul>
</> </>