Необходимо вывести список предложений каталога Etsy.com, используя библиотеку React. После загрузки данных и отрисовки список должен выглядеть так:
Данные для списка доступны в формате JSON по адресу https://neto-api.herokuapp.com/etsy
Это массив объектов, каждый объект представляет одно предложение. У предложение доступно множество свойств, но в приложении необходимо использовать следующие:
listing_id
— уникальный идентификатор предложения, число;url
— ссылка на предложение, строка;MainImage
— информация об изображении, объект, нам необходимо использовать свойствоurl_570xN
для получения адреса главной картинки, строка;title
— название предложения, строка;currency_code
— код валюты, строка;price
— цена, строка;quantity
— доступное количество, число.
Для отображения списка создайте компонент Listing
, который принимает следующие атрибуты:
items
— список предложений, массив объектов, по умолчанию пустой массив.
Коспонент должен создавать на основе списка предложений следующий HTML-код:
<div class="item-list">
<div class="item">
<div class="item-image">
<a href="https://www.etsy.com/listing/292754135/woodland-fairy">
<img src="https://img1.etsystatic.com/156/0/12814579/il_570xN.1173240751_50hv.jpg">
</a>
</div>
<div class="item-details">
<p class="item-title">Woodland Fairy</p>
<p class="item-price">$3.99</p>
<p class="item-quantity level-medium">12 left</p>
</div>
</div>
</div>
Если название предложения привышает 50
символов, то необходимо выводить только первые 50
символов, и добавлять символ …
в конце.
При выводе стоимости предложения необходимо учитывать валюту. Если цена задана:
- в долларах США, код
USD
, то цену вывести в формате$50.00
; - в евро, код
EUR
, то цену вывести в формате€50.00
; - в остальных случаях цену вывести в формате
50.00 GBP
, гдеGBP
— код валюты.
Вывести остаток, подсветив его в зависимости от количества, используя класс level-*
:
level-low
— если остаток меньше10
включительно,level-medium
— если остаток меньше20
включительно,level-high
— если остаток больше20
.
Необходимо загрузить данные списка предложений, и отобразить их используя компонент Listing
в DOM-узле с идентификатором root
.
Компонент необходимо реализовать в файле ./js/app.js
. Файл уже подключен к документы, поэтому другие файлы изменять не требуется.
Реализуйте компонент во вкладке JS(Babel). Перед началом работы сделайте форк этого пена: