This commit is contained in:
bakhirev 2026-09-05 18:40:51 +03:00
parent ba75120294
commit 1845c3a49e
6 changed files with 3540 additions and 8439 deletions

View file

@ -1,50 +0,0 @@
{
"plugins": [
"react",
"import"
],
"extends": [
"airbnb-typescript",
"plugin:react/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "./tsconfig.json",
"sourceType": "module",
"createDefaultProgram": true
},
"rules": {
"linebreak-style": [
"error",
"unix"
],
"react/jsx-sort-props": [
"error",
{
"noSortAlphabetically": true,
"ignoreCase": true,
"callbacksLast": true,
"shorthandLast": false,
"reservedFirst": [
"key"
]
}
],
"react/jsx-max-props-per-line": [
"error",
{
"maximum": 1,
"when": "always"
}
],
"react/jsx-pascal-case": [
"error"
]
},
"ignorePatterns": [
"ext/**",
"node_modules/**",
"src/**/*.cjs",
"src/setupProxy.js"
]
}

View file

@ -1,10 +1,39 @@
{
"extends": [
"stylelint-config-standard"
],
"plugins": [
"stylelint-order",
"stylelint-group-selectors",
"stylelint-force-selector-name-prefix"
"@stylistic/stylelint-plugin"
],
"customSyntax": "postcss-scss",
"rules": {
"alpha-value-notation": null,
"block-no-empty": null,
"color-function-notation": null,
"custom-property-empty-line-before": null,
"custom-property-pattern": null,
"declaration-block-no-duplicate-properties": null,
"declaration-block-no-redundant-longhand-properties": null,
"declaration-block-single-line-max-declarations": null,
"declaration-empty-line-before": null,
"font-family-name-quotes": null,
"import-notation": null,
"keyframe-selector-notation": null,
"keyframes-name-pattern": null,
"media-feature-range-notation": null,
"no-duplicate-selectors": null,
"property-no-vendor-prefix": null,
"rule-empty-line-before": null,
"selector-max-class": null,
"selector-max-compound-selectors": null,
"selector-no-qualifying-type": null,
"selector-pseudo-element-colon-notation": null,
"shorthand-property-no-redundant-values": null,
"value-no-vendor-prefix": null,
"@stylistic/block-opening-brace-space-before": null,
"@stylistic/declaration-block-semicolon-newline-after": null,
"@stylistic/string-quotes": null,
"selector-id-pattern": [
"^[a-z0-9-]+$",
{
@ -18,35 +47,18 @@
}
],
"value-keyword-case": "lower",
"string-quotes": "single",
"selector-max-compound-selectors": 1,
"selector-max-attribute": 1,
"selector-max-class": 2,
"comment-no-empty": true,
"block-no-empty": true,
"no-empty-first-line": true,
"@stylistic/no-empty-first-line": true,
"selector-attribute-quotes": "always",
"block-opening-brace-space-before": "always",
"declaration-block-semicolon-newline-after": "always",
"selector-no-qualifying-type": true,
"selector-no-vendor-prefix": true,
"declaration-block-single-line-max-declarations": 1,
"declaration-block-no-duplicate-properties": true,
"shorthand-property-no-redundant-values": true,
"color-no-invalid-hex": true,
"unit-no-unknown": true,
"length-zero-no-unit": true,
"value-no-vendor-prefix": true,
"number-max-precision": 2,
"function-name-case": "lower",
"color-hex-case": "upper",
"@stylistic/color-hex-case": "upper",
"color-hex-length": "long",
"font-family-name-quotes": "always-unless-keyword",
"plugin/stylelint-group-selectors": true,
"plugin/stylelint-force-selector-name-prefix": {
"afterPath": "pages",
"separator": "kebab-case"
},
"order/order": [
[
"custom-properties",

96
eslint.config.mjs Normal file
View file

@ -0,0 +1,96 @@
import js from '@eslint/js';
import globals from 'globals';
import react from 'eslint-plugin-react';
import reactHooks from 'eslint-plugin-react-hooks';
import tseslint from 'typescript-eslint';
export default tseslint.config(
{
ignores: [
'ext/**',
'node_modules/**',
'src/**/*.cjs',
'src/setupProxy.js',
'src/vite-env.d.ts',
'build/**',
'dist/**',
],
},
js.configs.recommended,
...tseslint.configs.recommended,
{
files: ['src/**/*.{ts,tsx,js,jsx}'],
linterOptions: {
reportUnusedDisableDirectives: 'off',
},
plugins: {
react,
'react-hooks': reactHooks,
},
languageOptions: {
parser: tseslint.parser,
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
ecmaFeatures: {
jsx: true,
},
},
globals: {
...globals.browser,
},
},
settings: {
react: {
version: 'detect',
},
},
rules: {
...react.configs.flat.recommended.rules,
...reactHooks.configs.recommended.rules,
'linebreak-style': [
'error',
'unix',
],
'react/jsx-sort-props': [
'error',
{
noSortAlphabetically: true,
ignoreCase: true,
callbacksLast: true,
requiredFirst: true,
reservedFirst: true,
shorthandLast: false
},
],
'react/jsx-max-props-per-line': [
'error',
{
maximum: 1,
when: 'always',
},
],
'react/jsx-pascal-case': [
'error',
],
'react/react-in-jsx-scope': 'off',
'react/prop-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-unsafe-function-type': 'off',
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/no-wrapper-object-types': 'off',
'no-useless-escape': 'off',
'prefer-const': 'off',
'no-constant-binary-expression': 'off',
'no-unsafe-optional-chaining': 'off',
'no-empty': 'off',
'no-constant-condition': 'off',
'no-unused-private-class-members': 'off',
'no-prototype-builtins': 'off',
'no-control-regex': 'off',
'react-hooks/rules-of-hooks': 'off',
'react-hooks/exhaustive-deps': 'off',
},
},
);

11747
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -8,8 +8,7 @@
"mobx-react-lite": "^4.1.1",
"react": "^19.2.8",
"react-dom": "^19.2.8",
"react-router-dom": "^6.8.0",
"sass": "^1.57.1"
"react-router-dom": "^6.8.0"
},
"scripts": {
"dev": "vite --port 3006",
@ -34,21 +33,25 @@
]
},
"devDependencies": {
"@eslint/js": "^9.39.5",
"@stylistic/stylelint-plugin": "^3.1.3",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.7",
"@typescript-eslint/eslint-plugin": "^5.49.0",
"@typescript-eslint/parser": "^5.49.0",
"@typescript-eslint/eslint-plugin": "^8.69.0",
"@typescript-eslint/parser": "^8.69.0",
"@vitejs/plugin-react": "^4.7.0",
"eslint": "8.22.0",
"eslint-config-airbnb-typescript": "^17.0.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-react": "^7.32.1",
"eslint-plugin-react-hooks": "^4.6.0",
"stylelint": "^14.16.1",
"stylelint-group-selectors": "^1.0.9",
"stylelint-order": "^6.0.1",
"typescript": "^4.9.5",
"eslint": "^9.39.5",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^5.2.0",
"globals": "^16.4.0",
"postcss-scss": "^4.0.9",
"prettier": "^3.9.6",
"sass": "^1.57.1",
"stylelint": "^16.26.1",
"stylelint-config-standard": "^35.0.0",
"stylelint-order": "^7.0.1",
"typescript": "^5.9.3",
"typescript-eslint": "^8.69.0",
"vite": "^6.3.5",
"vitest": "^3.2.4"
}

View file

@ -21,7 +21,6 @@
"experimentalDecorators": true,
"jsx": "react-jsx",
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true,
"alwaysStrict": true,
"baseUrl": "src"
},