Skip to content

feat(eslint): activate eslint-plugin-react-hooks for all React projects and optimize findings #10648

Description

@deleonio

Summary

  • Integration des eslint-plugin-react-hooks für alle React-Projekte im KoliBri-Monorepo
  • Optimierung der Findings durch Aktivierung der empfohlenen Regeln
  • Zentrale Konfiguration im @public-ui/eslint-config Paket

Details

Aktueller Zustand

  • Das Plugin eslint-plugin-react-hooks ist bereits in den Abhängigkeiten von @public-ui/eslint-config vorhanden (v7.1.1)
  • In der reactConfig() Funktion wird das Plugin bereits geladen, aber nur eine begrenzte Anzahl an Regeln ist aktiviert:
    • react-hooks/rules-of-hooks: error
    • react-hooks/exhaustive-deps: FEHLEND (wichtige Regel für Abhängigkeitsarrays)

Geplante Änderungen

  1. Aktivierung aller empfohlenen Regeln des eslint-plugin-react-hooks:

    • react-hooks/rules-of-hooks (bereits aktiv)
    • react-hooks/exhaustive-deps (neu)
  2. Anpassung der React-Konfiguration in /packages/tools/eslint-config/index.js:

    • Spread der reactHooksPlugin.configs.recommended.rules statt manueller Regeldefinition
    • Oder explizite Aktivierung aller relevanten Hooks-Regeln
  3. Optimierung der Findings:

    • Analyse der aktuellen Codebase auf Hooks-Verstöße
    • Fix der gefundenen Issues (insbesondere fehlende Abhängigkeiten in useEffect, useCallback, useMemo)
    • Dokumentation der Änderungen

Betroffene Pakete

Alle React-Projekte im Monorepo:

  • @public-ui/react (Adapter)
  • @public-ui/react-v19 (Adapter)
  • @public-ui/react-standalone (Adapter)
  • @public-ui/react-hook-form-adapter (Adapter)
  • @public-ui/sample-react (Samples)

Akzeptanzkriterien

  • Alle React-Projekte nutzen die vollständigen react-hooks Regeln
  • pnpm lint:eslint läuft ohne neue Errors durch
  • Bestehende Hooks-Implementierungen sind optimiert
  • Dokumentation der Änderungen im CHANGELOG

Verification

  • pnpm lint:eslint in allen React-Paketen ausführen
  • Findings analysieren und beheben
  • CI-Pipeline erfolgreich durchlaufen

References

Metadata

Metadata

Assignees

Labels

maintenanceRoutine codebase upkeep and management tasks.

Type

Projects

Status
✅ Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions