Skip to content

[Epic] Fix all frontend ESLint warnings — 0 warnings across the UI project #30977

Description

@ShaileshParmar11

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.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status
No status
Status
In Progress 🏗️

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions