fix(lint): fix react-hooks lint errors#804
Conversation
- exhaustive deps - immutibality - set state in useEffect
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request focuses on enhancing the stability and performance of the frontend by resolving various React Hook linting issues. The changes ensure that components correctly manage their dependencies, preventing potential bugs related to stale closures and optimizing rendering cycles. This systematic cleanup contributes to a more robust and efficient application. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request effectively resolves numerous react-hooks/exhaustive-deps and react-hooks/immutability linting errors across the application. The changes primarily involve wrapping functions in useCallback, memoizing derived values with useMemo, and adding missing dependencies to hooks. A notable improvement is the refactoring in ActivityReportLapTable.tsx to use a pure function for data processing, which correctly handles immutability.
I've added a couple of suggestions regarding the pattern used for synchronizing props with internal component state. While the current implementation works, using a more conventional useEffect or a key prop could enhance predictability and maintainability.
Description
Fixes all react-hooks/exhaustive-deps and react-hooks/immutability errors from eslint. These come from missing dependencies in useEffects or useCallbacks. This improves performance by preventing rerenders.
Related Issue
PR type [ ] Issue [x] New Feature [ ] Documentation
Linked Issue: #795
Checklist
Please check all that apply:
pnpm run validate(especially for Frontend).en) translation file (if applicable).rls_policies.sqlfor any new user-specific tables.