ESLint lint rule to enforce function components in React
MIT License
Bot releases are hidden (Show)
Published by tatethurston about 1 year ago
Adds ESLint's new configuration system, flat config
. If you're using the new flat config:
eslint.config.js
:
import eslint from "@eslint/js";
import reactRecommended from "eslint-plugin-react/configs/recommended.js";
import preferFC from "eslint-plugin-react-prefer-function-component/config";
export default [
{ files: ["**/*.{js,jsx}"] },
eslint.configs.recommended,
reactRecommended,
preferFC.configs.recommended,
];
Full Changelog: https://github.com/tatethurston/eslint-plugin-react-prefer-function-component/compare/v3.2.0...v3.3.0
Published by tatethurston about 1 year ago
The plugin's recommended configuration has been fixed, so plugins
can be dropped from your .eslintrc
when using the recommended settings:
module.exports = {
- plugins: ["react-prefer-function-component"],
extends: ["plugin:react-prefer-function-component/recommended"],
};
Thanks @alecmev!
Full Changelog: https://github.com/tatethurston/eslint-plugin-react-prefer-function-component/compare/v3.1.0...v3.2.0
Published by tatethurston almost 2 years ago
New option: allowJsxUtilityClass
. This configuration option permits JSX utility classes: classes that have methods that return JSX but are not themselves components (they do not extend from a Component class or have a render method).
The following is now permitted when enabling this configuration option:
class Foo {
getBar() {
return <Bar />;
}
}
Thanks noahm for the contribution!
Full Changelog: https://github.com/tatethurston/eslint-plugin-react-prefer-function-component/compare/v3.0.0...v3.1.0
Published by tatethurston over 2 years ago
class
components that extend the Component
class, even if they do not use any JSX. Now errors on manager, business logic, and other renderless class
components that extend Component
. Previously the below was not caught:class TimerComponent extends React.Component {
/// ...
componentWillMount() {
this.startTimer();
}
componentWillUnmount() {
this.stopTimer();
}
render() {
null;
}
}
Thanks @wo1ph for the improvements!
Full Changelog: https://github.com/tatethurston/eslint-plugin-react-prefer-function-component/compare/v2.0.0...v3.0.0
Published by tatethurston over 2 years ago
createClass
from React has been dropped. Usage of createClass
will no longer be detected.class
. Previously the below was not caught:import Document from "next/document";
class MyDocument extends Document {
render() {
<>...</>;
}
}
Full Changelog: https://github.com/tatethurston/eslint-plugin-react-prefer-function-component/compare/v1.0.0...v2.0.0
Published by tatethurston over 2 years ago
createClass
from React has been dropped. Usage of createClass
will no longer be detected.class
. Previously the below was not caught:import Document from "next/document";
class MyDocument extends Document {
render() {
<>...</>;
}
}
Full Changelog: https://github.com/tatethurston/eslint-plugin-react-prefer-function-component/compare/v1.0.0...v2.0.0-rc1
Published by tatethurston over 2 years ago
No API changes. This library will now follow semantic versioning.
Full Changelog: https://github.com/tatethurston/eslint-plugin-react-prefer-function-component/compare/v0.0.7...v1.0.0