-
Notifications
You must be signed in to change notification settings - Fork 8.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
upgrade eslint-plugin-react-hooks from 2.3.0 to 4.0.4 #68295
Conversation
Pinging @elastic/apm-ui (Team:apm) |
Pinging @elastic/ingest-management (Team:Ingest Management) |
Makes sense to me! Tagging a few folks who had it turned off in their plugins. Anybody object or have a legit reason this shouldn't be turned on? |
id={useMemo(() => htmlIdGenerator()(), [])} | ||
key={useMemo(() => htmlIdGenerator()(), [])} | ||
id={ | ||
/* eslint-disable-next-line react-hooks/rules-of-hooks */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is the rule here? That all hooks be called from the root of the component and its value referenced here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Nice!
@stacey-gammon When the rules were originally added they revealed a number of violations in some of our plugins. We have issues for tracking and fixing these violations but haven't prioritized them yet. |
@@ -109,10 +109,12 @@ export const TransactionDistribution: FunctionComponent<Props> = ( | |||
bucketIndex, | |||
} = props; | |||
|
|||
/* eslint-disable-next-line react-hooks/exhaustive-deps */ | |||
const formatYShort = useCallback(getFormatYShort(transactionType), [ | |||
transactionType, | |||
]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the violation here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just one clarifying question. APM changes lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ML/Transform changes LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
infra
plugin changes LGTM, thanks for updating! ❤️
@cjcenizal Would you be willing to approve this change? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Security LGTM. Thank you @oatkiller 💪
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looked at App code only. Excludes look fine for me.
💚 Build SucceededHistory
To update your PR or re-run it, just comment with: |
* updates `eslint-plugin-react-hooks` from `v2.3.0` to `v4.0.4`. * Disable rules on failing lines
Thanks for the flag, @stacey-gammon ... #68453 re-enables the rule for Canvas. |
It makes sense to me! |
* master: (57 commits) Add app arch team as owner of datemath package (elastic#66880) [Observability] Landing page for Observability (elastic#67467) [SIEM] Fix timeline buildGlobalQuery (elastic#68320) Optimize saved objects getScopedClient and HTTP API (elastic#68221) [Maps] Fix mb-style interpolate style rule (elastic#68413) update script to always download node (elastic#68421) [SECURITY SOLEIL] Fix selection of event type when no siem index signal created (elastic#68291) [DOCS] Adds note about configuring File Data Visualizer (elastic#68407) [DOCS] Adds link from remote clusters to index patterns (elastic#68406) [QA] slack notify on failure (elastic#68126) upgrade eslint-plugin-react-hooks from 2.3.0 to 4.0.4 (elastic#68295) moving to jira to a gold license (elastic#67178) [DOCS] Revises doc on adding data (elastic#68038) [APM] Add ThemeProvider to support dark mode (elastic#68242) Make welcome screen disabling first action in loginIfPrompted (elastic#68238) [QA] Code coverage: unskip tests, collect tests results, exclude bundles from report (elastic#64477) [ML] Functional tests - disable flaky regression and classification creation test [Alerting] change eventLog ILM requests to absolute URLs (elastic#68331) Report page load asset size (elastic#66224) [SIEM][CASE] Change SIEM to Security (elastic#68365) ...
Summary
This PR updates
eslint-plugin-react-hooks
fromv2.3.0
tov4.0.4
. Any lint failures resulting from this are being ignored using comments.See
eslint-plugin-react-hooks
's CHANGELOG.mdBackground
The rules of hooks are important to follow. These can be enforced using the
react-hooks
eslint plugin. Kibana uses this plugin, but the version is old. Many teams have disabled the rules in their code:The following plugins have 'exhaustive-deps' disabled:
es_ui_shared
kibana_react
kibana_utils
canvas
index_management
lens
ml
snapshot_restore
security_solution
(formerlysiem
)kibana_react
has disabledrules_of_hooks
as well.Perhaps the latest version will address some of the issues that original drove teams to disable the rules. See the
eslint-plugin-react-hooks
CHANGELOG.mdThe
security_solution
plugin would like to re-enable the rule only after upgrading to the latest major version.Related
eslint-plugin-react-hooks
's CHANGELOG.mdChecklist
Delete any items that are not applicable to this PR.
For maintainers