Kundenansicht neu: vorübergehende Messung der iPhone-Höhe

Der Fix 0fa8fdb hat die zu hoch stehende Leiste am iPhone nicht
behoben. Damit wir nicht weiter raten: die Seite schickt am iPhone
Bildschirmwerte (Fenster, visualViewport, Bildschirm, Safe-Area,
vh-Einheiten, Lage der Leiste, Eingriffe von hoehe.js) an
/api/diag/hoehe, der Server schreibt sie als Zeile "[diag-hoehe]" ins
Log. Keine Inhalte, nur Pilot-Kunden (nicht die Mitarbeiter-Ansicht),
höchstens 80 Meldungen je Seite und 400 Zeilen je Kunde und Stunde.
Wird nach der Klärung wieder entfernt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-29 11:10:30 +00:00
1 parent 0fa8fdbbac
commit cca29a4aef
7 files changed
+188 -4

No files matched your search

+5 -2
View File
@@ -23,9 +23,10 @@ export function haengt(zustand, { hoehe, breite, textfeldAktiv }) {
/**
* Verdrahtung: merkt sich die volle Höhe (resize), prüft nach dem Verlassen eines Feldes (focusout), nach einem resize ohne Textfeld
* und wenn die App wieder nach vorne kommt (visibilitychange), jeweils zu den Zeiten PRUEF_MS. Rückgabe { pruefe, stand, beende }.
* und wenn die App wieder nach vorne kommt (visibilitychange), jeweils zu den Zeiten PRUEF_MS. onHeile({ vorher, nachher, voll, versuche }) nach
* jedem Eingriff. Rückgabe { pruefe, stand, beende }.
*/
export function beobachteHoehe({ win = window, doc = document, element, aktiv = () => true, istTextfeld = () => false }) {
export function beobachteHoehe({ win = window, doc = document, element, aktiv = () => true, istTextfeld = () => false, onHeile = () => {} }) {
const messe = () => ({ hoehe: win.innerHeight, breite: win.innerWidth })
let z = hoeheZustand(null, messe())
let versuche = 0
@@ -57,8 +58,10 @@ export function beobachteHoehe({ win = window, doc = document, element, aktiv =
if (!haengt(z, { ...m, textfeldAktiv: istTextfeld(doc.activeElement) })) { merke(); return false }
if (versuche >= MAX_VERSUCHE) return false
versuche += 1
const vorher = win.innerHeight
heile()
merke()
try { onHeile({ vorher, nachher: win.innerHeight, voll: z.voll, versuche }) } catch { /* nur Beobachter */ }
return true
}