aufraeumen: shadcn nur noch zum Bauen, tote Exporte und Test-Attrappen raus, Lint-Regeln scharf

- shadcn liefert zur Laufzeit nichts: gebraucht wird nur shadcn/tailwind.css beim Bauen
  (am PC und im CI, beide mit npm ci inkl. devDependencies). Also devDependency; 325
  Pakete im Lockfile haengen ausschliesslich daran und sind jetzt "dev".
- @testing-library/user-event war nirgends benutzt: entfernt.
- Dialog/Sheet: ungenutzte Trigger/Close/Footer und "use client" raus.
- test/setup.ts: ResizeObserver-Attrappe fuer Recharts und Kraftgraph entfernt - beide
  gibt es nicht mehr, und Radix' Dialog misst nichts.
- eslint.config.js: Die vier React-Compiler-Regeln sollten laut Kommentar auf "error",
  sobald ihr Zaehler 0 ist. Er ist 0 - jetzt error. Veraltete Zahlen und "Recharts" im
  Kommentar korrigiert.
- lib/utils.ts bleibt (Ziel von components.json fuer die shadcn-CLI), jetzt mit Kommentar.
- Lockfile: npm 11.17 traegt sechs optionale wasm32-Unterpakete zusaetzlich ein, auch
  ohne diese Aenderung; die sind wieder raus, damit der Diff nur das Gewollte zeigt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-09-24 15:42:13 +02:00
co-authored by Claude Opus 5.5
parent bd12667231
commit 29ec6f2ccf
7 changed files with 344 additions and 118 deletions
+11 -15
View File
@@ -31,22 +31,18 @@ export default tseslint.config(
...reactHooks.configs.recommended.rules,
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
// Die Regeln aus der React-Compiler-Generation (Plugin v7) finden im Bestand
// 18 echte Stellen: setState direkt im Effekt, Ref-Zugriff waehrend des Renderns,
// Komponenten im Render erzeugt. Das sind keine Fehlalarme — aber sie quer durch
// 10 000 Zeilen zu beheben ist die Arbeit von Etappe P5 (Feature-Slices), nicht
// von P1. Als Fehler waere das Gate ab Tag eins rot, und ein dauerhaft rotes Gate
// ist kein Gate mehr ("Rot ist ein Ergebnis, kein Aergernis").
// Darum: sichtbare Warn-Liste statt stumm abgeschaltet. Beim Zerlegen eines
// Bereichs wird sein Anteil mit erledigt; ist der Zaehler bei 0, kommen sie
// hier auf "error" und der Rueckfall ist verbaut.
"react-hooks/set-state-in-effect": "warn",
"react-hooks/refs": "warn",
"react-hooks/immutability": "warn",
"react-hooks/static-components": "warn",
// Die Regeln aus der React-Compiler-Generation (Plugin v7): setState direkt im Effekt,
// Ref-Zugriff waehrend des Renderns, Komponenten im Render erzeugt. Im alten Bestand
// (10 000 Zeilen) fanden sie 18 Stellen und liefen darum als Warnung, mit der Abmachung:
// Ist der Zaehler bei 0, kommen sie auf "error" und der Rueckfall ist verbaut.
// Mit dem Box-Wart-Umbau (09/2026) stand der Zaehler bei 0 — also jetzt "error".
"react-hooks/set-state-in-effect": "error",
"react-hooks/refs": "error",
"react-hooks/immutability": "error",
"react-hooks/static-components": "error",
// `any` ist in diesem Projekt an einigen Stellen bewusst gesetzt (Recharts-Rueckrufe,
// Fehlerobjekte in catch). Warnen statt blockieren — sonst wird die Regel abgeschaltet.
// `any` kommt im Bestand nicht mehr vor (Stand 09/2026). Warnen statt blockieren, damit
// eine bewusst gesetzte Ausnahme (z. B. ein Fehlerobjekt in catch) das Gate nicht rot macht.
"@typescript-eslint/no-explicit-any": "warn",
// Ungenutzte Variablen sind fast immer ein Rest von etwas Halbfertigem.