frost web — это интерфейс API Frost от Po.et для управления учетными записями и токенами API.
Все новые функции должны быть объединены в основную функцию с помощью переключателя функций, который по умолчанию отключен. После того, как функция будет достаточно протестирована, переключатель можно будет удалить.
Это компоненты ReactJS и стили Sass. Архитектура компонентов вдохновлена Atomic Design Брэда Фроста.
Большинство компонентов имеют один связанный файл .scss
с тем же именем. Есть также несколько глобальных стилей, живущих в components/styles
. Стили объединяются и загружаются с помощью style-loader
, css-loader
, autoprefixer
, postcss-loader
и sass-loader
Webpack.
Компоненты разделены на атомы, молекулы, организмы, страницы и модальные окна. Эмпирическое правило таково: меньшее не должно использовать большее. Это означает, что атомы не должны зависеть от других компонентов, молекулы могут зависеть только от атомов и так далее.
По историческим причинам страницы в настоящее время находятся вне /components
, но в будущем они будут перемещены в эту папку.
Корневой компонент — компоненты/Root.tsx, а ReactDOM.render вызывается в index.tsx.
Здесь живут редьюсеры React Redux. У них вообще не должно быть никакой логики, они просто получают сообщения и обновляют хранилище redux.
Здесь обитают саги Redux-Saga. Большая часть логики приложения, особенно все побочные эффекты, должна быть только в сагах и только в сагах.
Все изображения, используемые приложением. Они предоставляются как static readonly
, с использованием плагина File Loader Webpack для их загрузки и объединения.
Здесь находятся расширения собственных типов JavaScript.
В основном мы следуем StandardJS и Руководству по стилю JS от AirBnB. Мы пока не применяем стили автоматически.
Некоторые правила:
var
запрещено, и по возможности следует избегать использования let
— всегда используйте вместо него const
.