Files
Harrison HealeyandGitHub dff7b1d84c MM-69003 Update ESLint and related dependencies (#37039)
* Remove everything

* Re-add most ESLint plugins and run --fix

* Additional fixes

* Fix or disable linter warnings caused by require imports

* Fix how prop types for SearchResults are defined

* More additional fixes

* Update deprecated stylistic rule names

* Remove deprecated .eslintignore

* Update eslint-plugin-react-hooks

* Enable react-hooks/error-boundaries

* Fix react-hooks/static-components wherever possible

* Fix react-hooks/use-memo wherever possible

* Disable warnings for new rules and update comment

* Update eslint-plugin-no-only-tests

* Update eslint dependencies in E2E test packages

* Remove now-uneeded patch

* Address Coderabbit feedback

* Actually fix inverted tooltip logic
2026-06-15 13:57:41 -03:00
..

@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 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 worked, so this stops anyone from making that same mistake again.

Examples of incorrect code for this rule:

export function someAction() {
    return (dispatch, getState) => {
        dispatch(doSomething(), getState);
    };
}

Examples of correct code for this rule:

export function someAction() {
    return (dispatch) => {
        dispatch(doSomething());
    };
}

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:

export function SomeLink() {
    return (
        <a
            href="https://example.com"
            target="_blank"
            rel="noopener noreferrer"
        />
    );
}

Examples of correct code for this rule:

import ExternalLink from 'components/external_link';

export function SomeLink() {
    return <ExternalLink href="https://example.com"/>;
}