Musterseite verworfen, Zahnrad-Regression behoben, Fotomenue als Aktionsblatt
Musterseite entfernt (companion-app/muster, vite.muster.config.ts, /config/www/dmmuster). Ansage des Eigentuemers: sie fuehrt nur zu neuen Fehlerquellen. Ausloeser war ein Befund, den ich als App-Fehler gemeldet hatte - Ringe und Typenschild schwarz auf schwarz - und der nur dort bestand. Behoben: * Das Zahnrad im Autohaus-Kasten hatte seine Ecke verlassen (58/288 statt 8/8). Ursache war mein HIG-Durchgang von gestern: .zahnrad kam in die Gruppe fuer die 44x44-Trefferflaeche und bekam damit position:relative, was das absolute aus dem Basisblatt ueberschrieb. Die Auflage war ueberfluessig - .zahnrad ist dort schon 44x44. * Das Fotomenue hing mit position:absolute an der Kachel statt am Bildschirm und lag bei der hohen Raeder-Kachel ausserhalb des Sichtfelds; einen Abbrechen-Knopf hatte es nie. Das Panel benutzt jetzt dasselbe Aktionsblatt wie die App. .bildmenu ist samt Zustand, Markup, totem Handler und CSS entfernt. * Der Blattkopf las sich als dritte Auswahl (linksbuendig, 15px, --fg). Jetzt zentriert, 13px, gedaempft - Apples Muster, in beiden Codebasen. * "Anstehende Termine" stand 5px ueber "Oelwechsel" und wirkte als dessen Beischrift. Entfernt. * Wartungsplan-Formular: Art nach oben, Datum 124px statt Browser-Vorgabe, Werkstatt ueber die volle Zeile (218 -> 306px), Kosten 116px. Zwei Erklaertexte entfernt. * Thema folgt jetzt einer Systemumstellung im laufenden Betrieb. Vorher las es prefers-color-scheme genau einmal beim Laden. Drei Tests, die ohne die Behebung nachweislich fallen. Geprueft: 295 App-Tests, Panel node --check, 0 Tracebacks, alle Aenderungen live an der Testinstanz gemessen. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -68,6 +68,16 @@ function einstellung<T>(
|
||||
|
||||
return {
|
||||
stand: () => wert,
|
||||
/** Ob überhaupt etwas in der Ablage steht - also eine bewusste Wahl. */
|
||||
gewaehlt: () => ablageLesen(schluessel) !== null,
|
||||
/* Setzt den gehaltenen Wert, OHNE ihn zu speichern. Für Werte, die dem
|
||||
System folgen, solange niemand selbst gewählt hat: eine Systemumstellung
|
||||
ist keine Entscheidung des Nutzers und darf deshalb keine ablegen. */
|
||||
ausSystem: (neu: T) => {
|
||||
if (neu === wert) return
|
||||
wert = neu
|
||||
for (const bei of horcher) bei()
|
||||
},
|
||||
horchen: (bei: () => void) => {
|
||||
horcher.add(bei)
|
||||
return () => horcher.delete(bei)
|
||||
@@ -95,6 +105,31 @@ const THEMA = einstellung<Theme>(
|
||||
(wert) => wert,
|
||||
)
|
||||
|
||||
/* Systemumstellung im laufenden Betrieb nachziehen.
|
||||
|
||||
Der Startwert oben liest `prefers-color-scheme` genau einmal, beim Laden des
|
||||
Moduls. Stellt das Gerät danach um - etwa durch die automatische Umschaltung
|
||||
bei Sonnenuntergang -, folgte das Stylesheet sofort (es hängt selbst an der
|
||||
Medienabfrage), der React-Zustand aber nie. Alles, was sein Bild aus
|
||||
`useTheme()` wählt statt aus CSS, blieb damit auf der alten Fassung stehen:
|
||||
die Vier Ringe und das Typenschild sind `<img>` mit eingebettetem SVG und
|
||||
je einer hellen und einer dunklen Fassung (siehe VierRinge in
|
||||
Typenschild.tsx). Auf dunklem Grund stand dann die dunkle Fassung - schwarz
|
||||
auf schwarz, vom Eigentümer am 05.09.2026 gemeldet. Ein Neuladen räumte es
|
||||
auf, weshalb es sprunghaft wirkte.
|
||||
|
||||
Nur solange niemand selbst gewählt hat: eine gespeicherte Wahl in
|
||||
"Einstellungen" bleibt unangetastet. */
|
||||
if (typeof window !== "undefined" && typeof window.matchMedia === "function") {
|
||||
const dunkel = window.matchMedia("(prefers-color-scheme: dark)")
|
||||
const nachziehen = () => {
|
||||
if (THEMA.gewaehlt()) return
|
||||
THEMA.ausSystem(dunkel.matches ? "nacht" : "tag")
|
||||
}
|
||||
if (typeof dunkel.addEventListener === "function") dunkel.addEventListener("change", nachziehen)
|
||||
else if (typeof dunkel.addListener === "function") dunkel.addListener(nachziehen)
|
||||
}
|
||||
|
||||
|
||||
const TABBESCHRIFTUNG = einstellung<boolean>(
|
||||
"dm360.tabbeschriftung",
|
||||
|
||||
Reference in New Issue
Block a user