import { useState, useEffect } from "react";
import PersonList from "./components/PersonList";
import personService from "./services/personService";
const SearchArea = ({ onChangeHandler }) => {
return (
search name:
);
};
const AddPersonForm = ({
onSubmitHandler,
onNameChangeHandler,
nameValue,
onNumberChangeHandler,
numberValue,
}) => {
return (
<>
>
);
};
const App = () => {
const [persons, setPersons] = useState([]);
const [searchString, setSearchString] = useState("");
const [newName, setNewName] = useState("");
const [newNumber, setNewNumber] = useState("");
useEffect(() => {
personService.getPersons().then((response) => {
console.log(response.data);
setPersons(response.data);
});
}, []);
const handleOnSubmit = (event) => {
event.preventDefault();
if (
persons.some((person) => {
return person.name === newName;
})
) {
alert(`${newName} is already in the phonebook.`);
return;
}
personService
.addPerson({
name: newName,
number: newNumber,
id: newName,
})
.then((response) => {
setPersons(persons.concat(response.data));
});
setNewName("");
setNewNumber("");
};
const handleNameChange = (event) => {
setNewName(event.target.value);
};
const handleNumberChange = (event) => {
setNewNumber(event.target.value);
};
const handleSearchChange = (event) => {
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 (
Phonebook
Add new
Numbers
person.name.toUpperCase().includes(searchString.toUpperCase())
)}
deletionHandlerFactory={handlePersonDeletionFactory}
/>
);
};
export default App;