-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Af 41 setup project fix #3
Af 41 setup project fix #3
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@remove-checksum Отлично👍
-
В папку assets можно добавить ещё одну папку images (assets/images).
-
Также предлагаю переименовать маршрут
15 <Route path="/user" element={<Landing />} />
в
15 <Route path="/profile" element={<Landing />} />
(packages/client/src/pages/index.tsx) -
Возможно следует сбросить поля и отступы добавив в головной файл стилей следующие строки:
* { margin: 0; padding: 0; box-sizing: border-box; }
(packages/client/src/app/app.module.css)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Отличная работа по базовой настройке проекта, ранее была согласована с членами команды.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Привет, по большому счету всё ок. Структура проекта выглядит хорошо.
При пр я посмотрел так же и немного вокруг изменений.
Кроме тех комментариев, которые прикреплены к коду ещё прошу обратить внимание на наличие
console.log
в коде. Советую не пропускать никаких консолей в основную ветку. Если надо что-то подебажить в консоли, стоит оставлять это в рабочей ветке..gitkeep
. Тут можно почитать про назначение gitkeep. По-хорошему они были нужны только для сохранения целостности шаблона проекта, в рабочем репозитории стоит от них избавиться. (Если и не на текущем этапе, то точно в моменты, когда в директориях появляются файлы)
Комментарии по самой структуре:
- предлагаю вам везде использовать
CamelCase
нейминг в названиях файлов и директорий. React компоненты именуются с его использованием. Более единообразно было бы использовать одну конвенцию нейминга во всем проекте - в вебе больше подходит нейминг
page
, чемscreen
для именования страниц, предлагаю использовать его - немного странно выглядит дир
game-screen
внутри дираcomponents
. По логике названия внутриcomponents
должны лежать компоненты страниц, а страницыgame-screen
вpages
я не увидел - в дополнение к предыдущим комментариям предлагаю переименовать
game-screen
в что-то более говорящее о назначении страницы, напримерgameMenu
илиgameLanding
и дальше использовать для компонентов этой страницы дир с таким же названием, чтобы можно было легко определить какие компоненты относятся к каким страницам
pages/gameMenu/index.tsx
components/gameMenu/header.tsx
components/gameMenu/menuItem.tsx
итд
@@ -1,6 +1,7 @@ | |||
import { ReactNode } from 'react' | |||
import { BrowserRouter } from 'react-router-dom' | |||
|
|||
/* eslint-disable react/display-name */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
eslint-disable
стоит выставлять только в самых крайних случаях, и даже в таких случаях стоит всегда дополнительно указывать комментариями, почему он проставлен и какие действия предпринимались, чтобы избежать игнора.
В данном случае ошибка, скорее всего, заключается в том, что имена реакт компонентов должны начинаться с большой буквы.
Если исправить нейминг component
, то так же откроется возможность указывать его дальше в JSX формате, те в стиле <WrappedComponent />
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Как указано в issue, плагин считает все анонимные функции, возвращающие jsx
, компонентами, и требует указать для них имя
jsx-eslint/eslint-plugin-react#597
Правило показывает ошибку для hoc и render props, считаю допустимым его отключить в edb9efe
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
линтовые правила лучше не отключать, если они мешают при каких-то корнер кейсах. В том же issue jsx-eslint/eslint-plugin-react#597 предлагается решение с
export const withRouter = (component: () => ReactNode) => function withRouter() {
return <BrowserRouter>{component()}</BrowserRouter>
}
Изменения
|
Давайте дальше вести работу в одном репозитории и разных ветках, а не в форках. Так будет намного удобнее переключаться между мейн веткой и рабочей веткой для прослеживания изменений. По изменениям:
Ещё по коду из того, что уже было влито, но хорошо бы поправить:
Можно вынести и поправить отдельно в друго ПР
|
Хорошо, что вы используете HOC'и, но не стоит из-за них усложнять код. Если hoc будет использоваться только в 1 файле, от него лучше избавиться. Более того, такой формат
|
👍 |
Дополнения к #1 AF-41
Новые зависимости
React
react-bulma-components
+bulma
+sass
(нужен для конфигурацииbulma
)Плоская структура папок
api
- api-клиентapp
- инициализация приложенияassets
components
features
- модули бизнес-логикиhocs
hooks
pages
store