From d4506db50acfe12b2f71ad2c513eafbc5420a45a Mon Sep 17 00:00:00 2001 From: AndrewTrieu Date: Thu, 23 Mar 2023 15:38:43 +0200 Subject: [PATCH] Upload 2.14 --- part2/phonebook/src/App.js | 13 ++++++++++++- part2/phonebook/src/components/Person.js | 9 ++++++--- part2/phonebook/src/components/ShowPersons.js | 4 ++-- part2/phonebook/src/services/personService.js | 9 ++++++--- 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/part2/phonebook/src/App.js b/part2/phonebook/src/App.js index 71aef48..137fdea 100644 --- a/part2/phonebook/src/App.js +++ b/part2/phonebook/src/App.js @@ -30,6 +30,16 @@ const App = () => { }); }; + const deletePerson = (id, name) => { + if (window.confirm(`Delete ${name}?`)) { + personService.deletePerson(id).then((response) => { + const newPersons = persons.filter((person) => person.id !== id); + setPersons(newPersons); + setShowedPersons(newPersons); + }); + } + }; + const handleChange = (event) => { const { name, value } = event.target; setNewPerson({ ...newPerson, [name]: value }); @@ -47,13 +57,14 @@ const App = () => {

Phonebook

+

Add a new number

Numbers

- +
); }; diff --git a/part2/phonebook/src/components/Person.js b/part2/phonebook/src/components/Person.js index 184006b..dfdf407 100644 --- a/part2/phonebook/src/components/Person.js +++ b/part2/phonebook/src/components/Person.js @@ -1,7 +1,10 @@ -const Person = ({ person }) => { +const Person = ({ person, deletePerson }) => { return ( -
- {person.name} {person.number} +
+ {person.name} {person.number}{" "} +
); }; diff --git a/part2/phonebook/src/components/ShowPersons.js b/part2/phonebook/src/components/ShowPersons.js index e0d74d5..0df56ce 100644 --- a/part2/phonebook/src/components/ShowPersons.js +++ b/part2/phonebook/src/components/ShowPersons.js @@ -1,10 +1,10 @@ import Person from "./Person"; -const ShowPersons = ({ showedPersons }) => { +const ShowPersons = ({ showedPersons, deletePerson }) => { return (
{showedPersons.map((person) => ( - + ))}
); diff --git a/part2/phonebook/src/services/personService.js b/part2/phonebook/src/services/personService.js index 53acc3e..b0e21db 100644 --- a/part2/phonebook/src/services/personService.js +++ b/part2/phonebook/src/services/personService.js @@ -1,11 +1,9 @@ import axios from "axios"; const baseUrl = "http://localhost:3001/persons"; - const getAll = () => { const request = axios.get(baseUrl); return request.then((response) => response.data); }; - const create = (newObject) => { const request = axios.post(baseUrl, newObject); return request.then((response) => response.data); @@ -16,4 +14,9 @@ const update = (id, newObject) => { return request.then((response) => response.data); }; -export default { getAll, create, update }; +const deletePerson = (id) => { + const request = axios.delete(`${baseUrl}/${id}`); + return request.then((response) => response); +}; + +export default { getAll, create, update, deletePerson };