import js from '@eslint/js'; import react from 'eslint-plugin-react'; import reactHooks from 'eslint-plugin-react-hooks'; import jsxA11y from 'eslint-plugin-jsx-a11y'; import prettier from 'eslint-config-prettier'; export default [ { ignores: [ '**/node_modules/**', '**/build/**', '**/dist/**', '**/coverage/**', '**/*.scss', '**/*.css', '**/*.json', ], }, { files: ['**/*.{js,jsx,mjs}'], languageOptions: { ecmaVersion: 2024, sourceType: 'module', parserOptions: { ecmaFeatures: { jsx: true } }, globals: { window: 'readonly', document: 'readonly', navigator: 'readonly', console: 'readonly', localStorage: 'readonly', fetch: 'readonly', setTimeout: 'readonly', setInterval: 'readonly', clearInterval: 'readonly', clearTimeout: 'readonly', Image: 'readonly', FileReader: 'readonly', Blob: 'readonly', URL: 'readonly', TextEncoder: 'readonly', TextDecoder: 'readonly', DOMParser: 'readonly', CustomEvent: 'readonly', AbortController: 'readonly', btoa: 'readonly', atob: 'readonly', process: 'readonly', __dirname: 'readonly', __filename: 'readonly', module: 'readonly', require: 'readonly', }, }, plugins: { react, 'react-hooks': reactHooks, 'jsx-a11y': jsxA11y }, settings: { react: { version: 'detect' } }, rules: { ...js.configs.recommended.rules, ...react.configs.recommended.rules, ...react.configs['jsx-runtime'].rules, ...reactHooks.configs.recommended.rules, 'react/prop-types': 'off', 'react/react-in-jsx-scope': 'off', 'react/jsx-uses-react': 'off', 'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }], 'no-console': ['warn', { allow: ['warn', 'error'] }], 'prefer-const': 'warn', 'no-var': 'error', }, }, prettier, ];