import eslint from '@eslint/js';
import tseslint from 'typescript-eslint';
import reactHooks from 'eslint-plugin-react-hooks';

import stylistic from '@stylistic/eslint-plugin';

export default tseslint.config(
  { ignores: ['node_modules/', 'dist/', 'build/', '.react-router/'] },
  eslint.configs.recommended,
  tseslint.configs.recommended,
  stylistic.configs.customize({
    indent: 2,
    semi: true,
    jsx: true,
    braceStyle: '1tbs',
    commaDangle: 'always-multiline',
    quoteProps: 'as-needed',
    arrowParens: true,
  }),
  reactHooks.configs.flat.recommended,
  {
    rules: {
      '@stylistic/jsx-one-expression-per-line': 'off',
      '@stylistic/multiline-ternary': 'off',
      'react-hooks/set-state-in-effect': 'off',
    },
  },
);
