completed 2.14

This commit is contained in:
Pablo Martin 2025-05-27 16:42:59 +02:00
parent 0509e60769
commit 7fcd63cc74
4 changed files with 25 additions and 67 deletions

View file

@ -1,74 +1,9 @@
{ {
"persons": [ "persons": [
{
"name": "Arto Hellas",
"number": "040-123456",
"id": "1"
},
{ {
"name": "Ada Lovelace", "name": "Ada Lovelace",
"number": "39-44-5323523", "number": "39-44-5323523",
"id": "2" "id": "2"
},
{
"name": "Dan Abramov",
"number": "12-43-234345",
"id": "3"
},
{
"name": "Mary Poppendieck",
"number": "39-23-6423122",
"id": "4"
},
{
"id": "aaa",
"name": "aaa",
"number": "123"
},
{
"id": "bbb",
"name": "bbb",
"number": "333"
},
{
"id": "",
"name": "",
"number": ""
},
{
"id": "",
"name": "",
"number": ""
},
{
"id": "",
"name": "",
"number": ""
},
{
"id": "",
"name": "",
"number": ""
},
{
"id": "",
"name": "",
"number": ""
},
{
"id": "",
"name": "",
"number": ""
},
{
"id": "ccc",
"name": "ccc",
"number": "333"
},
{
"id": "bbbbbb",
"name": "bbbbbb",
"number": "eeeeeeeeee"
} }
] ]
} }

View file

@ -85,6 +85,24 @@ const App = () => {
setSearchString(event.target.value); setSearchString(event.target.value);
}; };
const handlePersonDeletionFactory = ({ person }) => {
return (event) => {
personService
.deletePerson(person.id)
.then(() => {
setTimeout(() => {
console.log("postimeout");
}, 3000);
})
.then(() => {
return personService.getPersons();
})
.then((response) => {
setPersons(response.data);
});
};
};
return ( return (
<div> <div>
<h2>Phonebook</h2> <h2>Phonebook</h2>
@ -102,6 +120,7 @@ const App = () => {
persons={persons.filter((person) => persons={persons.filter((person) =>
person.name.toUpperCase().includes(searchString.toUpperCase()) person.name.toUpperCase().includes(searchString.toUpperCase())
)} )}
deletionHandlerFactory={handlePersonDeletionFactory}
/> />
</div> </div>
); );

View file

@ -1,4 +1,4 @@
const PersonList = ({ persons }) => { const PersonList = ({ persons, deletionHandlerFactory }) => {
return ( return (
<> <>
<ul> <ul>
@ -6,6 +6,7 @@ const PersonList = ({ persons }) => {
return ( return (
<li key={person.name}> <li key={person.name}>
{person.name} --- {person.number} {person.name} --- {person.number}
<button onClick={deletionHandlerFactory({person})}>delete</button>
</li> </li>
); );
})} })}

View file

@ -6,5 +6,8 @@ const getPersons = () => {
const addPerson = (personData) => { const addPerson = (personData) => {
return axios.post("http://localhost:3001/persons", personData); return axios.post("http://localhost:3001/persons", personData);
}; };
const deletePerson = (personId) => {
return axios.delete(`http://localhost:3001/persons/${personId}`);
};
export default { getPersons, addPerson }; export default { getPersons, addPerson, deletePerson };