From 50c27466827bfff15f8b4628de501fa8f2c49eda Mon Sep 17 00:00:00 2001 From: Thuan Bui Date: Wed, 1 Sep 2021 17:45:57 +0700 Subject: [PATCH] Completed 2.12 --- part2/2.12-2.14/src/App.js | 10 +-- part2/2.12-2.14/src/OldApp.js | 73 -------------------- part2/2.12-2.14/src/components/Country.js | 42 +++++++++++ part2/2.12-2.14/src/components/Person.js | 11 --- part2/2.12-2.14/src/components/PersonForm.js | 18 ----- 5 files changed, 44 insertions(+), 110 deletions(-) delete mode 100644 part2/2.12-2.14/src/OldApp.js create mode 100644 part2/2.12-2.14/src/components/Country.js delete mode 100644 part2/2.12-2.14/src/components/Person.js delete mode 100644 part2/2.12-2.14/src/components/PersonForm.js diff --git a/part2/2.12-2.14/src/App.js b/part2/2.12-2.14/src/App.js index 4f1186d..8d24f13 100644 --- a/part2/2.12-2.14/src/App.js +++ b/part2/2.12-2.14/src/App.js @@ -1,6 +1,7 @@ import React, { useState, useEffect } from 'react' import axios from 'axios' import Filter from './components/Filter' +import Country from './components/Country' const App = () => { @@ -16,7 +17,6 @@ const App = () => { .get('https://restcountries.eu/rest/v2/all') .then(response => { setCountryList(response.data) - console.log(CountryList) }) }, []) @@ -27,13 +27,7 @@ const App = () => {

Country

- - { - filtered.length > 10 ? - 'Too many matches, specific another filter' : - filtered.map(item =>

{item.name}

) - } - +
) diff --git a/part2/2.12-2.14/src/OldApp.js b/part2/2.12-2.14/src/OldApp.js deleted file mode 100644 index a1189c3..0000000 --- a/part2/2.12-2.14/src/OldApp.js +++ /dev/null @@ -1,73 +0,0 @@ -import React, { useState, useEffect } from 'react' -import axios from 'axios' -import Filter from './components/Filter' -import PersonForm from './components/PersonForm' -import Person from './components/Person' - -const App = () => { - const [ persons, setPersons ] = useState([]) - const [ newName, setNewName ] = useState('') - const [ newNumber, setNewNumber ] = useState('') - const [ newSearch, setNewSearch ] = useState('') - - useEffect(() => { - axios - .get('http://localhost:3001/persons') - .then(response => { - console.log('promise fulfilled') - setPersons(response.data) - }) - }, []) - - //console.log(persons) - - const handleNameChange = (event) => { - //console.log(event.target.value) - setNewName(event.target.value) - } - - const handleNumberChange = (event) => { - //console.log(event.target.value) - setNewNumber(event.target.value) - } - - const handleSearchChange = (event) => { - setNewSearch(event.target.value) - - } - - const submitChange = (event) => { - event.preventDefault() - const newPerson = { - name: newName, - number: newNumber, - id: persons.length + 1 - } - - // Check if newName already added to phonebook or not - const check = persons.filter(person => person.name === newName ) - check.length === 0 ? setPersons(persons.concat(newPerson)) : alert(`${newName} is already added to phonebook`) - - setNewNumber('') - setNewName('') - setNewSearch('') - } - - const search = persons.filter(person => person.name.toLowerCase().includes(newSearch.toLowerCase())) - - return ( -
-

Phonebook

- - -

Add new contact

- - -

Numbers

- - -
- ) -} - -export default App \ No newline at end of file diff --git a/part2/2.12-2.14/src/components/Country.js b/part2/2.12-2.14/src/components/Country.js new file mode 100644 index 0000000..460c15b --- /dev/null +++ b/part2/2.12-2.14/src/components/Country.js @@ -0,0 +1,42 @@ +import React from 'react'; + +const Country = (props) => { + const filtered = props.data + return ( +
+ {filtered.length > 10 ? + 'Too many matches, specific another filter' : filtered.length !== 1 ? + filtered.map(item => ): + filtered.map(item => )} +
+ + ) +} +const CountryLongList = ({data}) => { + return ( +
+

{data.name}

+
+ ) +} +const CountryDetail = ({data}) => { + console.log(data) + return ( +
+

{data.name}

+

+ Capital: {data.capital} +
+ Population: {data.population} +

+

Languagues

+ + {data.name} + +
+ ) +} + +export default Country \ No newline at end of file diff --git a/part2/2.12-2.14/src/components/Person.js b/part2/2.12-2.14/src/components/Person.js deleted file mode 100644 index ca51be1..0000000 --- a/part2/2.12-2.14/src/components/Person.js +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react' - -const Person = ({data}) => { - return ( - - ) -} - -export default Person \ No newline at end of file diff --git a/part2/2.12-2.14/src/components/PersonForm.js b/part2/2.12-2.14/src/components/PersonForm.js deleted file mode 100644 index 1999f29..0000000 --- a/part2/2.12-2.14/src/components/PersonForm.js +++ /dev/null @@ -1,18 +0,0 @@ -import React from 'react' - -const PersonForm = ({onSubmit, name, number, handleNumberChange, handleNameChange }) => { - return ( -
-
- name: -
-
number: -
-
- -
-
- ) -} - -export default PersonForm \ No newline at end of file