Fix #28: Doppelt gerenderte Listen dokumentieren #35

Merged
florian.wilde merged 1 commits from fix/28-doppeltes-rendern into main 2026-08-23 21:29:15 +00:00
Owner

Kommentar an dokument-liste.tsx und ein Abschnitt in e2e/hilfen.ts, der das Muster erklärt und drei tragfähige Wege nennt.

Nachgemessen statt behauptet: An /dokumente mit acht Dokumenten liefert ein Titel 16 Treffer, davon 8 sichtbar — und .first() ist die unsichtbare Kopie. Genau die Falle. Alle drei empfohlenen Rezepte (innerText, visible=true, Zusammenfassungszeile) habe ich vorher ausprobiert; eine Anleitung mit kaputtem Rezept wäre schlimmer als keine.

Zur Frage, ob sich die Verdopplung vermeiden lässt: nein, nicht ohne Verlust. Eine Tabelle, die zu Karten umbricht, verlangt display: block auf Zeilen und Zellen — damit ist es keine Tabelle mehr, Vorlesesoftware verliert den Zusammenhang von Spaltenkopf und Wert, und genau der macht eine Liste mit acht Spalten erst benutzbar. Die Begründung steht jetzt am Code, statt die Frage offen zu lassen.

Eine Korrektur am Issue: Ich hatte „mehrere Listen" geschrieben. Betroffen ist genau eine — kalender-monat.tsx und das Stammdatenformular nutzen Breakpoints, ohne Inhalt doppelt zu rendern.

Nur Kommentare, kein Verhalten geändert. Lint und Typecheck sauber.

Closes #28

Kommentar an `dokument-liste.tsx` und ein Abschnitt in `e2e/hilfen.ts`, der das Muster erklärt und drei tragfähige Wege nennt. **Nachgemessen statt behauptet:** An `/dokumente` mit acht Dokumenten liefert ein Titel **16 Treffer, davon 8 sichtbar** — und `.first()` ist die unsichtbare Kopie. Genau die Falle. Alle drei empfohlenen Rezepte (`innerText`, `visible=true`, Zusammenfassungszeile) habe ich vorher ausprobiert; eine Anleitung mit kaputtem Rezept wäre schlimmer als keine. **Zur Frage, ob sich die Verdopplung vermeiden lässt: nein, nicht ohne Verlust.** Eine Tabelle, die zu Karten umbricht, verlangt `display: block` auf Zeilen und Zellen — damit ist es keine Tabelle mehr, Vorlesesoftware verliert den Zusammenhang von Spaltenkopf und Wert, und genau der macht eine Liste mit acht Spalten erst benutzbar. Die Begründung steht jetzt am Code, statt die Frage offen zu lassen. **Eine Korrektur am Issue:** Ich hatte „mehrere Listen" geschrieben. Betroffen ist genau eine — `kalender-monat.tsx` und das Stammdatenformular nutzen Breakpoints, ohne Inhalt doppelt zu rendern. Nur Kommentare, kein Verhalten geändert. Lint und Typecheck sauber. Closes #28
florian.wilde added 1 commit 2026-08-23 21:29:03 +00:00
Die Dokumentenliste rendert jeden Eintrag zweimal: als Karte fuers Handy,
als Tabellenzeile ab Tablet. Eine Fassung ist per Breakpoint versteckt,
steht aber im DOM. Beim Testen trifft getByText(...).first() deshalb die
unsichtbare Kopie, und die Pruefung scheitert mit "element is not
visible" an einer Stelle, die augenscheinlich in Ordnung ist. Das hat
mehrfach Zeit gekostet, weil man den Grund nicht sieht.

Nachgemessen an /dokumente mit acht Dokumenten: ein Titel liefert 16
Treffer, davon 8 sichtbar - und first() ist unsichtbar.

- Kommentar an der Komponente, mit dem Verweis auf die Hilfsdatei.
- In e2e/hilfen.ts das Muster beschrieben und drei Wege genannt, die
  tragen: innerText fuer "steht das da", visible=true zum Klicken, die
  Zusammenfassungszeile fuer Anzahlen. Alle drei nachgeprueft, bevor sie
  aufgeschrieben wurden - eine Anleitung mit kaputtem Rezept waere
  schlimmer als keine.

Zur Frage aus dem Issue, ob sich die Verdopplung vermeiden laesst: nein,
nicht ohne Verlust. Eine Tabelle, die zu Karten umbricht, verlangt
display:block auf Zeilen und Zellen - damit ist es keine Tabelle mehr,
Vorlesesoftware verliert den Zusammenhang von Spaltenkopf und Wert, und
genau der macht eine Liste mit acht Spalten erst benutzbar. Die
Begruendung steht jetzt am Code, statt die Frage offen zu lassen.

Betroffen ist uebrigens nur diese eine Stelle, nicht mehrere:
kalender-monat.tsx und das Stammdatenformular nutzen Breakpoints, ohne
Inhalt doppelt zu rendern.

Refs #28
florian.wilde merged commit 851724774a into main 2026-08-23 21:29:15 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: florian.wilde/betreuungs-cockpit#35