Editor: Bestätigungs-Toast nach dem Speichern von Versionen/Snapshots #130

Closed
opened 2026-07-15 14:29:33 +02:00 by fable-5 · 1 comment
Collaborator

UI-Erweiterung (Stefans Wunsch per Chat, 15.07.2026)

Im Editormodus soll nach dem Speichern ein kurzer Toast die Aktion bestätigen — konkret nach den Snapshot-Aktionen aus #125:

  • ⌘/Strg+S (unbenannter Snapshot): Toast z. B. „Version gespeichert" — bisher gibt es GAR kein sichtbares Feedback, der Snapshot passiert lautlos.
  • ⌘/Strg+Shift+S und der „Version speichern"-Icon-Button (benannter Snapshot): Toast mit dem Namen, z. B. „Version ‚…' gespeichert".

Hinweise für die Umsetzung:

  • Es gibt noch keine app-weite Toast-Komponente — neu bauen: dezent, auto-dismiss nach ~2–3 s, role="status"/aria-live="polite", gestapelt falls mehrere; Position vermutlich unten mittig oder unten rechts über der Fußzeile.
  • Die Plugin-Host-Capability ui.toast (apps/web/src/plugins/host-capabilities.ts:22-23, context.toast ist optional und derzeit NIRGENDS verdrahtet) kann bei der Gelegenheit an dieselbe Komponente angeschlossen werden — dann bekommen Plugins den Toast gratis.
  • Fehlerfall bleibt wie gehabt (window.alert bei saveFailed) oder wandert ebenfalls in einen (Fehler-)Toast — Entscheidung bei der Planung.
  • i18n de+en; e2e: content-Pack-Shortcut-Test um die Toast-Assertion ergänzen.
**UI-Erweiterung** (Stefans Wunsch per Chat, 15.07.2026) Im **Editormodus** soll nach dem Speichern ein **kurzer Toast** die Aktion bestätigen — konkret nach den Snapshot-Aktionen aus #125: - ⌘/Strg+S (unbenannter Snapshot): Toast z. B. „Version gespeichert" — bisher gibt es GAR kein sichtbares Feedback, der Snapshot passiert lautlos. - ⌘/Strg+Shift+S und der „Version speichern"-Icon-Button (benannter Snapshot): Toast mit dem Namen, z. B. „Version ‚…' gespeichert". **Hinweise für die Umsetzung:** - Es gibt noch **keine app-weite Toast-Komponente** — neu bauen: dezent, auto-dismiss nach ~2–3 s, `role="status"`/`aria-live="polite"`, gestapelt falls mehrere; Position vermutlich unten mittig oder unten rechts über der Fußzeile. - Die Plugin-Host-Capability `ui.toast` (`apps/web/src/plugins/host-capabilities.ts:22-23`, `context.toast` ist optional und derzeit NIRGENDS verdrahtet) kann bei der Gelegenheit an dieselbe Komponente angeschlossen werden — dann bekommen Plugins den Toast gratis. - Fehlerfall bleibt wie gehabt (window.alert bei saveFailed) oder wandert ebenfalls in einen (Fehler-)Toast — Entscheidung bei der Planung. - i18n de+en; e2e: content-Pack-Shortcut-Test um die Toast-Assertion ergänzen.
fable-5 added this to the M16 — Papierkorb: Mehrfachauswahl milestone 2026-07-15 14:29:33 +02:00
fable-5 added the
frontend
label 2026-07-15 14:29:33 +02:00
Author
Collaborator

Umgesetzt in 36cdd4f (+ Nachfix 4f79a81): Neue app-weite Toast-Komponente apps/web/src/components/Toast.tsxToastProvider in main.tsx um die App, useToast() liefert showToast(message, variant); Stack unten mittig (z-index 1200, über Modals), auto-dismiss nach 2,5 s, Klick schließt sofort, Fehler-Variante rot. Die Live-Region ist permanent gemountet und nutzt BEWUSST nur aria-live="polite" ohne role="status" — die Rolle brach jeden seitenlokalen getByRole('status')-Locator (legal.spec, erster CI-Lauf rot → 4f79a81).

Beide Snapshot-Pfade bestätigen jetzt: ⌘/Strg+S → „Version gespeichert“, ⌘/Strg+Shift+S und der Icon-Button → „Version ‚…‘ gespeichert“; der saveFailed-window.alert wurde ein Fehler-Toast. Die Plugin-Capability ui.toast ist erstmals verdrahtet (PluginBlockScope.toast → Sandbox-Context) — Plugins bekommen den Toast gratis. content-Pack um Toast-Assertions ergänzt (Falle: Toast VOR langsamen Polls asserten, 2,5-s-Fenster). CI grün auf 4f79a81.

Umgesetzt in `36cdd4f` (+ Nachfix `4f79a81`): Neue app-weite Toast-Komponente `apps/web/src/components/Toast.tsx` — `ToastProvider` in main.tsx um die App, `useToast()` liefert `showToast(message, variant)`; Stack unten mittig (z-index 1200, über Modals), auto-dismiss nach 2,5 s, Klick schließt sofort, Fehler-Variante rot. Die Live-Region ist permanent gemountet und nutzt BEWUSST nur `aria-live="polite"` ohne `role="status"` — die Rolle brach jeden seitenlokalen `getByRole('status')`-Locator (legal.spec, erster CI-Lauf rot → `4f79a81`). Beide Snapshot-Pfade bestätigen jetzt: ⌘/Strg+S → „Version gespeichert“, ⌘/Strg+Shift+S und der Icon-Button → „Version ‚…‘ gespeichert“; der saveFailed-window.alert wurde ein Fehler-Toast. Die Plugin-Capability `ui.toast` ist erstmals verdrahtet (PluginBlockScope.toast → Sandbox-Context) — Plugins bekommen den Toast gratis. content-Pack um Toast-Assertions ergänzt (Falle: Toast VOR langsamen Polls asserten, 2,5-s-Fenster). CI grün auf `4f79a81`.
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stwaidele/dorfteich#130
No description provided.