Completed 2.8 (phonebook step3)

This commit is contained in:
2021-08-27 20:48:24 +07:00
parent 5b5837770a
commit 87e22f96fe
+17 -4
View File
@@ -2,26 +2,37 @@ import React, { useState } from 'react'
const App = () => { const App = () => {
const [ persons, setPersons ] = useState([ const [ persons, setPersons ] = useState([
{ name: 'Arto Hellas' } { name: 'Arto Hellas',
number: '040-123457',
id: 1
}
]) ])
const [ newName, setNewName ] = useState('') const [ newName, setNewName ] = useState('')
const [ newNumber, setNewNumber ] = useState('')
const handleNameChange = (event) => { const handleNameChange = (event) => {
//console.log(event.target.value) //console.log(event.target.value)
setNewName(event.target.value) setNewName(event.target.value)
} }
const handleNumberChange = (event) => {
//console.log(event.target.value)
setNewNumber(event.target.value)
}
const submitChange = (event) => { const submitChange = (event) => {
event.preventDefault() event.preventDefault()
const newPerson = { const newPerson = {
name: newName name: newName,
number: newNumber,
id: persons.length + 1
} }
// Check if newName already added to phonebook or not // Check if newName already added to phonebook or not
const check = persons.filter(person => person.name === newName ) const check = persons.filter(person => person.name === newName )
check.length === 0 ? setPersons(persons.concat(newPerson)) : alert(`${newName} is already added to phonebook`) check.length === 0 ? setPersons(persons.concat(newPerson)) : alert(`${newName} is already added to phonebook`)
setNewNumber('')
setNewName('') setNewName('')
} }
@@ -32,6 +43,8 @@ const App = () => {
<div> <div>
name: <input value={newName} onChange={handleNameChange}/> name: <input value={newName} onChange={handleNameChange}/>
</div> </div>
<div>number: <input type="tel" value={newNumber} onChange={handleNumberChange}/>
</div>
<div> <div>
<button type="submit">add</button> <button type="submit">add</button>
</div> </div>
@@ -39,7 +52,7 @@ const App = () => {
<h2>Numbers</h2> <h2>Numbers</h2>
<ul> <ul>
{persons.map(person => <li key={person.name}>{person.name}</li>)} {persons.map(person => <li key={person.id}>{person.name}: {person.number}</li>)}
</ul> </ul>
</div> </div>
) )