Enable the React Compiler lint rule and bump dependencies#128
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The build already runs the React Compiler, but a component that breaks the Rules of React bails out of optimization silently: no error, just a missed speedup. oxlint 1.70 adds
react/react-compiler, which runs the compiler in lint-only mode and reports those bailouts as errors, so lint now enforces what the compiler needs, including the existing convention against hand-writtenuseMemo/useCallback.Turning the rule on surfaced ten violations, fixed here:
useMemos the compiler couldn't preserve (their dependency was a fresh array each render); the compiler memoizes instead.useStatestore anduseEffectEvent, keeping the global key listener stable without reading refs during render.onOpenChangehandler, avoiding a synchronoussetStatecascade.Also bumps dependencies, most notably the oxc toolchain (oxlint 1.70 / oxfmt 0.55) that ships the rule, plus minor and patch updates to Base UI, tRPC, lucide-react, openai, and the TanStack packages.