Чеклист для самопроверки. 11 Спринт.

Работа принимается

  • 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;
    • имена классов — существительные с прописной буквы;
    • имена переменных — существительные;
    • имя функции отражает то, что она делает.
    • Для именования запрещены:

    • транслит,
    • неуместные сокращения.
  • React

  • Объект контекста CurrentUserContext экспортируется из отдельного файла директории contexts.
  • Разметка портирована в JSX:
    • Разметка заключена в ( );
    • Разметка вынесена в соответствующие ей компоненты.
  • Компоненты:
    • Хуки не используются внутри условных блоков;
    • Хуки вызываются в основной функции компонента;
    • При использовании классовых компонентов эффекты описаны внутри методов жизненного цикла компонента.
    • Компоненты Main и Card подписаны на контекст CurrentUserContext.
    • Выполнено поднятие стейта из компонент Main и Card.
    • В компонент App внедрён контекст через CurrentUserContext.Provider.
    • В корневом компоненте App создана стейт-переменная currentUser. Она используется в качестве значения для провайдера контекста.
    • Компоненты модальных окон содержат только обработчики сабмита формы. Остальные обработчики, например handleUpdateUser, описаны в компоненте App.
    • Запросы к API описаны внутри компонента App.
  • Запрос к API за информацией о пользователе и массиве карточек выполняется единожды, при монтировании.
  • Все стейт-переменные из брифа созданы и определены внутри указанного в брифе компонента.
  • Начальное состояние стейт-переменных содержит корректный тип данных.
  • Функциональность из брифа реализована:
    • На странице отрисовывается информация о пользователе и карточки;
    • Модальные окна открываются при нажатии на соответствующий элемент интерфейса;
    • Модальные окна закрываются при нажатии на иконку закрытия.
    • Работа модальных окон настроена: есть возможность редактирования аватара и профиля, добавления новой карточки.
    • В форму редактирования профиля подставляются текущие данные.
    • Реализовано добавление/удаление лайка.
    • Реализовано удаление собственной карточки.
    • Все локальные значения корректно обновляются.

Работа отклоняется от проверки

  • При сборке или запуске проекта возникают ошибки.
  • Разметка не портирована в JSX.
  • Часть функциональности не реализована: контекст или поднятие стейта не выполнены. Компоненты модальных окон не созданы.
  • Работа содержит вопросы или просьбы о помощи к ревьюеру.
  • На повторных итерациях не исправлены критические замечания.