refactor: address frontend review feedback
Frontend verify / commits (pull_request) Successful in 29s
Frontend verify / security (pull_request) Successful in 9s
Frontend verify / verify (pull_request) Successful in 8m54s
Frontend verify / commits (push) Skipped
Frontend verify / security (push) Successful in 12s
Frontend verify / verify (push) Successful in 9m59s
Frontend verify / commits (pull_request) Successful in 29s
Frontend verify / security (pull_request) Successful in 9s
Frontend verify / verify (pull_request) Successful in 8m54s
Frontend verify / commits (push) Skipped
Frontend verify / security (push) Successful in 12s
Frontend verify / verify (push) Successful in 9m59s
This commit was merged in pull request #43.
This commit is contained in:
@@ -26,6 +26,9 @@ JSX siblings и вокруг многострочных declarations/control-flo
|
||||
сложные union types. Generated artifacts не форматируй вручную.
|
||||
URL, строковые/template/regex literals и комментарии исключены из `max-len`;
|
||||
это исключение для содержимого, а не повод собирать длинные expressions.
|
||||
Однострочный JSX не требует обрамляющих скобок; многострочный — требует.
|
||||
`unicorn/no-null` отключён: API DTO, React refs и Mantine используют `null`.
|
||||
Сохраняй различие `null`/`undefined` из контракта вместо массовых suppressions.
|
||||
CSS и Markdown также держи в 80 колонках там, где это не ломает данные/ссылки.
|
||||
|
||||
Review проверяет то, чего синтаксис не доказывает:
|
||||
|
||||
+15
-1
@@ -13,7 +13,13 @@ Mantine component и общую тему. Для выпадающего выбо
|
||||
|
||||
Icons импортируй из `@wealthledger/icons`; геометрия, SVG assets и animation
|
||||
lifecycle принадлежат этому пакету. Domain/category lookup возвращает параметры
|
||||
иконки из model сущности. SVG декоративны по умолчанию; доступное имя action
|
||||
иконки из model сущности. Каждый SVG хранится цельным декларативным
|
||||
компонентом: не разбивай path-строки и не собирай геометрию в runtime.
|
||||
Русские category names из API — данные для нормализованного сопоставления,
|
||||
не ключи реестра иконок; неизвестные/переименованные категории имеют fallback.
|
||||
Известные названия банков принадлежат enum `BankName` в bank-card model;
|
||||
свободный ввод пользовательского названия остаётся строкой.
|
||||
SVG декоративны по умолчанию; доступное имя action
|
||||
принадлежит кнопке. Meaningful icon получает `aria-hidden={false}`, `role="img"`
|
||||
и доступное имя. Приложение и Storybook подключают CSS пакета.
|
||||
|
||||
@@ -68,6 +74,14 @@ JSX props получают ссылки на функции, включая `onC
|
||||
адаптации UI inputs выноси в `shared/lib`, передавая явные аргументы. Domain
|
||||
преобразование остаётся в model своего owner; shared не импортирует entities/pages.
|
||||
Closure над состоянием, mutations и refs является действием VM, а не shared helper.
|
||||
|
||||
VM собирает связные предметные hooks, когда внутри смешиваются независимые
|
||||
сценарии. Например, `useOpeningDateField` владеет draft/date parsing и событиями
|
||||
даты, `usePaymentSystemField` — выбором платёжной системы. Каждый такой hook
|
||||
возвращает данные и действия своей ответственности, VM объединяет их для view.
|
||||
Не группируй несвязанные функции только по префиксу `on*` и не создавай
|
||||
passthrough hook над одним вызовом ради формального дробления.
|
||||
|
||||
Render-helper замени самостоятельным presentation component у того же owner.
|
||||
|
||||
Отдельный state/section с самостоятельной responsibility выноси в
|
||||
|
||||
Reference in New Issue
Block a user