Задачи React.js

Поздравляю с завершением курса и стартом участия в квесте!

Задание 1. Реализовать сортировку книг по цене в книжном интернет-магазине (см. занятия в классе).
Над всеми книгами нужно создать ссылки «Цена ↑ » и «Цена ↓ «, при нажатии на ссылку она должна выделяться (например, цветом), а книги выводиться в отсортированном виде


Задание 2. Создать паджинацию, когда книг будет более 6 на странице.

Задание 3. Построить форму нахождения аннуитетного ипотечного платежа.
Примечание: форма должна иметь только четыре поля ввода. При заполнении трёх произвольных полей, четвертое должно показывать результат

Задание 4. Создать игру «Крестики-нолики»
Нельзя использовать библиотеки типа Phaser или др. — можно не игровые.
У игры должны быть заставка (всё рабочее поле), экраны завершения игры, прерывания, паузы.
Дизайн минималистический. Как плюс — использование canvas и звука

Задание 5: Создать для каждой книги в магазине книг возможность оценки с помощью пяти звёзд. По аналогии с: https://github.com/ekeric13/react-star-ratings

Задание 6. Подключить и настроить работу react-router так, чтобы на корневом маршруте / показывался набор книг (как сейчас), на маршруте /addbook показывалась форма добавления, а на маршруте /about была информация «о компании». 

Задание 7. Создать «Меню пользователя» справа сверху страницы, в формате DropDown (https://getbootstrap.com/docs/4.4/components/dropdowns/) с 3-5 ссылками.

Задание 8. Создать компонент MyComponent, который будет во все свои дочерние компоненты передавать props из своих props. Например,<MyComponent test=’123’>  <h1>привет</h1>  <Test /></MyComponent>prop test должен передаться в дочерние компонентыПримечание: https://ru.reactjs.org/docs/composition-vs-inheritance.html#containment

Задание 9. Создать компонент Timer, который представляет собой стилизованный input, в который можно вводить целое число обозначающее минуты. После ввода числа и нажатия Enter, при клике мышкой по компоненту должен начаться обратный отсчёт с отображением оставшегося количества минут и секунд. После завершения отсчёта (истечении назначенного промежутка времени) вместо индикатора должно показаться слово «Готово». Примечание: задание нужно выполнить в виде функционального компонента с использованием хуков https://ru.reactjs.org/docs/hooks-intro.html