Files
fullstackopen/part2/2.12-2.14/src/App.js
T

46 lines
1.2 KiB
JavaScript
Raw Normal View History

2021-08-28 11:44:05 +07:00
import React, { useState, useEffect } from 'react'
import axios from 'axios'
import Filter from './components/Filter'
2021-09-01 17:45:57 +07:00
import Country from './components/Country'
2021-08-28 11:44:05 +07:00
const App = () => {
const [newSearch, setNewSerach] = useState('')
const [CountryList, setCountryList] = useState([])
2021-09-02 11:02:24 +07:00
const [ResultList, setResultList] = useState([])
2021-08-28 11:44:05 +07:00
useEffect(() => {
axios
.get('https://restcountries.eu/rest/v2/all')
.then(response => {
setCountryList(response.data)
})
}, [])
2021-09-02 11:02:24 +07:00
const clickHandler = (index) => {
console.log(index)
const newresult = ResultList
newresult[index].Show = !newresult[index].Show
setResultList([...newresult])
}
const handleSearchChange = (event) => {
setNewSerach(event.target.value)
}
useEffect(() => {
const sfilter = CountryList.filter(country => country.name.toLowerCase().includes(newSearch.toLowerCase()))
const filter = sfilter.map(item => ({...item,Show:false}))
setResultList(filter)
}, [newSearch, CountryList])
2021-08-28 11:44:05 +07:00
return (
<div>
<h2>Country</h2>
<Filter value={newSearch} onChange={handleSearchChange} />
2021-09-02 11:02:24 +07:00
<Country data={ResultList} onClick={clickHandler}/>
2021-08-28 11:44:05 +07:00
</div>
)
}
export default App