- Перед выполнением сделайте мердж мастера моего репозитория себе в форк (чтобы иметь актуальный код);
- Создайте ветку для выполнения ДЗ;
- Выполните ДЗ в этой ветке;
- Сделайте Pull Request этой ветки на мастер моего репозитория;
- Напишите мне ([email protected]) письмо со ссылкой на PR.
Дедлайн – 21:00 по Москве/Киеву за день до занятия.
- Создать компоненту Reviews, где выводить отзывы про рестораны и рейтинг с помощью компоненты Rate https://ant.design/components/rate/#header.
- Создать компоненту Restaurant, где показывать Menu и Reviews.
- В компоненте Restaurant показывать средний рейтинг с помощью компоненты Rate https://ant.design/components/rate/#header
- (опционально) Украсить приложени с помощью компонентов из ant.design.
- Покрыть PropTypes все компоненты.
- Написать тесты на уменьшение блюд.
- Покрыть тестами Reviews.
- Сделать компонент Order в котором отображать выбранные товары с их количеством, суммоый по каждому товару и общей стоимостью заказа.
- Сделать у каждой позиции в этом заказа кнопки +/-/удалить (при нажатии на удалить удаляеься все количество товара)
- Переписать review и рестораны на key=>value
- Починить отображение review (добавить пользователя из normalizedUsers в редьюсер reviews)
- Сделать форму добавления нового review
- Написать middleware для генерации uuid
- Реализовать добавление review в стор и показывать его
- Загрузить продукты через api middleware
- Загрузить users через redux-thunk
- Полностью убрать fixtures из приложения, все грузить с сервера
- При загрузках показывать лоареры, все грузить максимально низко, там где эти данные нужны
- При желании переписать все на immer/immutable
- Сделать роутинг на menu and reviews (/restaurants/id/reviews)
- В корзине продукты сделать ссылками на их рестораны
- Сделать редирект со корня и с /restaurants на страницу ресторана
- Проверить если мы на /checkout, то при нажатии на кнопку:
- отправить запрос на: '/api/order'
- блокировать кнопку на время запроса (можно добавить лоадер)
- при успешном ответе редиректить на новую страницу "Спасибо за заказ!"
- Реализовать переключение валюты, хранить словарь словарь в контексте
- Анимировать добавление ревью