Skip to content

refactor(ux): Listen-Editoren auf gemeinsame Schlüssel-Validierung vereinheitlicht#26

Merged
dbt-bossert merged 1 commit into
mainfrom
claude/ux-unify-list-editors
Jun 15, 2026
Merged

refactor(ux): Listen-Editoren auf gemeinsame Schlüssel-Validierung vereinheitlicht#26
dbt-bossert merged 1 commit into
mainfrom
claude/ux-unify-list-editors

Conversation

@dbt-bossert

Copy link
Copy Markdown
Collaborator

Die beiden Listen-Editoren (Auswahlfeld-Optionen, Chip-Gruppen) verhalten sich jetzt konsistent — gemeinsame Schlüssel-Validierung und einheitliche Affordanzen.

Kernlogik

  • Neue geteilte common/listItemValidation.getDuplicateKeyError (unit-getestet) als Single Source of Truth für die Eindeutigkeits-/Leer-Prüfung von Listen-Schlüsseln.
  • SingleSelection nutzt sie jetzt (statt eigener Logik) — gleiche Meldungen, bestehender Test bleibt grün.
  • ChipGroup erhält damit erstmals eine Eindeutigkeits-/Leer-Prüfung der Chip-field_id: Fehleranzeige am Feld-ID-Feld + „Speichern" deaktiviert, solange ungültig.
  • Chip-Icon jetzt über den IconField-Picker (statt rohem Textfeld) — konsistent mit allen anderen Icon-Feldern.
  • Leerzustand-Hinweis in der Chip-Liste.

Bewusste Scope-Entscheidung

Die unterschiedlichen Editiermodelle bleiben: Inline-Tabelle für einfache Optionen (key/label/icon) vs. Card + Dialog für reichhaltige Chips (field_id/title/icon/required/default/visibility). Die Datenformen weichen zu stark ab, als dass ein identisches Widget sinnvoll wäre; vereinheitlicht wird daher die Verhaltens-/Affordanz-Ebene (Validierung, Icon-Picker, Leerzustand). Ein struktureller Voll-Merge (inline für beide) wäre ein größerer Folge-Schritt.

Test

  1. npm test grün (142; +5 listItemValidation.test.ts), npm run build ohne TS-Fehler.
  2. Chip-Gruppe: zwei Chips mit gleicher Feld-ID → Fehler + „Speichern" gesperrt; leere Feld-ID ebenso.
  3. Chip-Icon: Picker öffnet den Icon-Selector.
  4. Auswahlfeld: Duplikat-/Leer-Schlüssel-Validierung unverändert.

Labels

Refactoring

🤖 https://claude.ai/code/session_01D2Pc4cAexeqUFrM1YonaJL


Generated by Claude Code

…ereinheitlicht

Geteilte common/listItemValidation.getDuplicateKeyError (unit-getestet) fuer
Auswahlfeld-Optionen und Chip-Gruppen. SingleSelection nutzt sie statt eigener
Logik (gleiche Meldungen). ChipGroup bekommt damit erstmals Eindeutigkeits-/
Leer-Pruefung der Chip-field_id (Fehler am Feld + Speichern gesperrt), den
IconField-Picker fuers Chip-Icon und einen Leerzustand-Hinweis.

Die unterschiedlichen Editiermodelle (Inline-Tabelle vs. Card+Dialog) bleiben
bewusst - die Datenformen weichen zu stark ab; ein struktureller Voll-Merge
waere ein groesserer Folge-Schritt.
@dbt-bossert
dbt-bossert merged commit e4dfd0b into main Jun 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants