/**
* Ein Datumsfeld, das seinen Wert auch dann anzeigt, wenn er erst später
* eintrifft.
*
* DAS PROBLEM
* -----------
* Alle Datumsfelder der App hängen an Werten aus dem Datenkontext, und der
* füllt sich asynchron: beim ersten Rendern steht dort ein leerer String, den
* echten Wert bekommt das Feld erst danach. WebKit — die Engine der iOS-Hülle —
* baut den inneren Aufbau eines `` beim ersten Rendern auf
* und zieht ihn bei einer späteren Wertänderung von außen nicht zuverlässig
* nach; sichtbar blieb „tt.mm.jjjj", und erst ein Antippen brachte das Datum
* zum Vorschein (gemeldet vom Eigentümer, 2026-08-31: „erst beim ersten Klick
* aufs Datumsfeld erscheinen diese korrekt").
*
* Verschärft wird das durch den `appearance`-Reset in screens.css, der für die
* Box-Optik nötig ist — ohne ihn zeigt iOS sein eigenes, stark abgerundetes
* Chrome („gestreckter Kreis statt Box").
*
* DIE LÖSUNG
* ----------
* Der Schlüssel wechselt genau einmal: von „leer" auf „gefuellt", sobald der
* echte Wert da ist. React baut das Feld an dieser Stelle neu auf, und WebKit
* legt seinen inneren Aufbau damit gleich mit dem Wert an.
*
* Bewusst NICHT der Wert selbst als Schlüssel: dann entstünde das Feld bei
* jeder Auswahl neu, verlöre den Fokus und schlösse auf dem Telefon die
* Datumsauswahl mitten in der Bedienung. Der Wechsel leer→gefüllt passiert
* dagegen genau einmal, und zwar bevor jemand das Feld anfassen kann.
*
* Das Panel braucht das nicht: dort schreibt jedes `render()` das Markup neu,
* das Feld entsteht also ohnehin immer mit seinem Wert.
*/
export function Datumsfeld({
wert,
beiAenderung,
className = "dm-eingabe",
...rest
}: {
wert: string
beiAenderung: (wert: string) => void
className?: string
} & Omit<
React.InputHTMLAttributes,
"value" | "onChange" | "type" | "className"
>) {
return (
beiAenderung(e.target.value)}
{...rest}
/>
)
}