import { NextPage } from 'next' import { useState, useEffect } from 'react' import Layout from '../components/layout' import useApiData from '../hooks/use-api-data' import Airport from '../types/airport' const Page: NextPage = () => { const airports = useApiData('/api/airports', []) const [filter, setFilter] = useState('') const [filtered, setFiltered] = useState([]) const [validation, setValidation] = useState('') const changeFilter = e => { setFilter(e.target.value) } useEffect(() => { let check = filter.toLowerCase() if (filter.length > 1) { setValidation('') setFiltered(airports.filter(airport => { let result = airport.name.toLowerCase().includes(check) || airport.iata.toLowerCase().includes(check) || airport.city.toLowerCase().includes(check) || airport.country.toLowerCase().includes(check) return result })) } else if (filter.length === 1) { setValidation('Please type 2 or more characters.') setFiltered([]) } else { setValidation('') setFiltered([]) } }, [filter]) return

Code Challenge: Airports

All Airports

{validation}

{filtered.map(airport => (
{airport.name}, {airport.city}
{airport.country}
))}
} export default Page