- Header with animation. Infinite animation on home page. On other pages animation works while the data from GraphQL endpoint is being loaded
- Search bar
- Countries list uses react-window for rendering
- After you click on a country we save it in the localStorage and then show on the home page as "Recently viewed"
- When you go to URL /countries/:code by yourself the list of countries on the left will be automaticly scrolled to the country that you are checking right now
- Live demo on Zeit Now
- Hooks are everywhere (and emojis 🥶)
This task is for demonstrating your understanding of HTML, CSS, Javascript, React & related libraries.
If you’re doing the front-end only, you must use the https://countries.trevorblades.com endpoint for GraphQL API.
Preferred libraries:
styled-components
for stylingapollo-client
for consuming GraphQL APIreact-router
or any alternative to implement routing
Instructions:
- Create a
create-react-app
repo. - Add a router with routes:
/
- for displaying basic links for the other routes/countries
- for requesting GraphQL API and rendering the list/countries/(:code)
- for requesting GraphQL API and rendering the properties of a continent
- Design is totally by you.
- Countries list at
/countries
must contain the list of countries and the languages spoken in that country. Both in English and native languages. It should also contain the continent it is located in. /countries/(:code)
must render the currency and a area code (phone) of that country.- Routes must be fully loadable with a direct link.
/countries/CI
must render the page for Ivory Coast, for example. - End.