Работа принимается
- HTML, CSS, JS-файлы и изображения должны быть в папке src.
- Инфраструктурные файлы проекта созданы через CRA.
- Сборка, запуск и функциональность проекта выполняются без ошибок.
-
В проекте есть:
- файлы index.html, и index.js;
- директория blocks;
- директория components с файлами App.js, Card.js, ImagePopup.js, PopupWithForm.js, Main.js, Header.js, Footer.js, AddPlacePopup.js, EditAvatarPopup.js, EditProfilePopup.js;
- директория utils с файлом api.js;
- директория contexts с файлом CurrentUserContext.js;
- файл README.md,
- файл .gitignore.
- Стили портированы.
-
Кодстайл:
- имена переменных и функций должны быть написаны в camelCase;
- имена классов — существительные с прописной буквы;
- имена переменных — существительные;
- имя функции отражает то, что она делает.
- транслит,
- неуместные сокращения.
Для именования запрещены:
- Объект контекста CurrentUserContext экспортируется из отдельного файла директории contexts.
-
Разметка портирована в JSX:
- Разметка заключена в ( );
- Разметка вынесена в соответствующие ей компоненты.
-
Компоненты:
- Хуки не используются внутри условных блоков;
- Хуки вызываются в основной функции компонента;
- При использовании классовых компонентов эффекты описаны внутри методов жизненного цикла компонента.
- Компоненты Main и Card подписаны на контекст CurrentUserContext.
- Выполнено поднятие стейта из компонент Main и Card.
- В компонент App внедрён контекст через CurrentUserContext.Provider.
- В корневом компоненте App создана стейт-переменная currentUser. Она используется в качестве значения для провайдера контекста.
- Компоненты модальных окон содержат только обработчики сабмита формы. Остальные обработчики, например handleUpdateUser, описаны в компоненте App.
- Запросы к API описаны внутри компонента App.
- Запрос к API за информацией о пользователе и массиве карточек выполняется единожды, при монтировании.
- Все стейт-переменные из брифа созданы и определены внутри указанного в брифе компонента.
- Начальное состояние стейт-переменных содержит корректный тип данных.
-
Функциональность из брифа реализована:
- На странице отрисовывается информация о пользователе и карточки;
- Модальные окна открываются при нажатии на соответствующий элемент интерфейса;
- Модальные окна закрываются при нажатии на иконку закрытия.
- Работа модальных окон настроена: есть возможность редактирования аватара и профиля, добавления новой карточки.
- В форму редактирования профиля подставляются текущие данные.
- Реализовано добавление/удаление лайка.
- Реализовано удаление собственной карточки.
- Все локальные значения корректно обновляются.
React
Работа отклоняется от проверки
- При сборке или запуске проекта возникают ошибки.
- Разметка не портирована в JSX.
- Часть функциональности не реализована: контекст или поднятие стейта не выполнены. Компоненты модальных окон не созданы.
- Работа содержит вопросы или просьбы о помощи к ревьюеру.
- На повторных итерациях не исправлены критические замечания.