You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR содержит два коммита: первый -- с правками html, css, js после ревью второго дз, второй -- непосредственно переписанный проект на React.
Чек-лист соответствия критериям:
Проект написан полностью на React. В проекте нет прямых обращений к DOM для рендера элементов, а всё взаимодействие с интерфейсом осуществляется через React-компоненты и хуки.
Код разбит на компоненты, компоненты вынесены в отдельные файлы / директории. Все элементы интерфейса распределены по отдельным компонентам (Cards, Modal, Intro, Header, Stats, Feedback, ScrollToTopButton), и каждый компонент хранится в своей папке внутри /src/components/.
В коде использованы модульные стили. Для каждого компонента применяются CSS-модули (ComponentName.module.css).
В коде использованы хуки. В компонентах, например в Modal.jsx, применяется хук useEffect, который используется для подписки на события клавиатуры и управления жизненным циклом компонента.
Также дополнительно были внесены следующие изменения:
Убраны кнопки «Подробнее», взамен модальное окно открывается по клику на фото как сотрудника, так и экспоната.
В модальных окнах были убраны кнопки «Закрыть», вместо них были добавлены крестики в правом верхнем углу окна.
В блоке Intro была добавлена кнопка «Отзывы» для скролла к разделу «Отзывы».
Добавлена кнопка скролла наверх.
В блоке Feedback был улучшен ввод отзыва в поле: при достижении границ формы текст переносится на следующую строку, добавлена опция переноса строки по кнопкам ctrl+enter и отправка отзыва по enter. Сами отзывы теперь также отображаются с переносами, если достигают границ экрана. Дополнительно отзыв можно удалить (добавлен крестик).
Улучшена адаптивность по сравнению с проектом на hmtl+css+js.
Читаемость и понятность кода
Хочу отметить использование синтаксиса React и JSX. Компоненты имеют осмысленные названия (Modal, Feedback, Cards), что сразу отражает их назначение. Логика разделена на небольшие функции с четкой ответственностью: управление состоянием через хуки, рендеринг через декларативный JSX. Однако в некоторых местах (например, в Cards.jsx) данные захардкожены внутри компонента, что немного затрудняет их модификацию. В любом случае, код легко воспринимается даже без глубокого знания контекста.
Отсутствие ошибок
В коде отсутствуют критические ошибки, синтаксис корректен, зависимости правильно подключены.
Модульность и переиспользуемость кода
Код демонстрирует отличную модульность: каждый компонент вынесен в отдельный файл, стили изолированы через CSS Modules. Логика данных (например, информация о сотрудниках и экспонатах) вынесена в отдельный файл modalsData.js. Компоненты Cards и Modal спроектированы для переиспользования с разными типами данных. Однако некоторые компоненты (например, Cards) содержат захардкоженные массивы, что снижает их гибкость.
Соответствие стандартам форматирования и кодирования
Код соответствует современным стандартам форматирования: используются ES6+ синтаксис, деструктуризация, стрелочные функции. Настроен ESLint с конфигурацией для React, что обеспечивает соблюдение стиля. Именование переменных и функций следует camelCase, компоненты названы с заглавной буквы. Стили организованы через CSS Modules, что соответствует принятым практикам изоляции стилей в React-приложениях.
Соответствие требованиям задания
Проект полностью соответствует всем критериям задания. Во-первых, он написан полностью на React без прямых DOM-манипуляций. Во-вторых, код разбит на логические компоненты с отдельными файлами. В-третьих, используются модульные стили через CSS Modules. В-четвертых, активно применяются хуки (useState, useEffect, useRef) для управления состоянием и побочными эффектами. Дополнительно реализованы современные практики: доступность, работа с localStorage, плавная прокрутка.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR содержит два коммита: первый -- с правками html, css, js после ревью второго дз, второй -- непосредственно переписанный проект на React.
Чек-лист соответствия критериям:
/src/components/.Также дополнительно были внесены следующие изменения: