# @mattermost/eslint-plugin An ESLint plugin containing the configuration used by Mattermost as well as support for custom rules specific to the Mattermost code base. ## Custom Rules ### no-dispatch-getstate Prevents passing a [redux](https://redux.js.org/) store's `getState` into its `dispatch` as an unnecessary second argument. We started doing this accidentally at some point because of a misunderstanding about how [redux-thunk](https://github.com/reduxjs/redux-thunk) worked, so this stops anyone from making that same mistake again. Examples of **incorrect** code for this rule: ```javascript export function someAction() { return (dispatch, getState) => { dispatch(doSomething(), getState); }; } ``` Examples of **correct** code for this rule: ```javascript export function someAction() { return (dispatch) => { dispatch(doSomething()); }; } ``` ### use-external-link Ensures that any link which opens a URL outside of Mattermost using `target="_blank"` uses the `ExternalLink` component. Examples of **incorrect** code for this rule: ```javascript export function SomeLink() { return ( ); } ``` Examples of **correct** code for this rule: ```javascript import ExternalLink from 'components/external_link'; export function SomeLink() { return ; } ```