refactor: align frontend ownership boundaries
Close audit gaps across API drift, query policy, UI, and tests.
This commit is contained in:
+8
-11
@@ -9,9 +9,8 @@
|
||||
- Публичный импорт слайса идёт через его `index.ts`.
|
||||
- Тесты лежат рядом с исходником как `*.test.tsx`.
|
||||
- Зависимости используют exact versions; не добавлять semver ranges.
|
||||
- Главный `*.view.tsx` страницы не содержит несколько state-компонентов:
|
||||
каждый state/section — отдельный `*.view.tsx` в `components/` (см. File roles).
|
||||
- Полный локальный gate: `npm run verify`. Pre-commit запускает staged formatting, OpenAPI check и FSD dependency checks; commit message должен следовать Conventional Commits.
|
||||
- Полный локальный gate: `npm run verify`. Pre-commit запускает staged formatting
|
||||
и FSD dependency checks; commit message должен следовать Conventional Commits.
|
||||
|
||||
## React component style
|
||||
|
||||
@@ -39,11 +38,9 @@ Mandatory review conventions:
|
||||
- `Component.types.ts` - props и локальные типы.
|
||||
- `Component.module.css` - локальные стили.
|
||||
|
||||
State-компоненты страницы не колоцируются в одном `*.view.tsx`. Каждый
|
||||
top-level state (loading, error, empty, loaded) и каждый именуемый section
|
||||
выносится в отдельный `*.view.tsx` в подпапку `components/`. Имя файла
|
||||
отражает state/section: `AccountOperationsPageLoaded.view.tsx`,
|
||||
`AccountOperationsPageLoading.view.tsx`, `AccountOperationsPageError.view.tsx`.
|
||||
Контейнер (`AccountOperationsPage.tsx`) импортирует их из `./components` и
|
||||
выбирает нужный по `viewModel.state`. Нельзя держать несколько state components
|
||||
внутри одного файла view — это mandatory review convention.
|
||||
Самостоятельный top-level state или именуемый section обычно выносится в
|
||||
соседний `*.view.tsx`, когда у него есть отдельная responsibility, reuse либо
|
||||
change cadence или он скрывает principal component. Небольшой tightly-coupled
|
||||
renderer остаётся рядом с parent. Предпочтительный flat pattern —
|
||||
`components/AccountOperationsPageLoaded.view.tsx` без отдельной директории,
|
||||
barrel, test и stylesheet для каждого компонента.
|
||||
|
||||
Reference in New Issue
Block a user