Заявка на услуги (#18)
Tests / frontend-test (push) Successful in 1m15s

Co-authored-by: gorbenko.pavel <gorbenko.pavel@tansu.kz>
Reviewed-on: http://git.tnsu.kz/timur.gorodetskiy/request-portal/pulls/18
This commit was merged in pull request #18.
This commit is contained in:
2026-09-01 12:48:41 +00:00
parent ddce6b4f25
commit cc2efd8771
56 changed files with 2557 additions and 97 deletions
+33
View File
@@ -11,7 +11,24 @@ module.exports = {
'ecmaVersion': 2018,
'sourceType': 'module'
},
plugins: ['react-hooks'],
rules: {
// RATIONALE: Хук, вызванный не на каждом рендере (например, useMemo
// ПОСЛЕ раннего `return` для loading/error), ломает порядок
// хуков и валит компонент в рантайме с React #310 «rendered
// more hooks than during the previous render» — ошибка,
// которую видно только при открытии конкретного экрана.
// Правило ловит это на сборке. eslint-plugin-react-hooks
// давно в зависимостях, а в коде есть eslint-disable для
// exhaustive-deps — то есть правила подразумевались, но
// включить их в конфиг забыли (поймали на ServiceRequestView).
'react-hooks/rules-of-hooks': 2,
// Зависимости эффектов — ВЫКЛЮЧЕНО намеренно. Правило полезное, но на
// текущем коде даёт 16 предупреждений (в основном намеренно опущенные
// onCodeLoaded/submit во всех формах). Шум такого объёма в каждой сборке
// приучает не читать варнинги вовсе — включать имеет смысл вместе с
// разбором этих мест, отдельной задачей, а не заодно с фиксом падения.
'react-hooks/exhaustive-deps': 0,
// Prevent usage of the JavaScript null value, while allowing code to access existing APIs that may require null. https://www.npmjs.com/package/@rushstack/eslint-plugin
'@rushstack/no-new-null': 1,
// Require Jest module mocking APIs to be called before any other statements in their code block. https://www.npmjs.com/package/@rushstack/eslint-plugin
@@ -290,6 +307,22 @@ module.exports = {
// Rationale to disable: !!{}
'no-extra-boolean-cast': 0,
// ====================================================================
// eslint-plugin-react-hooks (плагин подключён профилем
// @microsoft/eslint-config-spfx/lib/profiles/react, но правил он не задаёт)
// ====================================================================
// RATIONALE: Хуки нельзя звать условно/в циклах — иначе React
// перепутает состояние между рендерами.
'react-hooks/rules-of-hooks': 2,
// RATIONALE: Неполный массив зависимостей useEffect/useCallback/
// useMemo — это устаревшее замыкание: эффект продолжает
// видеть старые пропсы и state. Держим предупреждением:
// там, где отступление осознанное (например, эффект
// должен сработать только на смену id, а не на каждое
// изменение колбэка), рядом стоит
// // eslint-disable-next-line react-hooks/exhaustive-deps
// с объяснением причины.
'react-hooks/exhaustive-deps': 1,
// ====================================================================
// @microsoft/eslint-plugin-spfx
// ====================================================================
'@microsoft/spfx/no-require-ensure': 2,