{
	"root": true,
	"extends": [
		"airbnb",
    "plugin:@typescript-eslint/recommended",
		"prettier",
		"plugin:storybook/recommended"
	],
	"env": {
		"browser": true,
		"node": true,
		"es6": true,
		"jest": true,
		"jasmine": true
	},
	"parser": "@typescript-eslint/parser",
	"plugins": [
		"import",
		"react",
		"react-hooks",
		"@typescript-eslint"
	],
	"parserOptions": {
		"ecmaVersion": 6,
		"sourceType": "module",
		"ecmaFeatures": {
			"jsx": true,
			"experimentalObjectRestSpread": true
		}
	},
	"rules": {
		"arrow-parens": ["error", "as-needed"],
		"class-methods-use-this": 0,
		"no-multi-spaces": ["error", { "exceptions": { "ImportDeclaration": true } }],
		"indent": ["error", "tab", { "SwitchCase": 1 }],
		"no-tabs": 0,
		"no-console": 0,
		"no-underscore-dangle": 0,
		"no-mixed-operators": ["error", { "allowSamePrecedence": true }],
		"no-promise-executor-return": 0,
		"object-curly-newline": ["error", { "consistent": true }],
		"react/jsx-indent": [2, "tab"],
		"react/jsx-indent-props": [2, "tab"],
		"react/prop-types": 0,
		"react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx", ".ts", ".tsx"] }],
		"react/sort-comp": [1, {
				"order": [
					"static-methods",
					"lifecycle",
					"everything-else",
					"render"
				]
		}],
		"react/jsx-one-expression-per-line": 0,
		"react-hooks/rules-of-hooks": "error",
		"react/require-default-props": [2, { "ignoreFunctionalComponents": true }],
		"import/prefer-default-export": 0,
		"react/function-component-definition": ["error", {
			"namedComponents": "arrow-function",
			"unnamedComponents": "arrow-function"
		}],
		"import/no-extraneous-dependencies": 0,
		"import/no-unresolved": 0,
		"import/extensions": 0,
		"jsx-a11y/anchor-is-valid": ["error", {
				"components": [],
				"specialLink": [],
			"aspects": ["noHref", "invalidHref", "preferButton"]
		}],
		"@typescript-eslint/explicit-function-return-type": "off",
		"no-empty-function": "off",
		"@typescript-eslint/no-empty-function": ["error", { "allow": ["arrowFunctions"] }],
		"spaced-comment": ["error", "always", { "markers": ["/"] }],
		"@typescript-eslint/triple-slash-reference": "off",
		"no-use-before-define": "off"
	}
}
