Epic: Fix all frontend ESLint warnings
Bring the entire openmetadata-ui project to 0 ESLint warnings / 0 errors across src/** and playwright/** (~9,270 pre-existing warnings resolved).
Delivered as 10 stacked PRs, one per rule-category, so each is independently reviewable (instead of one 1,400-file PR). Each PR is based on the previous one in the stack.
Approach
Every change is behavior-preserving and verified per PR (git-stash ESLint before/after diff + tsc regression check + prettier/tw-guard/check-i18n). Real fixes where safe; eslint-disable-with-reason where a genuine fix would risk bugs (e.g. react-hooks/exhaustive-deps — auto-fixing deps causes infinite renders/stale closures — and sonarjs complexity). i18next is turned off for test/mock files (no user-facing strings) via the existing test-file config override.
Sub-tasks — 10 stacked PRs (merge bottom-up, in order)
⚠️ These are stacked PRs: PR1 merges into main first, then GitHub auto-retargets PR2 to main, and so on. They are independently reviewable but must merge in order — a strictly-independent split would conflict (later rules touch files earlier rules changed).
🔀 Reorder note: the two suppression-heavy rules — sonarjs complexity (~840 suppressed) and exhaustive-deps (~1,692 suppressed) — were moved to the end of the stack (positions 9–10) so the low-risk real fixes merge first and the suppression waves can be reviewed/revisited last. During that reorder the original i18n/playwright PRs (#30996, #30998) were auto-closed by GitHub and re-created as #31031 and #31032 with the correct bases.
Notes for reviewers
exhaustive-deps (~1,692) and complexity (~840) are suppressed with reasons, not refactored — please spot-check that no suppressed dep is a latent bug. Each PR description has a "why suppressed" section.
- The i18n PR adds new
en-us.json keys that are English placeholders in the 19 other locales — real translation is follow-up.
- No new tests (pure lint cleanup); the a11y PR also folds in a small DRY keyboard-handler helper.
Epic: Fix all frontend ESLint warnings
Bring the entire
openmetadata-uiproject to 0 ESLint warnings / 0 errors acrosssrc/**andplaywright/**(~9,270 pre-existing warnings resolved).Delivered as 10 stacked PRs, one per rule-category, so each is independently reviewable (instead of one 1,400-file PR). Each PR is based on the previous one in the stack.
Approach
Every change is behavior-preserving and verified per PR (git-stash ESLint before/after diff +
tscregression check + prettier/tw-guard/check-i18n). Real fixes where safe;eslint-disable-with-reason where a genuine fix would risk bugs (e.g.react-hooks/exhaustive-deps— auto-fixing deps causes infinite renders/stale closures — andsonarjscomplexity).i18nextis turned off for test/mock files (no user-facing strings) via the existing test-file config override.Sub-tasks — 10 stacked PRs (merge bottom-up, in order)
Notes for reviewers
exhaustive-deps(~1,692) and complexity (~840) are suppressed with reasons, not refactored — please spot-check that no suppressed dep is a latent bug. Each PR description has a "why suppressed" section.en-us.jsonkeys that are English placeholders in the 19 other locales — real translation is follow-up.